Selaa lähdekoodia

导出gpt镜像账号

zoujiajian 1 vuosi sitten
vanhempi
sitoutus
1498948c90

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChatgptSession.java

@@ -24,6 +24,8 @@ public class ChatgptSession extends BaseEntity {
      */
     private String password;
 
+    private String emailPassword;
+
     /**
      * 状态 1有效 1无效
      */
@@ -61,6 +63,16 @@ public class ChatgptSession extends BaseEntity {
     @TableField("officialSession")
     private String officialSession;
 
+    /**
+     * 双重验证密钥
+     */
+    private String apiSecret;
+
+    /**
+     * 备用安全码
+     */
+    private String verifyCodes;
+
     /**
      * 备注
      */

+ 125 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelGptMirrorAccountData.java

@@ -0,0 +1,125 @@
+package com.cyksj.model.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: ExcelGptMirrorAccountData
+ * 创建者: JavaZou
+ * 创建时间:2024/9/27 17:18
+ */
+@Getter
+@Setter
+@SearchBean(tables = "chatgpt_session cs",
+		where = "cs.isCar = 1")
+@ExcelIgnoreUnannotated
+public class ExcelGptMirrorAccountData {
+
+	@DbField("cs.id")
+	@ExcelProperty("id")
+	private Long id;
+
+	/**
+	 * 账号
+	 */
+	@DbField("cs.email")
+	@ExcelProperty("账号")
+	private String email;
+
+	@DbField("cs.password")
+	@ExcelProperty("账号密码")
+	private String password;
+
+	@DbField("cs.email_password")
+	@ExcelProperty("邮箱密码")
+	private String emailPassword;
+
+	@DbField("cs.carID")
+	@ExcelProperty("车队ID")
+	private String carId;
+
+	/**
+	 * 状态 1有效 1无效
+	 */
+	@DbField("cs.status")
+	private Integer status;
+
+	/**
+	 * 状态 1有效 1无效
+	 */
+	@DbField("if(cs.status=1,'有效','无效')")
+	@ExcelProperty("车队状态")
+	private String statusStr;
+
+	/**
+	 * 是否为plus会员
+	 */
+	@DbField("isPlus")
+	private Integer isPlus;
+
+	/**
+	 * 是否为plus会员
+	 */
+	@DbField("if(isPlus,'是','否')")
+	@ExcelProperty("是否为plus会员")
+	private String isPlusStr;
+
+	@DbField("isCar")
+	private Boolean isCar;
+
+	/**
+	 * 车名称
+	 */
+	@DbField("cs.car_name")
+	@ExcelProperty("车队名称")
+	private String carName;
+
+	/**
+	 * 官方session
+	 */
+	@DbField("cs.officialSession")
+	@ExcelProperty("官方session")
+	private String officialSession;
+
+	@DbIgnore
+	@ExcelProperty("过期时间")
+	private Date expiryTime;
+
+	/**
+	 * 双重验证密钥
+	 */
+	@DbField("cs.api_secret")
+	@ExcelProperty("双重验证密钥")
+	private String apiSecret;
+
+	/**
+	 * 备用安全码
+	 */
+	@DbField("cs.verify_codes")
+	@ExcelProperty("备用安全码")
+	private String verifyCodes;
+
+	/**
+	 * 分数
+	 */
+	@DbField("cs.score")
+	private Double score;
+
+	/**
+	 * 备注
+	 */
+	@DbField("cs.remark")
+	@ExcelProperty("备注")
+	private String remark;
+
+	@DbField("cs.created_time")
+	private Date createdTime;
+}

+ 15 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChatgptCarSessionView.java

@@ -30,6 +30,9 @@ public class ChatgptCarSessionView {
 	@DbField("cs.password")
 	private String password;
 
+	@DbField("cs.email_password")
+	private String emailPassword;
+
 	@DbField("cs.carID")
 	private String carId;
 
@@ -61,6 +64,18 @@ public class ChatgptCarSessionView {
 	@DbField("cs.officialSession")
 	private String officialSession;
 
+	/**
+	 * 双重验证密钥
+	 */
+	@DbField("cs.api_secret")
+	private String apiSecret;
+
+	/**
+	 * 备用安全码
+	 */
+	@DbField("cs.verify_codes")
+	private String verifyCodes;
+
 	/**
 	 * 分数
 	 */

+ 28 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsGptCarController.java

@@ -1,18 +1,23 @@
 package com.cyksj.web.controller.manage.account;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.ChatgptSessionMapper;
 import com.cyksj.model.entity.ChatgptSession;
+import com.cyksj.model.excel.ExcelGptMirrorAccountData;
 import com.cyksj.model.views.ChatgptCarSessionView;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.chatgpt.ChatGptAccountService;
+import com.cyksj.web.util.EasyExcelUtils;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.util.MapUtils;
@@ -21,6 +26,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 import java.util.Optional;
 
 /** admin/镜像车队账号管理
@@ -153,4 +160,25 @@ public class CmsGptCarController {
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 导出gpt镜像账号
+	 */
+	@GetMapping("/export/mirror/account")
+	public void export(HttpServletResponse response) {
+		List<ExcelGptMirrorAccountData> dataList = beanSearcher.searchAll(ExcelGptMirrorAccountData.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		dataList.forEach(data -> {
+			String officialSession = data.getOfficialSession();
+			if (StrUtil.isNotEmpty(officialSession)) {
+				try {
+					JSONObject body = Jsons.parseObject(officialSession, JSONObject.class);
+					JSONObject accountCheckInfo = body.getJSONObject("accountCheckInfo");
+					String expiresAt = accountCheckInfo.getStr("expires_at");
+					data.setExpiryTime(DateUtil.parse(expiresAt));
+				} catch (Exception e) {
+				}
+			}
+		});
+		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelGptMirrorAccountData.class, dataList, "gpt镜像账号", "gpt镜像账号", ExcelTypeEnum.XLS, null);
+	}
 }