Helius
2021-06-28 97fb2e4bf020d6c49ef42ad084b42439eb5976b5
Merge branch 'score-shop' of http://120.27.238.55:7000/r/xzx into score-shop
4 files modified
66 ■■■■■ changed files
gc-shop/src/main/java/com/xzx/gc/shop/controller/AdminOrderController.java 17 ●●●●● patch | view | raw | blame | history
gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java 41 ●●●●● patch | view | raw | blame | history
gc-shop/src/main/java/com/xzx/gc/shop/vo/ViewJhyOrderVo.java 6 ●●●● patch | view | raw | blame | history
gc-shop/src/main/resources/mapper/shop/JhyOrderMapper.xml 2 ●●● patch | view | raw | blame | history
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