wzy
2021-04-01 d388e2788b7ef088d7cd40f901b0acdcec460bc3
zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopBizUserScoreAction.java
@@ -42,73 +42,9 @@
    public static final String BEV = "ShopBizUserScore_BEV";
    /**
     * 进入积分兑换界面
     */
    @SaveRequestToken
    @RequestMapping(value = "/intoExchangePage")
    public ModelAndView exchangeScore(String userId) {
        BizUser bizUser = new BizUser();
        ModelAndView modelAndView = new ModelAndView("admin/shop/user-score-exchange");
        if (StringUtils.isNotBlank(userId)) {
            bizUser = bizUserService.findById(userId);
            if (bizUser.getCurrentScore() == null) {
                bizUser.setCurrentScore(0);
            }
        }
        modelAndView.addObject("obj", bizUser);
        return modelAndView;
    }
    /**
     * 兑换积分
     */
    @Transactional(rollbackFor = Exception.class)
    @RemoveRequestToken
    @RequestMapping(value = "/exchangeScore")
    public @ResponseBody
    AjaxResult exchangeScore(ExchangeScorePOJO pojo) {
        //校验参数中用户ID和用户兑换积分是否有效
        if (pojo == null || StringUtils.isBlank(pojo.getUserId())
                || pojo.getScore() == null || pojo.getScore() == 0) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "提交参数有误!");
        }
        //兑换积分用户信息
        BizUser bizUser = bizUserService.findById(pojo.getUserId());
        if (bizUser == null) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "没有查询到相应用户!");
        }
        if (bizUser.getCurrentScore() == null) {
            bizUser.setCurrentScore(0);
        }
        //如果兑换积分大于用户当前积分
        if (pojo.getScore() > bizUser.getCurrentScore()) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "兑换积分大于用户当前积分!");
        }
        //剩余积分 = 当前积分 - 兑换积分
        Integer remainScore = bizUser.getCurrentScore() - pojo.getScore();
        //当前操作用户信息
        SysUsers loginUser = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        //修改用户剩余积分
        BizUser updateModel = new BizUser();
        updateModel.setUserId(bizUser.getUserId());
        updateModel.setCurrentScore(remainScore);
        updateModel.setUpdateBy(loginUser.getSuName());
        updateModel.setUpdateTime(new Date());
        bizUserService.modifyByModel(updateModel);
        //添加积分兑换记录
        ShopScoreExchange insertExchange = new ShopScoreExchange();
        insertExchange.setCreateBy(loginUser.getSuName());
        insertExchange.setUpdateBy(loginUser.getSuName());
        insertExchange.setUserId(bizUser.getOpenId());
        insertExchange.setExchangeScore(pojo.getScore());
        insertExchange.setOperateId(loginUser.getSuId());
        insertExchange.setRemark(pojo.getRemarks());
        shopScoreExchangeDao.insert(insertExchange);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "兑换成功!");
    }
}