From 799622ea4d37aa6bb9fee457967532aa93d18594 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 21 Mar 2021 20:17:05 +0800 Subject: [PATCH] 扣除用户积分 --- zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java | 73 +++++++++++++++++++++++++++++++++--- 1 files changed, 67 insertions(+), 6 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java index 807819d..1432df4 100644 --- a/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java +++ b/zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java @@ -1,20 +1,81 @@ package com.matrix.system.score.service; -import com.matrix.system.score.dao.ScoreVipDetailDao; -import com.matrix.system.score.entity.ScoreVipDetail; +import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.matrix.biz.bean.BizUser; +import com.matrix.biz.dao.BizUserDao; +import com.matrix.core.constance.MatrixConstance; +import com.matrix.system.score.dao.ScoreUseRecordDao; +import com.matrix.system.score.dao.ScoreVipDetailDao; +import com.matrix.system.score.entity.ScoreUseRecord; +import com.matrix.system.score.entity.ScoreVipDetail; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** - * @description 客户积分余额 * @author jyy + * @description 客户积分余额 * @date 2021-02-26 15:26 */ @Service -public class ScoreVipDetailService extends ServiceImpl<ScoreVipDetailDao, ScoreVipDetail>{ +public class ScoreVipDetailService extends ServiceImpl<ScoreVipDetailDao, ScoreVipDetail> { + + @Autowired + ScoreVipDetailDao scoreVipDetailDao; + + @Autowired + ScoreUseRecordDao scoreUseRecordDao; + + @Autowired + BizUserDao bizUserDao; + + /** + * 扣除用户积分 + * + * @param openId + * @param score + * @param businessId + * @param type + */ + public void deductionScore(String openId, Integer score, Long businessId, int type) { + BizUser user = bizUserDao.findByOpenId(openId); + List<ScoreVipDetail> effectiveScoreList = scoreVipDetailDao.selectEffectiveScore(openId); + + for (ScoreVipDetail scoreVipDetail : effectiveScoreList) { + + ScoreUseRecord scoreUseRecord = new ScoreUseRecord(); + scoreUseRecord.setPreScore(scoreVipDetail.getRemainScore()); + int surplus = scoreVipDetail.getRemainScore() - score; + int currentDedution = 0; + if (surplus > 0 || surplus == 0) { + //余额充足 + currentDedution = score; + scoreVipDetail.setRemainScore(surplus); + scoreVipDetailDao.updateById(scoreVipDetail); + break; + } else { + currentDedution = scoreVipDetail.getRemainScore(); + scoreVipDetail.setRemainScore(0); + scoreVipDetailDao.updateById(scoreVipDetail); + score=Math.abs(surplus); + } + //新增扣除记录 + scoreUseRecord.setCreateBy(MatrixConstance.SYSTEM_USER); + scoreUseRecord.setUpdateBy(MatrixConstance.SYSTEM_USER); + scoreUseRecord.setCreateTime(DateTime.now()); + scoreUseRecord.setUpdateTime(DateTime.now()); + scoreUseRecord.setNowScore(scoreVipDetail.getRemainScore()); + scoreUseRecord.setCompanyId(user.getCompanyId()); + scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); + scoreUseRecord.setBusinessId(businessId); + scoreUseRecord.setRecNum(currentDedution); + scoreUseRecord.setRecType(type); + scoreUseRecordDao.insert(scoreUseRecord); + } - - + } } \ No newline at end of file -- Gitblit v1.9.1