UserSuggestServiceImpl.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.cyksj.service.suggest.impl;
  2. import cn.hutool.core.lang.Assert;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5. import com.cyksj.common.exception.BusinessRuntimeException;
  6. import com.cyksj.common.util.ValidatorUtil;
  7. import com.cyksj.mapper.*;
  8. import com.cyksj.model.entity.*;
  9. import com.cyksj.service.suggest.UserSuggestService;
  10. import lombok.RequiredArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. /**
  15. * 项目名: yhlxj2
  16. * 文件名: UserSuggestServiceImpl
  17. * 创建者: JavaZou
  18. * 创建时间:2024/10/11 17:10
  19. */
  20. @Service
  21. @RequiredArgsConstructor
  22. @Slf4j
  23. public class UserSuggestServiceImpl implements UserSuggestService {
  24. private final UserFeedbackRecordMapper userFeedbackRecordMapper;
  25. private final UserFeedbackProgressRecordMapper userFeedbackProgressRecordMapper;
  26. private final UserRecommendGoodsRecordMapper userRecommendGoodsRecordMapper;
  27. private final GoodsDonMapper goodsDonMapper;
  28. private final UserMapper userMapper;
  29. @Override
  30. @Transactional(rollbackFor = Throwable.class)
  31. public void suggestGoodsUsage(UserFeedbackProgressRecord progressRecord) {
  32. Long goodsId = progressRecord.getGoodsId();
  33. Long userId = progressRecord.getUserId();
  34. String img = progressRecord.getImg();
  35. String content = progressRecord.getContent();
  36. if (StrUtil.isAllEmpty(img, content)) {
  37. throw BusinessRuntimeException.getInstance("请填写问题内容或截图");
  38. }
  39. if (StrUtil.isNotBlank(img) && img.length() > 1024) {
  40. throw BusinessRuntimeException.getInstance("图片过多");
  41. }
  42. if (StrUtil.isNotEmpty(content) && content.length() > 1000) {
  43. throw BusinessRuntimeException.getInstance("问题内容描述过多");
  44. }
  45. String phone = progressRecord.getPhone();
  46. if (StrUtil.isEmpty(phone) || !ValidatorUtil.isMobile(phone)) {
  47. throw BusinessRuntimeException.getInstance("请输入正确的手机号");
  48. }
  49. String goodsTitle = null;
  50. if (goodsId != null) {
  51. GoodsDon goodsDon = goodsDonMapper.selectById(goodsId);
  52. Assert.notNull(goodsDon, "反馈的平台不存在");
  53. goodsTitle = goodsDon.getTitle();
  54. }
  55. User user = userMapper.selectById(userId);
  56. UserFeedbackRecord userFeedbackRecord = new UserFeedbackRecord();
  57. userFeedbackRecord.setUserId(userId);
  58. userFeedbackRecord.setGoodsId(goodsId);
  59. userFeedbackRecord.setGoodsTitle(goodsTitle);
  60. userFeedbackRecord.setPhone(phone);
  61. userFeedbackRecord.setDescription(content);
  62. userFeedbackRecord.setNickname(user.getNickname());
  63. userFeedbackRecordMapper.insert(userFeedbackRecord);
  64. progressRecord.setFeedbackId(userFeedbackRecord.getId());
  65. progressRecord.setNickname(user.getNickname());
  66. userFeedbackProgressRecordMapper.insert(progressRecord);
  67. }
  68. @Override
  69. public void recommendGoods(UserRecommendGoodsRecord userRecommendGoodsRecord) {
  70. String url = userRecommendGoodsRecord.getUrl();
  71. if (StrUtil.isEmpty(url) || url.length() > 512) {
  72. throw BusinessRuntimeException.getInstance("请输入正确的参考链接地址");
  73. }
  74. String goodsTitle = userRecommendGoodsRecord.getGoodsTitle();
  75. if (StrUtil.isEmpty(goodsTitle) || goodsTitle.length() > 128) {
  76. throw BusinessRuntimeException.getInstance("请填写正确的新品名称");
  77. }
  78. userRecommendGoodsRecordMapper.insert(userRecommendGoodsRecord);
  79. }
  80. @Override
  81. @Transactional(rollbackFor = Throwable.class)
  82. public void userFeedbackMsg(UserFeedbackProgressRecord progressRecord) {
  83. Long feedbackId = progressRecord.getFeedbackId();
  84. Long userId = progressRecord.getUserId();
  85. if (feedbackId == null) {
  86. throw BusinessRuntimeException.getInstance("反馈留言错误");
  87. }
  88. UserFeedbackRecord userFeedbackRecord = userFeedbackRecordMapper.selectOne(Wrappers.lambdaQuery(UserFeedbackRecord.class)
  89. .eq(UserFeedbackRecord::getUserId, userId)
  90. .eq(UserFeedbackRecord::getId, feedbackId));
  91. if (userFeedbackRecord == null) {
  92. throw BusinessRuntimeException.getInstance("反馈记录不存在");
  93. }
  94. String content = progressRecord.getContent();
  95. String img = progressRecord.getImg();
  96. if (StrUtil.isAllEmpty(img, content)) {
  97. throw BusinessRuntimeException.getInstance("请填写留言内容或截图");
  98. }
  99. if (StrUtil.isNotBlank(img) && img.length() > 1024) {
  100. throw BusinessRuntimeException.getInstance("图片过多");
  101. }
  102. if (StrUtil.isNotEmpty(content) && content.length() > 1000) {
  103. throw BusinessRuntimeException.getInstance("留言内容过多");
  104. }
  105. User user = userMapper.selectById(userId);
  106. progressRecord.setNickname(user.getNickname());
  107. userFeedbackProgressRecordMapper.insert(progressRecord);
  108. userFeedbackRecord.setIsNewMessage(true);
  109. userFeedbackRecordMapper.updateById(userFeedbackRecord);
  110. }
  111. }