| package com.xzx.gc.order.controller;  | 
|   | 
| import cn.hutool.core.bean.BeanUtil;  | 
| import cn.hutool.core.codec.Base64;  | 
| import cn.hutool.core.collection.CollUtil;  | 
| import cn.hutool.core.convert.Convert;  | 
| import cn.hutool.core.util.StrUtil;  | 
| import com.github.pagehelper.PageHelper;  | 
| import com.github.pagehelper.PageInfo;  | 
| import com.xzx.gc.common.Result;  | 
| import com.xzx.gc.common.annotations.PassToken;  | 
| import com.xzx.gc.common.constant.Constants;  | 
| import com.xzx.gc.common.constant.UserEnum;  | 
| import com.xzx.gc.common.dto.CommonDto;  | 
| import com.xzx.gc.common.dto.SimplePage;  | 
| import com.xzx.gc.common.dto.log.OperationAppLog;  | 
| import com.xzx.gc.common.request.BaseController;  | 
| import com.xzx.gc.common.utils.BusinessUtil;  | 
| import com.xzx.gc.common.utils.MqUtil;  | 
| import com.xzx.gc.common.utils.StringUtils;  | 
| import com.xzx.gc.entity.ConfigInfo;  | 
| import com.xzx.gc.entity.OrderAppraiseInfo;  | 
| import com.xzx.gc.entity.OrderInfo;  | 
| import com.xzx.gc.entity.UserInfo;  | 
| import com.xzx.gc.model.JsonResult;  | 
| import com.xzx.gc.model.admin.AppraiseInfoTotalModel;  | 
| import com.xzx.gc.model.admin.XzxOrderAppraiseInfoModel;  | 
| import com.xzx.gc.model.order.QueryReceiverTotalListDTO;  | 
| import com.xzx.gc.model.order.QueryReceiverTotalListResDTO;  | 
| import com.xzx.gc.order.dto.OrderAppraiseAddDto;  | 
| import com.xzx.gc.order.dto.OrderAppraiseInfoPageDto;  | 
| import com.xzx.gc.order.dto.OrderAppraiseStaticDto;  | 
| import com.xzx.gc.order.mapper.*;  | 
| import com.xzx.gc.order.service.OrderAppraiseInfoService;  | 
| import com.xzx.gc.order.service.UserService;  | 
| import io.swagger.annotations.Api;  | 
| import io.swagger.annotations.ApiImplicitParam;  | 
| import io.swagger.annotations.ApiImplicitParams;  | 
| import io.swagger.annotations.ApiOperation;  | 
| import org.springframework.beans.factory.annotation.Autowired;  | 
| import org.springframework.validation.annotation.Validated;  | 
| import org.springframework.web.bind.annotation.*;  | 
|   | 
| import javax.servlet.http.HttpServletRequest;  | 
| import java.util.ArrayList;  | 
| import java.util.List;  | 
| import java.util.Map;  | 
|   | 
| /**  | 
|  * @author :zz  | 
|  */  | 
| @RestController  | 
| @RequestMapping  | 
| @Api(tags = {"订单评价管理"})  | 
| @Validated  | 
| public class OrderAppraiseController extends BaseController {  | 
|   | 
|     @Autowired  | 
|     private UserMapper userMapper;  | 
|   | 
|     @Autowired  | 
|     private OrderMapper orderMapper;  | 
|   | 
|     @Autowired  | 
|     private OrderAppraiseInfoService orderAppraiseInfoService;  | 
|   | 
|     @Autowired  | 
|     private BusinessUtil businessUtil;  | 
|   | 
|     @Autowired  | 
|     private UserService userService;  | 
|   | 
|     @Autowired  | 
|     private MqUtil mqUtil;  | 
|   | 
|     @PostMapping("/appraise/add")  | 
|     @ApiOperation(value = "新增评价")  | 
|     public Result add(@Validated  @RequestBody OrderAppraiseAddDto orderAppraiseAddDto, HttpServletRequest request){  | 
|         OrderAppraiseInfo orderAppraiseInfo=new OrderAppraiseInfo();  | 
|         BeanUtil.copyProperties(orderAppraiseAddDto,orderAppraiseInfo);  | 
|         orderAppraiseInfo.setCreateUserId(getUserId(request));  | 
|         orderAppraiseInfoService.add(orderAppraiseInfo);  | 
|   | 
|         String mobilePhone = userService.findOtherByUserId(getUserId(request),0);  | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone)  | 
|                 .methodName(Constants.ORDER_MODUL_NAME).operateAction("新增评价-"+orderAppraiseInfo.getId()).build();  | 
|         mqUtil.sendApp(build);  | 
|         return new Result<>("评价成功");  | 
|     }  | 
|   | 
|   | 
|     @PostMapping("/appraise/findWithCustomer")  | 
|     @ApiOperation(value = "查看用户的评价")  | 
|     public Result<OrderAppraiseInfo> findById(@Validated  @RequestBody CommonDto commonDto, HttpServletRequest request){  | 
|         OrderAppraiseInfo orderAppraiseInfo1 =orderAppraiseInfoService.findById(Convert.toLong(commonDto.getId()));  | 
|         if(orderAppraiseInfo1==null){  | 
|             return Result.error(-1,"评价不存在");  | 
|         }  | 
|         orderAppraiseInfoService.changeResouceAndTag(orderAppraiseInfo1);  | 
|         return Result.success(orderAppraiseInfo1);  | 
|     }  | 
|   | 
|   | 
|     @PostMapping("/appraise/findWithReceiver")  | 
|     @ApiOperation(value = "分页查看回收员评价")  | 
|     public Result<OrderAppraiseInfoPageDto> page(HttpServletRequest request, @RequestBody SimplePage simplePage){  | 
|         String receiver=getUserId(request);  | 
|         OrderAppraiseInfoPageDto orderAppraiseInfoPageDto=new OrderAppraiseInfoPageDto();  | 
|         PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize());  | 
|         List<OrderAppraiseInfo> orderAppraiseInfo1 =orderAppraiseInfoService.findByReceiver(receiver);  | 
|         if(CollUtil.isNotEmpty(orderAppraiseInfo1)){  | 
|             for (OrderAppraiseInfo appraiseInfo : orderAppraiseInfo1) {  | 
|                 //获取图片和标签  | 
|                 orderAppraiseInfoService.changeResouceAndTag(appraiseInfo);  | 
|                 String orderId = appraiseInfo.getOrderId();  | 
|                 OrderInfo orderInfo = orderMapper.selectByPrimaryKey(orderId);  | 
|                 appraiseInfo.setOrderInfo(orderInfo);  | 
|   | 
|                 if(UserEnum.实名评价.getValue().equals(appraiseInfo.getAnonymousFlag().toString())){  | 
|                     String createUserId = appraiseInfo.getCreateUserId();  | 
|                     UserInfo userInfo = userMapper.selectByPrimaryKey(createUserId);  | 
|                     if(userInfo!=null){  | 
|                         UserInfo info=new UserInfo();  | 
|                         info.setNickName(userInfo.getNickName());  | 
|                         String replace = businessUtil.changeMobile(userInfo.getMobilePhone());  | 
|                         info.setMobilePhone(replace);  | 
|                         info.setAvatar(userInfo.getAvatar());  | 
|                         appraiseInfo.setUserInfo(info);  | 
|                     }  | 
|   | 
|                 }  | 
|   | 
|                 //评价内容解码  | 
|                 appraiseInfo.setContent(orderAppraiseInfoService.encodeOrDecode(appraiseInfo.getContent(),1));  | 
|             }  | 
|         }  | 
|         PageInfo<OrderAppraiseInfo> pageInfo=new PageInfo<>(orderAppraiseInfo1==null?new ArrayList<>():orderAppraiseInfo1);  | 
|         orderAppraiseInfoPageDto.setPageInfo(pageInfo);  | 
|   | 
|         //评价统计  | 
|         OrderAppraiseStaticDto orderAppraiseStaticDto=new OrderAppraiseStaticDto();  | 
|         OrderAppraiseInfo starInfo = orderAppraiseInfoService.findStarInfo(receiver,null);  | 
|         BeanUtil.copyProperties(starInfo,orderAppraiseStaticDto);  | 
|         orderAppraiseInfoPageDto.setOrderAppraiseStaticDto(orderAppraiseStaticDto);  | 
|   | 
|         return Result.success(orderAppraiseInfoPageDto);  | 
|     }  | 
|   | 
|   | 
|     @PostMapping( "/admin/front/xzxOrderAppraiseInfo/queryAppraiseInfolist.json")  | 
|     @ResponseBody  | 
|     @ApiOperation(value="评价列表(内附评价详情数据)", notes="test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType="query", name = "name", value = "骑手姓名(或手机号)", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String,Object>> queryAppraiseInfolist(@RequestBody XzxOrderAppraiseInfoModel model)  | 
|     {  | 
|         Map<String,Object> map = orderAppraiseInfoService.queryAppraiseInfolist(model);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping( value = {"/admin/front/xzxOrderAppraiseInfo/queryReceiverTotalList.do"})  | 
|     @ApiOperation(value="评价管理", notes="test: 仅0有正确返回")  | 
|     public JsonResult<Map<String,Object>> queryReceiverTotalList(@RequestBody XzxOrderAppraiseInfoModel model) {  | 
|         Map<String,Object> map = orderAppraiseInfoService.queryReceiverTotalList(model);  | 
|         return  JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping(value = {"/admin/front/xzxOrderAppraiseInfo/queryAppraiseInfoTotalList.json"})  | 
|     @ApiOperation(value="评价统计", notes="test: 仅0有正确返回")  | 
|     public JsonResult<AppraiseInfoTotalModel> queryAppraiseInfoTotalList(@RequestBody AppraiseInfoTotalModel model) {  | 
|         AppraiseInfoTotalModel obj = orderAppraiseInfoService.queryAppraiseInfoTotalList(model);  | 
|         return  JsonResult.success(obj);  | 
|     }  | 
|   | 
|     @PostMapping("/appraise/findTagByReceive")  | 
|     @ApiOperation(value = "查看回收员所有标签")  | 
|     @PassToken  | 
|     public Result<List<QueryReceiverTotalListResDTO>> findTagByReceive(HttpServletRequest request, @RequestBody QueryReceiverTotalListDTO queryReceiverTotalListDTO){  | 
|         List<QueryReceiverTotalListResDTO> list= orderAppraiseInfoService.findTagByReceive(queryReceiverTotalListDTO);  | 
|         return Result.success(list);  | 
|     }  | 
| }  |