| package com.matrix.system.hive.action; | 
|   | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.matrix.core.constance.MatrixConstance; | 
| import com.matrix.core.pojo.AjaxResult; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.system.common.bean.SysUsers; | 
| import com.matrix.system.hive.bean.SysVipInfo; | 
| import com.matrix.system.hive.dao.SysVipInfoDao; | 
| import com.matrix.system.hive.dto.ScoreChangeDto; | 
| import com.matrix.system.score.dao.ScoreUseRecordDao; | 
| import com.matrix.system.score.dao.ScoreVipDetailDao; | 
| import com.matrix.system.score.entity.ScoreVipDetail; | 
| import com.matrix.system.score.service.ScoreVipDetailService; | 
| import com.matrix.system.shopXcx.api.dto.ScoreFlowDto; | 
| import com.matrix.system.shopXcx.api.vo.ScoreUseRecordVo; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import io.swagger.annotations.ApiResponse; | 
| import io.swagger.annotations.ApiResponses; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.validation.annotation.Validated; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| /** | 
|  * @author jyy | 
|  * @date 2021-03-22 15:10 | 
|  */ | 
| @Api(tags = "用户积分接口类") | 
| @RestController | 
| @RequestMapping(value = "/admin/score") | 
| public class ErpShopScoreAction { | 
|   | 
|   | 
|   | 
|     @Autowired | 
|     ScoreUseRecordDao scoreUseRecordDao; | 
|   | 
|     @Autowired | 
|     ScoreVipDetailDao scoreVipDetailDao; | 
|   | 
|     @Autowired | 
|     ScoreVipDetailService scoreVipDetailService; | 
|   | 
|     @Autowired | 
|     SysVipInfoDao sysVipInfoDao; | 
|   | 
|     @ApiOperation(value = "获取积分流水", notes = "") | 
|     @PostMapping(value = "/getFlowList") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "ok", response = ScoreUseRecordVo.class) | 
|     }) | 
|     AjaxResult getFlowList(@RequestBody  ScoreFlowDto scoreFlowDto) { | 
|         SysVipInfo vipInfo = sysVipInfoDao.selectById(scoreFlowDto.getVipId()); | 
|         scoreFlowDto.setVipId(vipInfo.getId()); | 
|         Page<ScoreUseRecordVo> page=new Page<>(scoreFlowDto.getPageNum(),scoreFlowDto.getPageSize()); | 
|         IPage<ScoreUseRecordVo> shopScoreRecord = scoreUseRecordDao.selectFlowList(page,scoreFlowDto); | 
|         AjaxResult result=AjaxResult.buildSuccessInstance(shopScoreRecord.getRecords(),shopScoreRecord.getTotal()); | 
|         return result; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|   | 
|     @ApiOperation(value = "调整用户积分", notes = "") | 
|     @PostMapping(value = "/changeUserScore") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) | 
|     }) | 
|     AjaxResult changeUserScore(@RequestBody @Validated ScoreChangeDto scoreChangeDto) { | 
|         SysVipInfo vipInfo = sysVipInfoDao.selectById(scoreChangeDto.getVipId()); | 
|         SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         if(scoreChangeDto.getAmount()>0){ | 
|             scoreVipDetailService.addScore(vipInfo.getId(),sysUsers.getSuId(),sysUsers.getShopId(),scoreChangeDto.getAmount(),0L, ScoreVipDetail.SCORE_VIP_TYPE_USERCHANGE,scoreChangeDto.getRemarks()); | 
|         }else if (scoreChangeDto.getAmount()<0){ | 
|             scoreVipDetailService.deductionScore(vipInfo.getId(),sysUsers.getSuId(),sysUsers.getShopId(),Math.abs(scoreChangeDto.getAmount()),0L,ScoreVipDetail.SCORE_VIP_TYPE_USERCHANGE,scoreChangeDto.getRemarks()); | 
|         } | 
|         AjaxResult result=AjaxResult.buildSuccessInstance("调整成功"); | 
|         return result; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|     @ApiOperation(value = "获取用户积分", notes = "") | 
|     @PostMapping(value = "/getUserScore/{vipId}") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "ok", response = AjaxResult.class) | 
|     }) | 
|     AjaxResult getUserScore(@PathVariable Long vipId) { | 
|         AjaxResult result=AjaxResult.buildSuccessInstance(scoreVipDetailDao.selectUserTotalScore(vipId)); | 
|         return result; | 
|     } | 
|   | 
|   | 
| } |