gc-shop/src/main/java/com/xzx/gc/shop/controller/AdminOrderController.java
@@ -7,9 +7,11 @@ 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; @@ -19,9 +21,11 @@ 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; @@ -37,6 +41,8 @@ private OrderService orderService; @Resource private ScoreOrderMapper scoreOrderMapper; @Resource private ScoreDetailsMapper scoreDetailsMapper; /** * 查询订单列表 @@ -145,6 +151,17 @@ 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)) gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
@@ -252,12 +252,51 @@ public Long cancelOrder(CancelOrderDto model) { /** * todo 只更新了订单状态,后续操作待增加 * 更新订单状态 * 增加一条取消订单积分退回的记录 * 查询所有的订单详情,依次库存增加,销量减少 */ ScoreOrder scoreOrder = new ScoreOrder(); scoreOrder.setId(model.getId()); scoreOrder.setStatus(ScoreOrder.STATUS_CANCEL); scoreOrderMapper.updateByPrimaryKeySelective(scoreOrder); 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); ScoreDetails scoreDetails = scoreDetailsMapper.selectOneByExample(exampleDetails); if(ObjectUtil.isNotEmpty(scoreDetails)){ AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(order.getUserId()); BigDecimal score = new BigDecimal(accountInfo.getCollectScore()); BigDecimal remianScore = score.add(scoreDetails.getChangeScore()).setScale(0, BigDecimal.ROUND_DOWN); ScoreDetails scoreDetailsRet = new ScoreDetails(); scoreDetailsRet.setOrderNo(scoreDetails.getOrderNo()); scoreDetailsRet.setUserId(scoreDetails.getUserId()); scoreDetailsRet.setType(ScoreDetails.SCORE_TYPE_SHOPPING_RETURN); scoreDetailsRet.setOriginalScore(score); scoreDetailsRet.setCurrentScore(remianScore); scoreDetailsRet.setChangeScore(scoreDetails.getChangeScore()); scoreDetailsRet.setCreatedTime(new Date()); scoreDetailsMapper.insert(scoreDetailsRet); } Example exampleScoreOrderDetails = new Example(ScoreOrderDetails.class); Example.Criteria criteriaScoreOrderDetails = exampleScoreOrderDetails.createCriteria(); criteriaScoreOrderDetails.andEqualTo("orderId",order.getId()); List<ScoreOrderDetails> scoreOrderDetails = scoreOrderDetailsMapper.selectByExample(exampleScoreOrderDetails); if(CollUtil.isNotEmpty(scoreOrderDetails)){ for(ScoreOrderDetails scoreOrderDetail : scoreOrderDetails){ ScoreGoodsSku scoreGoodsSku = scoreGoodsSkuMapper.selectByPrimaryKey(scoreOrderDetail.getSkuId()); if(ObjectUtil.isNotEmpty(scoreGoodsSku)){ scoreGoodsSku.setStock(scoreGoodsSku.getStock() + scoreOrderDetail.getCnt()); scoreGoodsSku.setQuantity(scoreGoodsSku.getQuantity() - scoreOrderDetail.getCnt()); scoreGoodsSkuMapper.updateByPrimaryKey(scoreGoodsSku); } } } return scoreOrder.getId(); } gc-shop/src/main/java/com/xzx/gc/shop/vo/ViewJhyOrderVo.java
@@ -33,7 +33,7 @@ private String reserveTime; @ApiModelProperty(value="状态 1-待接单2-服务中3-已收款4-待入库5-已完成6-已取消") private String status; private Integer status; @ApiModelProperty(value="集物员") private String username; @@ -48,9 +48,9 @@ private String remark; @ApiModelProperty(value="评论") private String comment; private String comments; @ApiModelProperty(value="得分 0-0分1-20分2-40分3-60分4-80分5-100分") private String score; private Integer score; @ApiModelProperty(value="是否匿名 1-是2-否") private String isAnonymous; gc-shop/src/main/resources/mapper/shop/JhyOrderMapper.xml
@@ -58,7 +58,7 @@ d.mobile mobile, date_format(a.receiving_time,'%Y-%m-%d %H:%i:%S') receivingTime, a.remark remark, a.comment comment, 'a. COMMENT' comments, a.score score, a.is_anonymous isAnonymous FROM