From 585f72d4f6022cd9498a9a1e4309f51821f1995a Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Mon, 22 Mar 2021 08:25:33 +0800 Subject: [PATCH] 用户积分流水查询 --- zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 insertions(+), 1 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 38cfd4d..1b939fc 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 @@ -5,7 +5,12 @@ import com.matrix.biz.dao.BizUserDao; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; +import com.matrix.core.tools.DateUtil; +import com.matrix.system.common.bean.BusParameterSettings; +import com.matrix.system.common.dao.BusParameterSettingsDao; +import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.hive.dao.SysVipInfoDao; +import com.matrix.system.score.constant.ScoreSettingConstant; import com.matrix.system.score.dao.ScoreUseRecordDao; import com.matrix.system.score.dao.ScoreVipDetailDao; import com.matrix.system.score.entity.ScoreUseRecord; @@ -14,6 +19,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** @@ -35,6 +42,12 @@ @Autowired SysVipInfoDao vipInfoDao; + + @Autowired + SysUsersDao sysUsersDao; + + @Autowired + BusParameterSettingsDao busParameterSettingsDao; /** * 扣除用户积分 @@ -89,7 +102,7 @@ scoreUseRecord.setCompanyId(companyId); scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(businessId); - scoreUseRecord.setRecNum(currentDedution); + scoreUseRecord.setRecNum(-currentDedution); scoreUseRecord.setRecType(type); scoreUseRecord.setOpenId(openId); scoreUseRecord.setVipId(vipId); @@ -102,6 +115,80 @@ if(score>0){ throw new GlobleException("积分不足"); } + } + + /** + * 新增用户积分 + * @param openId + * @param vipId + * @param oprationUserId + * @param score + * @param businessId + * @param type + */ + @Transactional(rollbackFor = Exception.class) + public void addScore(String openId, Long vipId, Long oprationUserId, Integer score, Long businessId, int type) { + Long companyId=null; + if(openId!=null){ + companyId= bizUserDao.findByOpenId(openId).getCompanyId(); + }else if(vipId!=null){ + companyId= vipInfoDao.selectById(vipId).getCompanyId(); + }else{ + throw new IllegalArgumentException("vipId,openId必须有一个"); + } + if(score<0){ + throw new IllegalArgumentException("score必须有为大于零的数"); + } + + String createBy=MatrixConstance.SYSTEM_USER; + if(oprationUserId!=null){ + createBy=sysUsersDao.selectById(oprationUserId).getSuName(); + } + + //计算过期时间 + BusParameterSettings yxqSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId); + Calendar cal=Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + int sxYear=year+(Integer.parseInt(yxqSetting.getParamValue())-1); + Date sxys=DateUtil.stringToDate(year+"-12-31 23:59",DateUtil.DATE_FORMAT_MM ); + + ScoreVipDetail scoreVipDetail=new ScoreVipDetail(); + + scoreVipDetail.setCreateBy(createBy); + scoreVipDetail.setUpdateBy(createBy); + scoreVipDetail.setCreateTime(DateTime.now()); + scoreVipDetail.setUpdateTime(DateTime.now()); + scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX); + scoreVipDetail.setRemainScore(score); + scoreVipDetail.setUsedScore(0); + scoreVipDetail.setValiditeTime(sxys); + scoreVipDetail.setOpenId(openId); + scoreVipDetail.setVipId(vipId); + scoreVipDetail.setGainTime(DateTime.now()); + scoreVipDetail.setAllScore(score); + scoreVipDetail.setType(type); + scoreVipDetail.setCompanyId(companyId); + scoreVipDetailDao.insert(scoreVipDetail); + + //新增添加记录 + ScoreUseRecord scoreUseRecord = new ScoreUseRecord(); + scoreUseRecord.setPreScore(score); + scoreUseRecord.setCreateBy(createBy); + scoreUseRecord.setUpdateBy(createBy); + scoreUseRecord.setCreateTime(DateTime.now()); + scoreUseRecord.setUpdateTime(DateTime.now()); + scoreUseRecord.setNowScore(score); + scoreUseRecord.setCompanyId(companyId); + scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); + scoreUseRecord.setBusinessId(businessId); + scoreUseRecord.setRecNum(score); + scoreUseRecord.setRecType(type); + scoreUseRecord.setOpenId(openId); + scoreUseRecord.setVipId(vipId); + scoreUseRecordDao.insert(scoreUseRecord); + } + + } \ No newline at end of file -- Gitblit v1.9.1