From 482847fc97748b67fd8ab93b5b589ab3824f6d02 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 07 Apr 2021 10:28:56 +0800 Subject: [PATCH] 20210407 签到 --- zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java | 107 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 68 insertions(+), 39 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 3faa9fb..1c36562 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,8 +1,8 @@ package com.matrix.system.score.service; import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.matrix.biz.dao.BizUserDao; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.tools.DateUtil; @@ -38,7 +38,7 @@ ScoreUseRecordDao scoreUseRecordDao; @Autowired - BizUserDao bizUserDao; + SysVipInfoDao sysVipInfoDao; @Autowired SysVipInfoDao vipInfoDao; @@ -51,24 +51,17 @@ /** * 扣除用户积分 - * - * @param openId - * @param score - * @param businessId - * @param type */ @Transactional(rollbackFor = Exception.class) - public void deductionScore(String openId, Long vipId,Long shopId, 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必须有一个"); + public void deductionScore(Long vipId,Long oprationUserId,Long shopId, Integer score, Long businessId, int type,String remark) { + Long companyId= vipInfoDao.selectById(vipId).getCompanyId(); + + String createBy=MatrixConstance.SYSTEM_USER; + if(oprationUserId!=null){ + createBy=sysUsersDao.selectById(oprationUserId).getSuName(); } - List<ScoreVipDetail> effectiveScoreList = scoreVipDetailDao.selectEffectiveScore(openId,null); + List<ScoreVipDetail> effectiveScoreList = scoreVipDetailDao.selectEffectiveScore(vipId); for (ScoreVipDetail scoreVipDetail : effectiveScoreList) { @@ -93,9 +86,13 @@ scoreVipDetailDao.updateById(scoreVipDetail); score=Math.abs(surplus); } + + + + //新增扣除记录 - scoreUseRecord.setCreateBy(MatrixConstance.SYSTEM_USER); - scoreUseRecord.setUpdateBy(MatrixConstance.SYSTEM_USER); + scoreUseRecord.setCreateBy(createBy); + scoreUseRecord.setUpdateBy(createBy); scoreUseRecord.setCreateTime(DateTime.now()); scoreUseRecord.setUpdateTime(DateTime.now()); scoreUseRecord.setNowScore(scoreVipDetail.getRemainScore()); @@ -103,10 +100,11 @@ scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(businessId); scoreUseRecord.setRecNum(-currentDedution); - scoreUseRecord.setRecType(type); + scoreUseRecord.setType(type); scoreUseRecord.setShopId(shopId); - scoreUseRecord.setOpenId(openId); scoreUseRecord.setVipId(vipId); + scoreUseRecord.setRemarks(remark); + scoreUseRecord.setOprationUserId(oprationUserId); scoreUseRecordDao.insert(scoreUseRecord); if(surplus > 0 || surplus == 0){ @@ -120,23 +118,11 @@ /** * 新增用户积分 - * @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,Long shopId, 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必须有一个"); - } + public void addScore(Long vipId, Long oprationUserId,Long shopId, Integer score, Long businessId, int type,String remark) { + Long companyId= vipInfoDao.selectById(vipId).getCompanyId(); + if(score<0){ throw new IllegalArgumentException("score必须有为大于零的数"); } @@ -151,7 +137,7 @@ 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 ); + Date sxys=DateUtil.stringToDate(sxYear+"-12-31 23:59",DateUtil.DATE_FORMAT_MM ); ScoreVipDetail scoreVipDetail=new ScoreVipDetail(); @@ -162,8 +148,8 @@ scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX); scoreVipDetail.setRemainScore(score); scoreVipDetail.setUsedScore(0); + scoreVipDetail.setBusinessId(businessId); scoreVipDetail.setValiditeTime(sxys); - scoreVipDetail.setOpenId(openId); scoreVipDetail.setVipId(vipId); scoreVipDetail.setGainTime(DateTime.now()); scoreVipDetail.setAllScore(score); @@ -183,15 +169,58 @@ scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(businessId); scoreUseRecord.setRecNum(score); - scoreUseRecord.setRecType(type); - scoreUseRecord.setOpenId(openId); + scoreUseRecord.setType(type); scoreUseRecord.setVipId(vipId); scoreUseRecord.setShopId(shopId); scoreUseRecord.setOprationUserId(oprationUserId); + scoreUseRecord.setRemarks(remark); scoreUseRecordDao.insert(scoreUseRecord); } + /** + * 退积分 + */ + public void refundScore(Long vipId, Integer score, Long oldBusinessId, int type){ + Long companyId= vipInfoDao.selectById(vipId).getCompanyId(); + + if(score<0){ + throw new IllegalArgumentException("score必须有为大于零的数"); + } + //查询原始使用记录 + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("business_id",oldBusinessId); + queryWrapper.eq("company_id",companyId); + queryWrapper.eq("type",type); + List<ScoreUseRecord> scoreUseRecordList = scoreUseRecordDao.selectList(queryWrapper); + scoreUseRecordList.forEach(scoreUseRecord -> { + ScoreVipDetail scoreVipDetail = scoreVipDetailDao.selectById(scoreUseRecord.getScoreVipDetailId()); + if(scoreVipDetail!=null){ + if(DateTime.now().isAfter(scoreVipDetail.getValiditeTime())){ + //积分还有效 + scoreVipDetail.setRemainScore( scoreVipDetail.getRemainScore()+score); + scoreVipDetail.setUsedScore(scoreVipDetail.getUsedScore()-score); + scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX); + scoreVipDetailDao.updateById(scoreVipDetail); + scoreUseRecordDao.deleteById(scoreUseRecord.getId()); + } + } + + }); + } + + public void removeByBusinessId( Long vipId, Long oldBusinessId){ + Long companyId= vipInfoDao.selectById(vipId).getCompanyId(); + + if(oldBusinessId==null){ + throw new IllegalArgumentException("oldBusinessId必须有"); + } + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("business_id",oldBusinessId); + queryWrapper.eq("company_id",companyId); + scoreVipDetailDao.delete(queryWrapper); + scoreUseRecordDao.delete(queryWrapper); + } } \ No newline at end of file -- Gitblit v1.9.1