zoujiajian 2 жил өмнө
parent
commit
a7d9ce84f2

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpWelcomeTemplateMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.corp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.CorpWelcomeTemplate;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpWelcomeTemplateMapper
+ * 创建者: JavaZou
+ * 创建时间:2023/12/5 18:21
+ */
+public interface CorpWelcomeTemplateMapper extends BaseMapper<CorpWelcomeTemplate> {
+}

+ 67 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpWelcomeTemplate.java

@@ -0,0 +1,67 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.cyksj.model.request.corp.Attachments;
+import com.ejlchina.searcher.bean.DbIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpWelcomeTemplate
+ * 创建者: JavaZou
+ * 创建时间:2023/12/5 18:19
+ */
+@Getter
+@Setter
+public class CorpWelcomeTemplate extends BaseEntity {
+	@NotEmpty(message = "模板名不为空")
+	private String name;
+
+	@NotNull
+	private Integer type;
+
+	/**
+	 * 群发文本内容
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private String text;
+
+	@TableField(exist = false)
+	@DbIgnore
+	private List<Attachments> attachments;
+
+	/**
+	 * 附件字符串
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private String attachmentsStr;
+
+	/**
+	 * 优惠券id
+	 */
+	private Long couponId;
+
+	private Boolean deleted;
+
+	@Getter
+	public enum Type {
+		natural("自然流量"), activeCode("渠道活码"), follow("加分链接");
+
+		String desc;
+
+		Type(String desc) {
+			this.desc = desc;
+		}
+
+		public static Boolean checkType(Integer type) {
+			return Arrays.stream(Type.values()).filter(t -> t.ordinal() == type.intValue()).findAny().isPresent();
+		}
+	}
+}

+ 14 - 0
netflix-service/src/main/java/com/cyksj/service/corp/CorpWelcomeTemplateService.java

@@ -0,0 +1,14 @@
+package com.cyksj.service.corp;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.cyksj.model.entity.CorpWelcomeTemplate;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpWelcomeTemplateService
+ * 创建者: JavaZou
+ * 创建时间:2023/12/5 18:21
+ */
+public interface CorpWelcomeTemplateService extends IService<CorpWelcomeTemplate> {
+	void saveOrUpdateTemplate(CorpWelcomeTemplate template) throws Exception;
+}

+ 44 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpWelcomeTemplateServiceImpl.java

@@ -0,0 +1,44 @@
+package com.cyksj.service.corp.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
+import com.cyksj.mapper.corp.CorpWelcomeTemplateMapper;
+import com.cyksj.model.entity.CorpWelcomeTemplate;
+import com.cyksj.model.request.corp.Attachments;
+import com.cyksj.service.corp.CorpWelcomeTemplateService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpWelcomeTemplateServiceImpl
+ * 创建者: JavaZou
+ * 创建时间:2023/12/5 18:22
+ */
+@Service
+@RequiredArgsConstructor
+public class CorpWelcomeTemplateServiceImpl extends ServiceImpl<CorpWelcomeTemplateMapper, CorpWelcomeTemplate> implements CorpWelcomeTemplateService {
+	@Override
+	public void saveOrUpdateTemplate(CorpWelcomeTemplate template) throws Exception {
+		handleParams(template);
+		this.saveOrUpdate(template);
+	}
+
+
+	public void handleParams(CorpWelcomeTemplate template) throws Exception {
+		List<Attachments> attachments = template.getAttachments();
+		if (CollUtil.isNotEmpty(attachments)) {
+			String attachmentsStr = Jsons.toJson(attachments);
+			template.setAttachmentsStr(attachmentsStr);
+		} else {
+			template.setAttachmentsStr(null);
+		}
+		if (!CorpWelcomeTemplate.Type.checkType(template.getType())) {
+			throw BusinessRuntimeException.getInstance("请选择正确的类型");
+		}
+	}
+}

+ 100 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpWelcomeTemplateController.java

@@ -0,0 +1,100 @@
+package com.cyksj.web.controller.manage.corp;
+
+import cn.hutool.core.util.StrUtil;
+import com.cyksj.common.util.Jsons;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.CorpWelcomeTemplate;
+import com.cyksj.model.request.corp.Attachments;
+import com.cyksj.service.corp.CorpWelcomeTemplateService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * admin/企业微信/欢迎语模板
+ * 项目名: yhlxj
+ * 文件名: CorpWelcomeTemplateController
+ * 创建者: JavaZou
+ * 创建时间:2023/12/5 18:23
+ */
+@RestController
+@RequestMapping("/manage/corp/welcome")
+@RequiredArgsConstructor
+public class CorpWelcomeTemplateController {
+
+	private final CorpWelcomeTemplateService corpWelcomeTemplateService;
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	/**
+	 * 新增欢迎语 模板
+	 */
+	@PostMapping("/post")
+	public Result<String> post(@RequestBody @Validated CorpWelcomeTemplate template) throws Exception {
+		corpWelcomeTemplateService.saveOrUpdateTemplate(template);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 删除欢迎语 模板
+	 */
+	@DeleteMapping("/delete/{id}")
+	public Result<String> deleteById(@PathVariable Long id) {
+		CorpWelcomeTemplate byId = corpWelcomeTemplateService.getById(id);
+		if (byId != null) {
+			byId.setDeleted(false);
+			corpWelcomeTemplateService.updateById(byId);
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 修改欢迎语 模板
+	 */
+	@PutMapping("/update")
+	public Result<String> update(@RequestBody CorpWelcomeTemplate template) throws Exception {
+		corpWelcomeTemplateService.saveOrUpdateTemplate(template);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 欢迎语模板列表
+	 */
+	@GetMapping("/get")
+	public Result<SearchResult<CorpWelcomeTemplate>> get() {
+		SearchResult<CorpWelcomeTemplate> search = beanSearcher.search(CorpWelcomeTemplate.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(CorpWelcomeTemplate::getDeleted, 1)
+				.build());
+		search.getDataList().forEach(e -> {
+			String attachmentsStr = e.getAttachmentsStr();
+			if (StrUtil.isNotEmpty(attachmentsStr)) {
+				try {
+					e.setAttachments(Jsons.parseList(attachmentsStr, Attachments.class));
+				} catch (Exception ex) {
+				}
+			}
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 不分页 欢迎语模板
+	 */
+	@GetMapping("/get/all")
+	public Result<List<CorpWelcomeTemplate>> getAll() {
+		List<CorpWelcomeTemplate> list = beanSearcher.searchAll(CorpWelcomeTemplate.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(CorpWelcomeTemplate::getDeleted, 1)
+				.onlySelect(CorpWelcomeTemplate::getId, CorpWelcomeTemplate::getType, CorpWelcomeTemplate::getName).build());
+
+		return GatewayResponse.SUCCESS.newBuilder().toResult(list);
+	}
+}