| | |
| | | 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; |
| | |
| | | ScoreUseRecordDao scoreUseRecordDao; |
| | | |
| | | @Autowired |
| | | BizUserDao bizUserDao; |
| | | SysVipInfoDao sysVipInfoDao; |
| | | |
| | | @Autowired |
| | | SysVipInfoDao vipInfoDao; |
| | |
| | | * 扣除用户积分 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void deductionScore(String openId, Long vipId,Long shopId, Integer score, Long businessId, int type,String remark) { |
| | | 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) { |
| | | |
| | |
| | | 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()); |
| | |
| | | scoreUseRecord.setRecNum(-currentDedution); |
| | | 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){ |
| | |
| | | * 新增用户积分 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void addScore(String openId, Long vipId, Long oprationUserId,Long shopId, Integer score, Long businessId, int type,String remark) { |
| | | 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必须有为大于零的数"); |
| | | } |
| | |
| | | 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(); |
| | | |
| | |
| | | scoreVipDetail.setUsedScore(0); |
| | | scoreVipDetail.setBusinessId(businessId); |
| | | scoreVipDetail.setValiditeTime(sxys); |
| | | scoreVipDetail.setOpenId(openId); |
| | | scoreVipDetail.setVipId(vipId); |
| | | scoreVipDetail.setGainTime(DateTime.now()); |
| | | scoreVipDetail.setAllScore(score); |
| | |
| | | scoreUseRecord.setBusinessId(businessId); |
| | | scoreUseRecord.setRecNum(score); |
| | | scoreUseRecord.setType(type); |
| | | scoreUseRecord.setOpenId(openId); |
| | | scoreUseRecord.setVipId(vipId); |
| | | scoreUseRecord.setShopId(shopId); |
| | | scoreUseRecord.setOprationUserId(oprationUserId); |
| | |
| | | /** |
| | | * 退积分 |
| | | */ |
| | | public void refundScore(String openId, Long vipId, Integer score, Long oldBusinessId, 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 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); |
| | |
| | | }); |
| | | } |
| | | |
| | | public void removeByBusinessId(String openId, Long vipId, Long oldBusinessId, 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 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); |
| | | queryWrapper.eq("type",type); |
| | | scoreVipDetailDao.delete(queryWrapper); |
| | | scoreUseRecordDao.delete(queryWrapper); |
| | | } |