zoujiajian 3 anni fa
parent
commit
0459622665

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/SysEmailMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.SysEmail;
+
+/*
+ *项目名: netflix
+ *文件名: SysEmailMapper
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:32
+ */
+public interface SysEmailMapper extends BaseMapper<SysEmail> {
+}

+ 46 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/SysEmail.java

@@ -0,0 +1,46 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: SysEmail
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:30
+ */
+@Getter
+@Setter
+public class SysEmail {
+	/**
+	 * 邮箱
+	 */
+	private String email;
+
+	/**
+	 * 密码
+	 */
+	private String password;
+
+	/**
+	 * 邮箱密钥
+	 */
+	private String secret;
+
+	/**
+	 * 类型
+	 */
+	private Type type;
+
+
+	@Getter
+	public enum Type{
+		Midjourney("Midjourney"),
+		;
+		String desc;
+
+		Type(String desc) {
+			this.desc = desc;
+		}
+	}
+}

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMidJourneyData.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: ExcelMidJourneyData
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:26
+ */
+@Getter
+@Setter
+public class ExcelMidJourneyData {
+	@ExcelProperty(value = "邮箱")
+	private String email;
+
+	@ExcelProperty(value = "密码")
+	private String password;
+
+	@ExcelProperty(value = "邮箱密钥")
+	private String secret;
+}

+ 13 - 0
netflix-service/src/main/java/com/cyksj/service/mange/SysEmailService.java

@@ -0,0 +1,13 @@
+package com.cyksj.service.mange;
+
+import com.cyksj.model.entity.SysEmail;
+
+/*
+ *项目名: netflix
+ *文件名: SysEmailService
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:51
+ */
+public interface SysEmailService {
+	void verifyEmail(SysEmail sysEmail) throws Exception;
+}

+ 32 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/SysEmailServiceImpl.java

@@ -0,0 +1,32 @@
+package com.cyksj.service.mange.impl;
+
+import com.cyksj.common.util.J11HttpC;
+import com.cyksj.model.entity.SysEmail;
+import com.cyksj.service.mange.SysEmailService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.net.http.HttpResponse;
+
+/*
+ *项目名: netflix
+ *文件名: SysEmailServiceImpl
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:52
+ */
+@Service
+@RequiredArgsConstructor
+public class SysEmailServiceImpl implements SysEmailService {
+
+	@Override
+	public void verifyEmail(SysEmail sysEmail) throws Exception {
+		HttpResponse<String> send = J11HttpC.custom()
+				.url(String.format("yinhelx.com/api/imap_yhcz.php?yhm=%s&mm=%s=143&ip=127.0.0.1&mi_yao=%s",
+						sysEmail.getEmail(),
+						sysEmail.getPassword(),
+						sysEmail.getSecret()))
+				.ofGet()
+				.send(HttpResponse.BodyHandlers.ofString());
+		String body = send.body();
+	}
+}

+ 98 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/MidJourneyEmailController.java

@@ -0,0 +1,98 @@
+package com.cyksj.web.controller.manage;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.manage.SysEmailMapper;
+import com.cyksj.model.entity.SysEmail;
+import com.cyksj.model.excel.ExcelMidJourneyData;
+import com.cyksj.service.mange.SysEmailService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+
+/*
+ *项目名: netflix
+ *文件名: MidJourneyEmailController
+ *创建者: JavaZou
+ *创建时间:2023/4/3 15:08
+ */
+@RestController
+@RequestMapping("/manage/midjourney")
+@RequiredArgsConstructor
+public class MidJourneyEmailController {
+	private final SysEmailMapper sysEmailMapper;
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	private final SysEmailService sysEmailService;
+
+	private final static String SECRET = "q1w2e3";
+
+	/**
+	 * 导入Midjourney 邮件
+	 */
+	@PostMapping("/import/email")
+	public void readMidJourneyEmail(MultipartFile file) throws Exception {
+		EasyExcel.read(file.getInputStream(), ExcelMidJourneyData.class, new AnalysisEventListener<ExcelMidJourneyData>() {
+					@Override
+					public void invoke(ExcelMidJourneyData data, AnalysisContext analysisContext) {
+						try {
+							SysEmail sysEmail = new SysEmail();
+							BeanUtil.copyProperties(data, sysEmail);
+							if (StrUtil.isEmpty(sysEmail.getSecret())) {
+								sysEmail.setSecret(SECRET);
+							}
+							sysEmail.setType(SysEmail.Type.Midjourney);
+							sysEmailMapper.insert(sysEmail);
+						} catch (DuplicateKeyException e) {
+
+						}
+					}
+
+					@Override
+					public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+					}
+				}
+		).sheet().doRead();
+	}
+
+	/**
+	 * midJourney邮件列表
+	 */
+	@GetMapping("/get/email")
+	public Result<SearchResult<SysEmail>> getEmail() {
+		SearchResult<SysEmail> search = beanSearcher.search(SysEmail.class, MapUtils.builder().field(SysEmail::getType, SysEmail.Type.Midjourney.name()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 用户登录midjourney账号 验证
+	 */
+	@GetMapping("/verify/email")
+	public Result<String> verifyEmail() {
+		SysEmail sysEmail = beanSearcher.searchFirst(SysEmail.class, MapUtils.builder().field(SysEmail::getType, SysEmail.Type.Midjourney.name()).orderBy("rand()").build());
+
+		if (sysEmail == null) {
+			throw BusinessRuntimeException.getInstance("未配置Midjourney邮箱");
+		}
+		sysEmailService.verifyEmail(sysEmail);
+	}
+}

+ 5 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/statistics/StatisticsDataController.java

@@ -505,4 +505,9 @@ public class StatisticsDataController {
 
 		return GatewayResponse.SUCCESS.newBuilder().toResult(newUserStatisticsView);
 	}
+
+	/**
+	 * 多公众号数据统计
+	 */
+
 }