| package com.xzx.gc.shop.controller; | 
|   | 
| import cn.hutool.core.collection.CollUtil; | 
| import cn.hutool.core.util.ObjectUtil; | 
| import cn.hutool.core.util.StrUtil; | 
| import com.xzx.gc.common.constant.CommonEnum; | 
| import com.xzx.gc.common.constant.Constants; | 
| import com.xzx.gc.common.dto.log.OperationAppLog; | 
| import com.xzx.gc.common.request.BaseController; | 
| import com.xzx.gc.entity.ScoreDetails; | 
| import com.xzx.gc.entity.ScoreOrder; | 
| import com.xzx.gc.model.JsonResult; | 
| import com.xzx.gc.shop.dto.*; | 
| import com.xzx.gc.shop.mapper.ScoreDetailsMapper; | 
| import com.xzx.gc.shop.mapper.ScoreOrderMapper; | 
| import com.xzx.gc.shop.service.OrderService; | 
| import com.xzx.gc.shop.vo.QueryOrderListVo; | 
| import com.xzx.gc.shop.vo.ViewOrderVo; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import io.swagger.annotations.ApiResponse; | 
| import io.swagger.annotations.ApiResponses; | 
| import lombok.extern.slf4j.Slf4j; | 
| 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.RestController; | 
| import tk.mybatis.mapper.entity.Example; | 
|   | 
| import javax.annotation.Resource; | 
| import javax.servlet.http.HttpServletRequest; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| @RestController | 
| @Api(tags = {"积分商城--订单管理"}) | 
| @Slf4j | 
| public class AdminOrderController extends BaseController { | 
|   | 
|     @Resource | 
|     private OrderService orderService; | 
|     @Resource | 
|     private ScoreOrderMapper scoreOrderMapper; | 
|     @Resource | 
|     private ScoreDetailsMapper scoreDetailsMapper; | 
|   | 
|     /** | 
|      * 查询订单列表 | 
|      * xzx_score_order 积分商城订单 | 
|      */ | 
|     @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/score/goods/queryOrderList.json") | 
|     @ApiResponses({@ApiResponse( code = 200, message = "success", response = QueryOrderListVo.class)}) | 
|     @ApiOperation(value = "订单管理-查询订单列表", notes = "test: 仅0有正确返回") | 
|     public JsonResult<Map<String, Object>> queryOrderList(@RequestBody QueryOrderListDto model) { | 
|         Map<String, Object> result = orderService.queryOrderList(model); | 
|         return JsonResult.success(result); | 
|     } | 
|   | 
|     /** | 
|      * 查询订单详情 | 
|      */ | 
|     @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/score/goods/viewOrder.json") | 
|     @ApiResponses({@ApiResponse( code = 200, message = "success", response = ViewOrderVo.class)}) | 
|     @ApiOperation(value="订单管理-查询订单详情", notes="test: 仅0有正确返回") | 
|     public JsonResult<ViewOrderVo> viewOrder(@RequestBody ViewOrderDto viewOrderDto) { | 
|         Long id = viewOrderDto.getId(); | 
|         ScoreOrder scoreOrder = scoreOrderMapper.selectByPrimaryKey(id); | 
|         if(ObjectUtil.isEmpty(scoreOrder)){ | 
|             return JsonResult.failMessage("订单不存在!"); | 
|         } | 
|         ViewOrderVo viewOrderVo = orderService.viewOrder(id); | 
|         return JsonResult.success(viewOrderVo); | 
|     } | 
|   | 
|     /** | 
|      * 发货 | 
|      */ | 
|     @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/score/goods/deliverGoods.json") | 
|     @ApiOperation(value="订单管理-发货", notes="test: 仅0有正确返回") | 
|     public JsonResult deliverGoods(@RequestBody DeliverGoodsDto model, HttpServletRequest request) { | 
|         long id = model.getId(); | 
|         ScoreOrder scoreOrder = scoreOrderMapper.selectByPrimaryKey(id); | 
|         if(ObjectUtil.isEmpty(scoreOrder)){ | 
|             return JsonResult.failMessage("订单不存在!"); | 
|         } | 
|         Integer status = scoreOrder.getStatus(); | 
|         if(ScoreOrder.STATUS_READY != status){ | 
|             return JsonResult.failMessage("当前订单不是待发货状态!"); | 
|         } | 
|         String expressCom = model.getExpressCom(); | 
|         if(StrUtil.isEmpty(expressCom)){ | 
|             return JsonResult.failMessage("物流公司不能为空!"); | 
|         } | 
|         String expressNo = model.getExpressNo(); | 
|         if(StrUtil.isEmpty(expressNo)){ | 
|             return JsonResult.failMessage("快递单号不能为空!"); | 
|         } | 
|         Long aLong = orderService.deliverGoods(model); | 
|         if(aLong > 0){ | 
|             OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) | 
|                     .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("订单管理-发货-" + id).build(); | 
|             mqUtil.sendApp(build); | 
|             return  JsonResult.success("操作成功!"); | 
|         }else{ | 
|             return  JsonResult.success("操作失败!"); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 确认提货 | 
|      */ | 
|     @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/score/goods/insureOrder.json") | 
|     @ApiOperation(value="订单管理-确认提货", notes="test: 仅0有正确返回") | 
|     public JsonResult insureOrder(@RequestBody InsureOrderDto model, HttpServletRequest request) { | 
|         long id = model.getId(); | 
|         ScoreOrder scoreOrder = scoreOrderMapper.selectByPrimaryKey(id); | 
|         if(ObjectUtil.isEmpty(scoreOrder)){ | 
|             return JsonResult.failMessage("订单不存在!"); | 
|         } | 
|         Integer status = scoreOrder.getStatus(); | 
|         if(ScoreOrder.STATUS_DOING != status){ | 
|             return JsonResult.failMessage("当前订单不是已收货状态!"); | 
|         } | 
|         List<String> voucherImgs = model.getVoucherImgs(); | 
|         if(CollUtil.isEmpty(voucherImgs)){ | 
|             return JsonResult.failMessage("凭证不能为空!"); | 
|         } | 
|         Long orderId = orderService.insureOrder(model); | 
|         if(orderId > 0){ | 
|             OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) | 
|                     .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("订单管理-确认提货-" + orderId).build(); | 
|             mqUtil.sendApp(build); | 
|             return  JsonResult.success("操作成功!"); | 
|         }else{ | 
|             return  JsonResult.success("操作失败!"); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 取消 | 
|      */ | 
|     @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/score/goods/cancelOrder.json") | 
|     @ApiOperation(value="订单管理-取消", notes="test: 仅0有正确返回") | 
|     public JsonResult cancelOrder(@RequestBody CancelOrderDto model, HttpServletRequest request) { | 
|         long id = model.getId(); | 
|         ScoreOrder scoreOrder = scoreOrderMapper.selectByPrimaryKey(id); | 
|         if(ObjectUtil.isEmpty(scoreOrder)){ | 
|             return JsonResult.failMessage("订单不存在!"); | 
|         } | 
|         Integer status = scoreOrder.getStatus(); | 
|         if(ScoreOrder.STATUS_READY != status){ | 
|             return JsonResult.failMessage("当前订单不是待发货状态!"); | 
|         } | 
|         ScoreOrder order = scoreOrderMapper.selectByPrimaryKey(model.getId()); | 
|         Example exampleDetails = new Example(ScoreDetails.class); | 
|         Example.Criteria criteriaDetails = exampleDetails.createCriteria(); | 
|         criteriaDetails.andEqualTo("orderNo",order.getOrderNo()); | 
|         criteriaDetails.andEqualTo("userId",order.getUserId()); | 
|         criteriaDetails.andEqualTo("type",ScoreDetails.SCORE_TYPE_SHOPPING_RETURN); | 
|   | 
|         List<ScoreDetails> scoreDetails = scoreDetailsMapper.selectByExample(exampleDetails); | 
|         if(CollUtil.isNotEmpty(scoreDetails)){ | 
|             return JsonResult.failMessage("当前订单已经取消过了!"); | 
|         } | 
|         Long aLong = orderService.cancelOrder(model); | 
|         if(aLong > 0){ | 
|             OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) | 
|                     .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("订单管理-取消-" + id).build(); | 
|             mqUtil.sendApp(build); | 
|             return  JsonResult.success("操作成功!"); | 
|         }else{ | 
|             return  JsonResult.success("操作失败!"); | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
| } |