GoodsDonQaServiceImpl.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.cyksj.service.mange.goods;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.cyksj.common.exception.BusinessRuntimeException;
  8. import com.cyksj.mapper.GoodsDonQaMapper;
  9. import com.cyksj.mapper.GoodsDonQaRelateMapper;
  10. import com.cyksj.model.entity.GoodsDonQa;
  11. import com.cyksj.model.entity.GoodsDonQaRelate;
  12. import com.cyksj.service.mange.GoodsDonQaService;
  13. import lombok.RequiredArgsConstructor;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.util.List;
  17. /**
  18. * 项目名: yhlxj2
  19. * 文件名: GoodsDonQaServiceImpl
  20. * 创建者: JavaZou
  21. * 创建时间:2024/5/24 15:57
  22. */
  23. @Service
  24. @RequiredArgsConstructor
  25. public class GoodsDonQaServiceImpl extends ServiceImpl<GoodsDonQaMapper, GoodsDonQa> implements GoodsDonQaService {
  26. private final GoodsDonQaRelateMapper goodsDonQaRelateMapper;
  27. @Override
  28. @Transactional(rollbackFor = Throwable.class)
  29. public void saveOrdUpdateQa(GoodsDonQa goodsDonQa) {
  30. checkQAParams(goodsDonQa);
  31. Long id = goodsDonQa.getId();
  32. List<Long> goodsIds = goodsDonQa.getGoodsIds();
  33. if (id != null) {
  34. goodsDonQaRelateMapper.delete(Wrappers.lambdaQuery(GoodsDonQaRelate.class).notIn(GoodsDonQaRelate::getGoodsId, goodsIds).eq(GoodsDonQaRelate::getQuestionId, id));
  35. this.updateById(goodsDonQa);
  36. } else {
  37. this.save(goodsDonQa);
  38. id = goodsDonQa.getId();
  39. }
  40. goodsDonQaRelateMapper.batchInsert(id, goodsIds);
  41. }
  42. private void checkQAParams(GoodsDonQa goodsDonQa) {
  43. String problem = goodsDonQa.getProblem();
  44. Integer type = goodsDonQa.getType();
  45. if (type == null || type < 1 || type > 2) {
  46. throw BusinessRuntimeException.getInstance("请选择对应问题类型");
  47. }
  48. if (StrUtil.isEmpty(problem)) {
  49. throw BusinessRuntimeException.getInstance("问题不为空");
  50. }
  51. String url = goodsDonQa.getUrl();
  52. String content = goodsDonQa.getContent();
  53. if (ObjectUtil.isAllEmpty(url, content)) {
  54. throw BusinessRuntimeException.getInstance("请选择对应回答");
  55. }
  56. if (StrUtil.isNotBlank(url)) {
  57. goodsDonQa.setContent(null);
  58. }
  59. if (StrUtil.isNotBlank(content)) {
  60. goodsDonQa.setUrl(null);
  61. }
  62. List<Long> goodsIds = goodsDonQa.getGoodsIds();
  63. if (CollUtil.isEmpty(goodsIds)) {
  64. throw BusinessRuntimeException.getInstance("请选择对应展示平台");
  65. }
  66. }
  67. @Override
  68. public GoodsDonQa getDetailById(Long id) {
  69. GoodsDonQa byId = this.getById(id);
  70. byId.setGoodsIds(goodsDonQaRelateMapper.getQaGoodsByQaId(id));
  71. return byId;
  72. }
  73. }