package com.xzx.gc.order.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.Result; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.common.dto.CommonDto; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.MqUtil; import com.xzx.gc.entity.OrderComplaint; import com.xzx.gc.entity.UserInfo; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.ComplaintModel; import com.xzx.gc.model.admin.XzxOrderComplaintModel; import com.xzx.gc.order.dto.ComplaintDetailDto; import com.xzx.gc.order.dto.ComplaintFindDto; import com.xzx.gc.order.dto.ComplaintFindResDto; import com.xzx.gc.order.dto.OrderComplaintAddDto; import com.xzx.gc.order.mapper.OtherUserMapper; import com.xzx.gc.order.mapper.UserShareInfoMapper; import com.xzx.gc.order.service.CityPartnerService; import com.xzx.gc.order.service.OrderComplaintService; import com.xzx.gc.order.service.PartnerFenceService; 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.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author :zz */ @RestController @Api(tags = {"订单投诉管理"}) public class ComplaintController extends BaseController { @Autowired private OrderComplaintService orderComplaintService; @Autowired private CityPartnerService cityPartnerService; @Autowired private PartnerFenceService partnerFenceService; @Autowired private OtherUserMapper otherUserMapper; @Autowired private UserShareInfoMapper userShareInfoMapper; @Autowired private UserService userService; @Autowired private MqUtil mqUtil; private static final String MODEL = "/admin/front/complaint"; @PostMapping("/complaint") @ApiOperation(value = "新增投诉") public Result add(@RequestBody OrderComplaintAddDto orderComplaintAddDto, HttpServletRequest request){ OrderComplaint orderComplaint = new OrderComplaint(); BeanUtils.copyProperties(orderComplaintAddDto, orderComplaint); orderComplaint.setDelFlag(0); orderComplaint.setCreateTime(DateUtil.now()); orderComplaint.setAfterSaleFlag(0); orderComplaintService.add(orderComplaint); String mobilePhone = userService.findOtherByUserId(getUserId(request),0); OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) .methodName(Constants.ORDER_MODUL_NAME).operateAction("新增投诉-"+orderComplaint.getId()).build(); mqUtil.sendApp(build); return new Result<>("投诉成功"); } @PostMapping("/complaint/find") @ApiOperation(value = "分页查询投诉列表") public Result> find(@RequestBody ComplaintFindDto complaintFindDto, HttpServletRequest request){ String partnerId=otherUserMapper.selectByPrimaryKey(getUserId(request)).getPartnerId(); List collect =partnerFenceService.findFences(partnerId); complaintFindDto.setFenceIds(collect); PageHelper.startPage(complaintFindDto.getPageNo(),complaintFindDto.getPageSize()); List orderComplaints = orderComplaintService.find(complaintFindDto); PageInfo pageInfo=new PageInfo<>(orderComplaints); return Result.success(pageInfo); } @PostMapping("/complaint/detail") @ApiOperation(value = "订单投诉详情") public Result> detail(@RequestBody ComplaintDetailDto complaintDetailDto, HttpServletRequest request){ List orderComplaints = orderComplaintService.detail(complaintDetailDto.getOrderId()); return Result.success(orderComplaints); } @PostMapping("/complaint/update") @ApiOperation(value = "投诉处理") public Result> update(@RequestBody CommonDto commonDto,HttpServletRequest request){ OrderComplaint orderComplaint=new OrderComplaint(); orderComplaint.setId(Convert.toLong(commonDto.getId())); orderComplaint.setComplaintPlan(commonDto.getExtra()); orderComplaint.setAfterSaleFlag(Convert.toInt(OrderEnum.投诉已处理.getValue())); orderComplaintService.updateByPrimaryKeySelective(orderComplaint); String mobilePhone = userService.findOtherByUserId(getUserId(request),1); OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) .methodName(Constants.ORDER_MODUL_NAME).operateAction("投诉处理-"+orderComplaint.getId()).build(); mqUtil.sendApp(build); return new Result<>(""); } @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/complaint/queryComplaintApiList.json") @ResponseBody @ApiOperation(value="投诉列表(包含详情数据)", notes="test: 仅0有正确返回") public JsonResult> queryComplaintApiList(@RequestBody XzxOrderComplaintModel model){ Map map = orderComplaintService.queryComplaintApiList(model); return JsonResult.success(map); } @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/complaint/updateComplaintFlagApi.json") @ResponseBody @ApiOperation(value="投诉处理", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "主键", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "complaintPlan", value = "处理备注", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "afterSaleFlag", value = "订单处理标记 0:未处理,1:以处理,2:取消订单,3:重新派单", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "orderId", value = "订单Id", required = true, dataType = "String") }) public JsonResult updateComplaintFlagApi(@RequestBody XzxOrderComplaintModel model,HttpServletRequest request){ int num = orderComplaintService.updateComplaintFlagApi(model); if(num>=1){ OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ORDER_MODUL_NAME).operateAction("投诉处理-"+model.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); }else{ return JsonResult.failMessage("修改失败"); } } @PostMapping(MODEL + "/queryComplaintList.json") @ResponseBody @ApiOperation(value = "订单投诉列表", notes = "test: 仅0有正确返回") public JsonResult> queryComplaintList(@RequestBody ComplaintModel model) { List partnerIds = new ArrayList<>(); if(null!=model.getPartnerId()&&!"".equals(model.getPartnerId())){ partnerIds.add(model.getPartnerId()); }else{ partnerIds= cityPartnerService.queryPartnerByCurrent(); } if(CollUtil.isNotEmpty(partnerIds)){ List fenceIds = userShareInfoMapper.queryFenceByPartnerIds(partnerIds); model.setTownIds(fenceIds); } PageInfo pageInfo =orderComplaintService.queryComplaintList(model); Map map = new HashMap<>(); map.put("data",pageInfo.getList()); map.put("count",pageInfo.getTotal()); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/updateComplaintMoney.json") @ResponseBody @ApiOperation(value = "订单投诉列表", notes = "test: 仅0有正确返回") public JsonResult updateComplaintMoney(@RequestBody ComplaintModel model) { String detail = orderComplaintService.updateComplaintMoney(model); if(null!=detail&&!"".equals(detail)){ return JsonResult.failMessage(detail); }else{ return JsonResult.success("处理完成!"); } } }