MaterialFeedbackServiceImpl.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.backendsys.modules.material.service.impl;
  2. import com.backendsys.exception.CustException;
  3. import com.backendsys.modules.material.dao.MaterialCategoryDao;
  4. import com.backendsys.modules.material.dao.MaterialFeedbackDao;
  5. import com.backendsys.modules.material.dao.MaterialLoraDao;
  6. import com.backendsys.modules.material.entity.MaterialCategory;
  7. import com.backendsys.modules.material.entity.MaterialFeedback;
  8. import com.backendsys.modules.material.entity.MaterialLora;
  9. import com.backendsys.modules.material.service.MaterialFeedbackService;
  10. import com.backendsys.utils.response.PageEntity;
  11. import com.backendsys.utils.response.PageInfoResult;
  12. import com.backendsys.utils.v2.PageUtils;
  13. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.List;
  18. import java.util.Map;
  19. @Service
  20. public class MaterialFeedbackServiceImpl implements MaterialFeedbackService {
  21. @Autowired
  22. private MaterialLoraDao materialLoraDao;
  23. @Autowired
  24. private MaterialCategoryDao materialCategoryDao;
  25. @Autowired
  26. private MaterialFeedbackDao materialFeedbackDao;
  27. /**
  28. * 获取素材需求反馈列表
  29. */
  30. @Override
  31. public PageEntity selectMaterialFeedbackList(MaterialFeedback materialFeedback) {
  32. PageUtils.startPage(); // 分页
  33. List<Map<String, Object>> list = materialFeedbackDao.selectMaterialFeedbackList(materialFeedback);
  34. return new PageInfoResult(list).toEntity();
  35. }
  36. /**
  37. * 发送素材需求反馈
  38. */
  39. @Override
  40. @Transactional(rollbackFor = Exception.class)
  41. public Map<String, Object> sendMaterialFeedback(MaterialFeedback materialFeedback) {
  42. // [DB] 判断素材风格是否存在
  43. Long lora_id = materialFeedback.getLora_id();
  44. LambdaQueryWrapper<MaterialLora> wrapperLora = new LambdaQueryWrapper<>();
  45. wrapperLora.eq(MaterialLora::getLora_id, lora_id);
  46. Boolean is_lora_exist = materialLoraDao.exists(wrapperLora);
  47. if (!is_lora_exist) throw new CustException("素材风格不存在");
  48. // [DB] 判断素材分类是否存在
  49. Long category_id = materialFeedback.getCategory_id();
  50. LambdaQueryWrapper<MaterialCategory> wrapperCategory = new LambdaQueryWrapper<>();
  51. wrapperCategory.eq(MaterialCategory::getCategory_id, category_id);
  52. Boolean is_category_exist = materialCategoryDao.exists(wrapperCategory);
  53. if (!is_category_exist) throw new CustException("素材分类不存在");
  54. // [DB] 新增 素材需求反馈
  55. materialFeedbackDao.insert(materialFeedback);
  56. return Map.of("feedback_id", materialFeedback.getId());
  57. }
  58. }