|
|
@@ -33,11 +33,17 @@ import io.renren.modules.qmgj.wxpayutil.OurWxPayConfig;
|
|
|
import io.renren.modules.qmgj.wxpayutil.PayCommonUtil;
|
|
|
import io.renren.modules.qmgj.wxpayutil.StringUtil;
|
|
|
import io.renren.modules.qmjz.entity.Region;
|
|
|
+import io.renren.modules.qmjz.entity.ScoreStu;
|
|
|
import io.renren.modules.qmjz.entity.WxConsumeInfoEntity;
|
|
|
import io.renren.modules.qmjz.enums.ActivityStatus;
|
|
|
+import io.renren.modules.qmjz.enums.ScoreType;
|
|
|
+import io.renren.modules.qmjz.enums.TaskType;
|
|
|
+import io.renren.modules.qmjz.mapper.ScoreStuMapper;
|
|
|
import io.renren.modules.qmjz.service.RegionService;
|
|
|
+import io.renren.modules.qmjz.service.ScoreStuService;
|
|
|
import io.renren.modules.qmjz.service.WxConsumeInfoService;
|
|
|
import io.renren.modules.qmjz.utils.BeanCopyUtils;
|
|
|
+import io.renren.modules.qmjz.utils.DateForStr;
|
|
|
import io.renren.modules.sys.dao.SysUserDao;
|
|
|
import io.renren.modules.sys.entity.SysRoleEntity;
|
|
|
import io.renren.modules.sys.entity.SysUserEntity;
|
|
|
@@ -145,6 +151,10 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
|
|
|
private ActivityStuPayinfoDao activityStuPayinfoDao;
|
|
|
@Resource
|
|
|
private WorkService workService;
|
|
|
+ @Autowired
|
|
|
+ private ScoreStuService scoreStuService;
|
|
|
+ @Autowired
|
|
|
+ private ScoreStuMapper scoreStuMapper;
|
|
|
|
|
|
@Override
|
|
|
public PageUtils queryPage(Map<String, Object> params) {
|
|
|
@@ -836,6 +846,21 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
|
|
|
activityStu.setCreateTime(DateFormatUtils.format(now, "yyyy-MM-dd HH:mm:ss"));
|
|
|
activityStu.setCreateId((long) 0);
|
|
|
activityStuDao.insert(activityStu);
|
|
|
+ //插入一条积分记录
|
|
|
+ params.get("usePoints");
|
|
|
+ BigDecimal usePoints = BigDecimal.valueOf((Integer)(params.get("usePoints")));
|
|
|
+ ScoreStu add = new ScoreStu();
|
|
|
+ add.setDay(DateForStr.getInfoDateStr(new Date()));
|
|
|
+ add.setStuId(stuId);
|
|
|
+ add.setScoreType(ScoreType.STORE_SCORE.getCode());
|
|
|
+ add.setTaskId(TaskType.ACTIVITY_APPLY_DEDUCT.getCode());
|
|
|
+ add.setBusinessId(TaskType.ACTIVITY_APPLY_DEDUCT.getCode());
|
|
|
+ add.setScoreEvent(TaskType.ACTIVITY_APPLY_DEDUCT.getInfo());
|
|
|
+ add.setScoreValue(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue());
|
|
|
+ add.setCreateTime(new Date());
|
|
|
+ add.setSurplusScore(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue() + this.scoreStuService.getTotalScore(stuId));
|
|
|
+ scoreStuMapper.insert(add);
|
|
|
+
|
|
|
|
|
|
count = activityStuDao.selectCount(
|
|
|
new QueryWrapper<ActivityStuEntity>().eq("activity_id", actId).eq("is_delete", 0).eq("status", "01"));
|
|
|
@@ -982,6 +1007,44 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
|
|
|
|
|
|
Integer isNeedVip = activity.getIsNeedVip();
|
|
|
BigDecimal money = activity.getMoney();
|
|
|
+ //qyh_points_config
|
|
|
+ PointsConfigEntity pointsConfig = pointsConfigService.getOne();
|
|
|
+ if (pointsConfig == null) {
|
|
|
+ return R.error(514, "系统配置错误!");
|
|
|
+ }
|
|
|
+ //获取会员总积分
|
|
|
+ Integer totalScore = scoreStuService.getTotalScore(stuId);
|
|
|
+ Integer pointsDeduction = pointsConfig.getPointsDeduction();
|
|
|
+ BigDecimal actualPayment = BigDecimal.ZERO;
|
|
|
+ int usePoints = 0;
|
|
|
+ // 当前价格所需要的积分
|
|
|
+ Integer priceIntegral =
|
|
|
+ NumberUtil.mul(money, NumberUtil.toBigDecimal(pointsDeduction)).intValue();
|
|
|
+ if (NumberUtil.isGreater(NumberUtil.toBigDecimal(totalScore),
|
|
|
+ NumberUtil.toBigDecimal(priceIntegral))) {
|
|
|
+ usePoints = priceIntegral;
|
|
|
+ BigDecimal deductiblePrice =
|
|
|
+ NumberUtil.div(priceIntegral, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
+ actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
+ } else {
|
|
|
+ BigDecimal deductiblePrice =
|
|
|
+ NumberUtil.div(totalScore, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
+ usePoints = NumberUtil.mul(deductiblePrice, pointsDeduction).intValue();
|
|
|
+ actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
+ }
|
|
|
+ params.put("usePoints", usePoints);
|
|
|
+ //积分够扣且小于扣除上限走免费报名接口
|
|
|
+ if (BigDecimal.valueOf(totalScore).divide(BigDecimal.valueOf(pointsConfig.getPointsDeduction())).setScale(0, RoundingMode.FLOOR).compareTo(money) >= 0
|
|
|
+ && BigDecimal.valueOf(pointsConfig.getPointsDeduction()).compareTo(BigDecimal.valueOf(pointsConfig.getDeductionLimit())) <= 0){
|
|
|
+ // 直接走免费报名接口
|
|
|
+ R register = register(params);
|
|
|
+ Integer code = (Integer) register.get("code");
|
|
|
+ if (0 == code) {
|
|
|
+ member.setActFree("0");
|
|
|
+ memberInfoDao.updateById(member);
|
|
|
+ }
|
|
|
+ return register;
|
|
|
+ }
|
|
|
if (NumberUtil.isLessOrEqual(money, BigDecimal.ZERO)) {
|
|
|
// 直接走免费报名接口
|
|
|
R register = register(params);
|
|
|
@@ -1087,8 +1150,8 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
|
|
|
return R.error(508, "当前活动已报满!");
|
|
|
}
|
|
|
|
|
|
- BigDecimal actualPayment = BigDecimal.ZERO;
|
|
|
- int usePoints = 0;
|
|
|
+ //BigDecimal actualPayment = BigDecimal.ZERO;
|
|
|
+ //int usePoints = 0;
|
|
|
Integer isDeductiblePrice = MapUtil.getInt(params, "isDeductiblePrice");
|
|
|
Long id = member.getId();
|
|
|
Integer totalPoints = pointsRecordService.getTotalPointsByMemberId(id);
|
|
|
@@ -1104,33 +1167,45 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityDao, ActivityEntity
|
|
|
NumberUtil.toBigDecimal(deductionLimit))) {
|
|
|
totalPoints = deductionLimit;
|
|
|
}
|
|
|
- Integer pointsDeduction = info.getPointsDeduction();
|
|
|
- // 当前价格所需要的积分
|
|
|
- Integer priceIntegral =
|
|
|
- NumberUtil.mul(money, NumberUtil.toBigDecimal(pointsDeduction)).intValue();
|
|
|
- if (NumberUtil.isGreater(NumberUtil.toBigDecimal(totalPoints),
|
|
|
- NumberUtil.toBigDecimal(priceIntegral))) {
|
|
|
- usePoints = priceIntegral;
|
|
|
- BigDecimal deductiblePrice =
|
|
|
- NumberUtil.div(priceIntegral, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
- actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
- } else {
|
|
|
- BigDecimal deductiblePrice =
|
|
|
- NumberUtil.div(totalPoints, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
- usePoints = NumberUtil.mul(deductiblePrice, pointsDeduction).intValue();
|
|
|
- actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
- }
|
|
|
+ // Integer pointsDeduction = info.getPointsDeduction();
|
|
|
+ // // 当前价格所需要的积分
|
|
|
+ // Integer priceIntegral =
|
|
|
+ // NumberUtil.mul(money, NumberUtil.toBigDecimal(pointsDeduction)).intValue();
|
|
|
+ // if (NumberUtil.isGreater(NumberUtil.toBigDecimal(totalPoints),
|
|
|
+ // NumberUtil.toBigDecimal(priceIntegral))) {
|
|
|
+ // usePoints = priceIntegral;
|
|
|
+ // BigDecimal deductiblePrice =
|
|
|
+ // NumberUtil.div(priceIntegral, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
+ // actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
+ // } else {
|
|
|
+ // BigDecimal deductiblePrice =
|
|
|
+ // NumberUtil.div(totalPoints, pointsDeduction, 0, RoundingMode.FLOOR);
|
|
|
+ // usePoints = NumberUtil.mul(deductiblePrice, pointsDeduction).intValue();
|
|
|
+ // actualPayment = NumberUtil.sub(money, deductiblePrice);
|
|
|
+ // }
|
|
|
if (NumberUtil.equals(actualPayment, BigDecimal.ZERO)) {
|
|
|
// 新增积分数据
|
|
|
- PointsRecordDTO dto = new PointsRecordDTO();
|
|
|
- dto.setMemberId(stuId);
|
|
|
- dto.setBusinessId(actId);
|
|
|
- dto.setScoreValue(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue());
|
|
|
- dto.setActualPrice(actualPayment);
|
|
|
- dto.setIsLowerLevel(YnEnum.NO.value());
|
|
|
- dto.setTaskId(Constant.ACTIVITY_APPLY_DEDUCT);
|
|
|
- dto.setTaskName("活动报名抵扣的积分");
|
|
|
- pointsRecordService.savePointsRecord(dto);
|
|
|
+ //PointsRecordDTO dto = new PointsRecordDTO();
|
|
|
+ //dto.setMemberId(stuId);
|
|
|
+ //dto.setBusinessId(actId);
|
|
|
+ //dto.setScoreValue(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue());
|
|
|
+ //dto.setActualPrice(actualPayment);
|
|
|
+ //dto.setIsLowerLevel(YnEnum.NO.value());
|
|
|
+ //dto.setTaskId(Constant.ACTIVITY_APPLY_DEDUCT);
|
|
|
+ //dto.setTaskName("活动报名抵扣的积分");
|
|
|
+ //pointsRecordService.savePointsRecord(dto);
|
|
|
+ //插入一条积分记录
|
|
|
+ ScoreStu add = new ScoreStu();
|
|
|
+ add.setDay(DateForStr.getInfoDateStr(new Date()));
|
|
|
+ add.setStuId(stuId);
|
|
|
+ add.setScoreType(ScoreType.STORE_SCORE.getCode());
|
|
|
+ add.setTaskId(TaskType.ACTIVITY_APPLY_DEDUCT.getCode());
|
|
|
+ add.setBusinessId(TaskType.ACTIVITY_APPLY_DEDUCT.getCode());
|
|
|
+ add.setScoreEvent(TaskType.ACTIVITY_APPLY_DEDUCT.getInfo());
|
|
|
+ add.setScoreValue(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue());
|
|
|
+ add.setCreateTime(new Date());
|
|
|
+ add.setSurplusScore(NumberUtil.sub(BigDecimal.ZERO, usePoints).intValue() + this.scoreStuService.getTotalScore(stuId));
|
|
|
+ scoreStuMapper.insert(add);
|
|
|
// 直接走免费报名接口
|
|
|
R register = register(params);
|
|
|
Integer code = (Integer) register.get("code");
|