package com.matrix.system.shopXcx.action;
|
|
import com.matrix.biz.bean.BizUser;
|
import com.matrix.biz.service.BizUserService;
|
import com.matrix.core.anotations.RemoveRequestToken;
|
import com.matrix.core.anotations.SaveRequestToken;
|
import com.matrix.core.constance.MatrixConstance;
|
import com.matrix.core.pojo.AjaxResult;
|
import com.matrix.core.tools.StringUtils;
|
import com.matrix.core.tools.WebUtil;
|
import com.matrix.system.common.bean.SysUsers;
|
import com.matrix.system.shopXcx.bean.ShopScoreExchange;
|
import com.matrix.system.shopXcx.dao.ShopScoreExchangeDao;
|
import com.matrix.system.shopXcx.pojo.ExchangeScorePOJO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import java.util.Date;
|
|
|
/**
|
* @author jyy
|
* @description 微商城会员积分控制器
|
* @date 2019-06-05 10:15
|
*/
|
@Controller
|
@RequestMapping(value = "admin/bizUserScore")
|
public class ShopBizUserScoreAction {
|
|
@Autowired
|
private BizUserService bizUserService;
|
@Autowired
|
private ShopScoreExchangeDao shopScoreExchangeDao;
|
|
/**
|
* 记录编辑前的值Before_Edit_Value
|
*/
|
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, "兑换成功!");
|
}
|
|
|
}
|