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