| 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, "兑换成功!"); | 
|     } | 
|   | 
|   | 
| } |