|
|
@@ -0,0 +1,88 @@
|
|
|
+package com.qdport.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import com.qdport.entity.PolicyMessage;
|
|
|
+import com.qdport.query.PolicyMessageQuery;
|
|
|
+import com.qdport.vo.PolicyMessageVO;
|
|
|
+import com.qdport.mapper.PolicyMessageMapper;
|
|
|
+import com.qdport.service.PolicyMessageService;
|
|
|
+import com.qdport.wrapper.PolicyMessageWrapper;
|
|
|
+import com.qdport.core.tool.utils.Func;
|
|
|
+import com.qdport.core.tool.utils.BeanUtil;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 留言管理
|
|
|
+ *
|
|
|
+ * @author yuheng
|
|
|
+ * @since 1.0.0 2024-10-28
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@AllArgsConstructor
|
|
|
+public class PolicyMessageServiceImpl extends ServiceImpl<PolicyMessageMapper, PolicyMessage> implements PolicyMessageService {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<PolicyMessageVO> page(PolicyMessageQuery query) {
|
|
|
+ IPage<PolicyMessage> page = new Page<>(query.getPage(), query.getSize());
|
|
|
+ page = baseMapper.selectPage(page, getWrapper(query));
|
|
|
+ return PolicyMessageWrapper.build().pageVO(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ private LambdaQueryWrapper<PolicyMessage> getWrapper(PolicyMessageQuery query) {
|
|
|
+ LambdaQueryWrapper<PolicyMessage> wrapper = Wrappers.lambdaQuery();
|
|
|
+ return wrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void save(PolicyMessageVO vo) {
|
|
|
+ PolicyMessage entity = BeanUtil.copy(vo, PolicyMessage.class);
|
|
|
+ vo.setCreateTime(new Date());
|
|
|
+ baseMapper.insert(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void update(PolicyMessageVO vo) {
|
|
|
+ PolicyMessage entity = BeanUtil.copy(vo, PolicyMessage.class);
|
|
|
+
|
|
|
+ updateById(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void delete(List<String> idList) {
|
|
|
+ for (String id : idList) {
|
|
|
+ PolicyMessage message = baseMapper.selectById(id);
|
|
|
+ removeById(message);
|
|
|
+
|
|
|
+ removeMessage(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void removeMessage(PolicyMessage message){
|
|
|
+ QueryWrapper<PolicyMessage> queryWrapper = new QueryWrapper<>();
|
|
|
+ while (true) {
|
|
|
+ queryWrapper.eq("REPLY_ID", message.getId());
|
|
|
+ queryWrapper.eq("REF_TYPE", message.getRefType());
|
|
|
+ queryWrapper.eq("REF_ID", message.getRefId());
|
|
|
+ List<PolicyMessage> messageList = baseMapper.selectList(queryWrapper);
|
|
|
+ if (messageList.isEmpty()) {
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ for (PolicyMessage model : messageList) {
|
|
|
+ removeMessage(model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|