UserActivityServiceImpl.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.cyksj.service.user.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.cyksj.common.util.Jsons;
  7. import com.cyksj.mapper.UserActivityMapper;
  8. import com.cyksj.mapper.UserActivityRankRobotMapper;
  9. import com.cyksj.mapper.UserMapper;
  10. import com.cyksj.mapper.UserStudentCertRecordMapper;
  11. import com.cyksj.model.entity.*;
  12. import com.cyksj.service.mange.coupon.CouponCommonService;
  13. import com.cyksj.service.user.UserActivityService;
  14. import lombok.RequiredArgsConstructor;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.dao.DuplicateKeyException;
  17. import org.springframework.stereotype.Service;
  18. import java.util.List;
  19. import java.util.stream.Collectors;
  20. /**
  21. * 项目名: yhlxj
  22. * 文件名: UserActivityServiceImpl
  23. * 创建者: JavaZou
  24. * 创建时间:2024/4/16 12:16
  25. */
  26. @Service
  27. @RequiredArgsConstructor
  28. @Slf4j
  29. public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, UserActivity> implements UserActivityService {
  30. private final CouponCommonService couponCommonService;
  31. private final UserMapper userMapper;
  32. private final UserStudentCertRecordMapper userStudentCertRecordMapper;
  33. private final UserActivityRankRobotMapper UserActivityRankRobotMapper;
  34. @Override
  35. public void sendStudentCertActivity(User user, String dsCode, String school) throws Exception {
  36. UserActivity activity = getById(1);
  37. Long sendUserId = user.getId();
  38. if (StrUtil.isNotBlank(dsCode)) {
  39. log.info("用户code:{}进行大学生身份认证成功..", dsCode);
  40. User toUser = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getShowId, dsCode).last("limit 1"));
  41. if (toUser != null) {
  42. sendUserId = toUser.getId();
  43. }
  44. }
  45. if (StrUtil.isNotBlank(activity.getCouponIds())) {
  46. //发送优惠券
  47. List<Long> couponIds = Jsons.parseList(activity.getCouponIds(), Long.class);
  48. log.info("uid:{}大学生认证成功,发放优惠券:{}", user.getId(), couponIds);
  49. for (Long couponId : couponIds) {
  50. couponCommonService.sendCouponToUser(sendUserId, couponId, 0l, 0l, 0l, CouponUser.Channel.student_cert);
  51. }
  52. }
  53. try {
  54. UserStudentCertRecord record = new UserStudentCertRecord();
  55. //记录发送用户
  56. record.setUserId(sendUserId);
  57. record.setSchool(school);
  58. userStudentCertRecordMapper.insert(record);
  59. } catch (DuplicateKeyException e) {
  60. }
  61. }
  62. @Override
  63. public void saveOrUpdateActivity(UserActivity userActivity) throws Exception {
  64. checkActivity(userActivity);
  65. if (userActivity.getType() == 1) {
  66. userActivity.setRewardInfo(Jsons.toJson(userActivity.getRewardInfoList()));
  67. }
  68. saveOrUpdate(userActivity);
  69. if (userActivity.getType() == 1) {
  70. List<UserActivityRankRobot> rankRoot = userActivity.getRankRobots();
  71. List<Long> collect = null;
  72. if (rankRoot != null) {
  73. collect = rankRoot.stream().filter(e -> e.getId() != null).map(UserActivityRankRobot::getId).collect(Collectors.toList());
  74. }
  75. UserActivityRankRobotMapper.delete(Wrappers.lambdaQuery(UserActivityRankRobot.class)
  76. .eq(UserActivityRankRobot::getAcId, userActivity.getId())
  77. .notIn(CollUtil.isNotEmpty(collect), UserActivityRankRobot::getId, collect));
  78. if (CollUtil.isNotEmpty(rankRoot)) {
  79. rankRoot.forEach(root -> {
  80. root.setAcId(userActivity.getId());
  81. if (root.getId() != null) {
  82. UserActivityRankRobotMapper.updateById(root);
  83. } else {
  84. UserActivityRankRobotMapper.insert(root);
  85. }
  86. });
  87. }
  88. }
  89. }
  90. public void checkActivity(UserActivity userActivity) throws Exception {
  91. String couponIds = userActivity.getCouponIds();
  92. if (StrUtil.isNotBlank(couponIds)) {
  93. List<Long> couponidsList = Jsons.parseList(couponIds, Long.class);
  94. userActivity.setCouponIds(Jsons.toJson(couponidsList));
  95. }
  96. }
  97. }