| 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<PageInfo<ComplaintFindResDto>> find(@RequestBody ComplaintFindDto complaintFindDto, HttpServletRequest request){  | 
|         String partnerId=otherUserMapper.selectByPrimaryKey(getUserId(request)).getPartnerId();  | 
|         List<String> collect =partnerFenceService.findFences(partnerId);  | 
|         complaintFindDto.setFenceIds(collect);  | 
|         PageHelper.startPage(complaintFindDto.getPageNo(),complaintFindDto.getPageSize());  | 
|         List<ComplaintFindResDto> orderComplaints = orderComplaintService.find(complaintFindDto);  | 
|         PageInfo<ComplaintFindResDto> pageInfo=new PageInfo<>(orderComplaints);  | 
|         return Result.success(pageInfo);  | 
|     }  | 
|   | 
|     @PostMapping("/complaint/detail")  | 
|     @ApiOperation(value = "订单投诉详情")  | 
|     public Result<List<ComplaintFindResDto>> detail(@RequestBody ComplaintDetailDto complaintDetailDto, HttpServletRequest request){  | 
|         List<ComplaintFindResDto> orderComplaints = orderComplaintService.detail(complaintDetailDto.getOrderId());  | 
|         return Result.success(orderComplaints);  | 
|     }  | 
|   | 
|   | 
|     @PostMapping("/complaint/update")  | 
|     @ApiOperation(value = "投诉处理")  | 
|     public Result<PageInfo<OrderComplaint>> 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<Map<String,Object>> queryComplaintApiList(@RequestBody XzxOrderComplaintModel model){  | 
|         Map<String,Object> 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<String> 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<Map<String, Object>> queryComplaintList(@RequestBody ComplaintModel model) {  | 
|         List<String> partnerIds = new ArrayList<>();  | 
|         if(null!=model.getPartnerId()&&!"".equals(model.getPartnerId())){  | 
|             partnerIds.add(model.getPartnerId());  | 
|         }else{  | 
|             partnerIds=  cityPartnerService.queryPartnerByCurrent();  | 
|         }  | 
|   | 
|         if(CollUtil.isNotEmpty(partnerIds)){  | 
|             List<String> fenceIds = userShareInfoMapper.queryFenceByPartnerIds(partnerIds);  | 
|             model.setTownIds(fenceIds);  | 
|         }  | 
|   | 
|         PageInfo<ComplaintModel> pageInfo =orderComplaintService.queryComplaintList(model);  | 
|         Map<String,Object> 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<String> updateComplaintMoney(@RequestBody ComplaintModel model) {  | 
|         String detail = orderComplaintService.updateComplaintMoney(model);  | 
|         if(null!=detail&&!"".equals(detail)){  | 
|             return JsonResult.failMessage(detail);  | 
|   | 
|         }else{  | 
|             return JsonResult.success("处理完成!");  | 
|   | 
|         }  | 
|   | 
|     }  | 
| }  |