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("处理完成!");
|
|
}
|
|
}
|
}
|