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 page=new Page<>(scoreFlowDto.getPageNum(),scoreFlowDto.getPageSize()); IPage 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; } }