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 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 page(HttpServletRequest request, @RequestBody SimplePage simplePage){ String receiver=getUserId(request); OrderAppraiseInfoPageDto orderAppraiseInfoPageDto=new OrderAppraiseInfoPageDto(); PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize()); List 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 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> queryAppraiseInfolist(@RequestBody XzxOrderAppraiseInfoModel model) { Map map = orderAppraiseInfoService.queryAppraiseInfolist(model); return JsonResult.success(map); } @PostMapping( value = {"/admin/front/xzxOrderAppraiseInfo/queryReceiverTotalList.do"}) @ApiOperation(value="评价管理", notes="test: 仅0有正确返回") public JsonResult> queryReceiverTotalList(@RequestBody XzxOrderAppraiseInfoModel model) { Map map = orderAppraiseInfoService.queryReceiverTotalList(model); return JsonResult.success(map); } @PostMapping(value = {"/admin/front/xzxOrderAppraiseInfo/queryAppraiseInfoTotalList.json"}) @ApiOperation(value="评价统计", notes="test: 仅0有正确返回") public JsonResult queryAppraiseInfoTotalList(@RequestBody AppraiseInfoTotalModel model) { AppraiseInfoTotalModel obj = orderAppraiseInfoService.queryAppraiseInfoTotalList(model); return JsonResult.success(obj); } @PostMapping("/appraise/findTagByReceive") @ApiOperation(value = "查看回收员所有标签") @PassToken public Result> findTagByReceive(HttpServletRequest request, @RequestBody QueryReceiverTotalListDTO queryReceiverTotalListDTO){ List list= orderAppraiseInfoService.findTagByReceive(queryReceiverTotalListDTO); return Result.success(list); } }