From 2922e51a7a8e657a8467c818ae16700e41ddac77 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 10 五月 2022 19:45:58 +0800
Subject: [PATCH] bug修复

---
 app/src/main/java/com/yeshi/makemoney/app/controller/admin/money/ExtractAdminController.java |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 158 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/controller/admin/money/ExtractAdminController.java b/app/src/main/java/com/yeshi/makemoney/app/controller/admin/money/ExtractAdminController.java
index 3f05bc1..3573d01 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/controller/admin/money/ExtractAdminController.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/controller/admin/money/ExtractAdminController.java
@@ -1,12 +1,18 @@
 package com.yeshi.makemoney.app.controller.admin.money;
 
 import com.google.gson.*;
+import com.ks.lib.common.exception.ParamsException;
 import com.yeshi.makemoney.app.aop.AdminApiFilter;
 import com.yeshi.makemoney.app.dto.money.ExtractConfig;
 import com.yeshi.makemoney.app.entity.config.SystemConfig;
 import com.yeshi.makemoney.app.entity.config.SystemConfigKey;
 import com.yeshi.makemoney.app.entity.money.ExtractPayType;
+import com.yeshi.makemoney.app.exception.money.ExtractException;
+import com.yeshi.makemoney.app.exception.money.UserMoneyBalanceException;
+import com.yeshi.makemoney.app.service.inter.AdminUserService;
 import com.yeshi.makemoney.app.service.inter.config.SystemConfigService;
+import com.yeshi.makemoney.app.service.inter.user.UserInfoService;
+import com.yeshi.makemoney.app.service.manager.VerifyCodeManager;
 import com.yeshi.makemoney.app.vo.AcceptAdminData;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -30,16 +36,31 @@
 import com.yeshi.makemoney.app.entity.money.Extract;
 import com.yeshi.makemoney.app.service.inter.money.ExtractService;
 import com.yeshi.makemoney.app.service.query.money.ExtractQuery;
+import org.yeshi.utils.exception.MailSendException;
+import org.yeshi.utils.mail.EmailApiUtil;
+import org.yeshi.utils.mail.EmailInfo;
 
 @Controller
 @RequestMapping("admin/api/money/extract")
 public class ExtractAdminController {
+
+    private final String SESSION_KEY_EXTRACT_EMAIL_VERIFIED = "admin-do-extract";
+
 
     @Resource
     private ExtractService extractService;
 
     @Resource
     private SystemConfigService systemConfigService;
+
+    @Resource
+    private AdminUserService adminUserService;
+
+    @Resource
+    private VerifyCodeManager verifyCodeManager;
+
+    @Resource
+    private UserInfoService userInfoService;
 
 
     @ResponseBody
@@ -71,14 +92,13 @@
 
     @ResponseBody
     @RequestMapping("get")
-    public String get(Long id, HttpSession session, String callback) {
+    public String get(Long id) {
         Extract entity = extractService.get(id);
         if (entity != null) {
-            return JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(entity));
-
+            entity.setUser(userInfoService.get(entity.getUser().getId()));
+            return JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(entity));
         } else {
-            return JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("ID涓嶅瓨鍦�"));
-
+            return JsonUtil.loadFalseResult("ID涓嶅瓨鍦�");
         }
     }
 
@@ -129,4 +149,137 @@
     }
 
 
+    /**
+     * @return java.lang.String
+     * @author hxh
+     * @description 鍙戦�佹彁鐜扮殑閭楠岃瘉鐮�
+     * @date 14:14 2022/5/9
+     * @param: extractConfig
+     * @param: acceptAdminData
+     **/
+    @ResponseBody
+    @RequestMapping("sendExtractEmail")
+    public String sendExtractEmail(AcceptAdminData acceptAdminData) {
+        if (acceptAdminData.getAdminUser() == null) {
+            return JsonUtil.loadFalseResult("绠$悊鍛樹俊鎭负绌�");
+        }
+
+        if (StringUtil.isNullOrEmpty(acceptAdminData.getAdminUser().getEmail())) {
+            return JsonUtil.loadFalseResult("绠$悊鍛橀偖浠跺湴鍧�涓虹┖");
+        }
+
+        String emailSender = systemConfigService.getValueCache(acceptAdminData.getSystem(), SystemConfigKey.emailSender);
+
+        if (StringUtil.isNullOrEmpty(emailSender)) {
+            return JsonUtil.loadFalseResult("绯荤粺灏氭湭閰嶇疆閭欢鍙戦�佽处鍙蜂俊鎭�");
+        }
+        String[] sts = emailSender.split(",");
+        if (sts.length != 2) {
+            return JsonUtil.loadFalseResult("閭欢鍙戦�佽处鍙蜂俊鎭牸寮忔湁璇�");
+        }
+
+        String code = StringUtil.getVerifyCode();
+        EmailInfo emailInfo = new EmailInfo();
+        emailInfo.setFromEmail(sts[0]);
+        emailInfo.setFormEmailPwd(sts[1]);
+        emailInfo.setApp(systemConfigService.getValueCache(acceptAdminData.getSystem(), SystemConfigKey.androidPushAppCode));
+        emailInfo.setTitle("鎻愮幇瀹℃牳楠岃瘉鐮侊細" + code);
+        emailInfo.setContent("鎻愮幇瀹℃牳楠岃瘉鐮侊細" + code + ",5鍒嗛挓鍐呮湁鏁堬紝璇峰敖蹇獙璇併��");
+        emailInfo.setToEmail(acceptAdminData.getAdminUser().getEmail());
+        try {
+            EmailApiUtil.sendEmail(emailInfo);
+            verifyCodeManager.sendEmailCodeSuccess(emailInfo.getToEmail(), code);
+            return JsonUtil.loadTrueResult("");
+        } catch (MailSendException e) {
+            return JsonUtil.loadFalseResult(e.getMessage());
+        }
+    }
+
+
+    @ResponseBody
+    @RequestMapping("verifyExtractEmail")
+    public String verifyExtractEmail(String code, AcceptAdminData acceptAdminData, HttpSession session) {
+        if (acceptAdminData.getAdminUser() == null) {
+            return JsonUtil.loadFalseResult("绠$悊鍛樹俊鎭负绌�");
+        }
+
+        if (StringUtil.isNullOrEmpty(acceptAdminData.getAdminUser().getEmail())) {
+            return JsonUtil.loadFalseResult("绠$悊鍛橀偖浠跺湴鍧�涓虹┖");
+        }
+
+        boolean isRight = verifyCodeManager.isEMailCodeRight(acceptAdminData.getAdminUser().getEmail(), code);
+        if (isRight) {
+            session.setAttribute(SESSION_KEY_EXTRACT_EMAIL_VERIFIED, true);
+            return JsonUtil.loadTrueResult("");
+        } else {
+            return JsonUtil.loadFalseResult("楠岃瘉鐮侀敊璇�");
+        }
+    }
+
+
+    /**
+     * @return java.lang.String
+     * @author hxh
+     * @description 閫氳繃鎻愮幇
+     * @date 15:04 2022/5/9
+     * @param: id
+     * @param: acceptAdminData
+     **/
+
+    @ResponseBody
+    @RequestMapping("passExtract")
+    public String passExtract(Long id, AcceptAdminData acceptAdminData, HttpSession session) {
+
+        if (!isVerifiedEmailCode(session)) {
+            return JsonUtil.loadFalseResult(50002, "閭鏈獙璇�");
+        }
+
+        try {
+            extractService.passExtract(id, acceptAdminData.getAdminUser().getAccount());
+            return JsonUtil.loadTrueResult("");
+        } catch (ExtractException e) {
+            e.printStackTrace();
+            return JsonUtil.loadFalseResult(e.getMessage());
+        }
+    }
+
+    @ResponseBody
+    @RequestMapping("rejectExtract")
+    public String rejectExtract(Long id, String reason, AcceptAdminData acceptAdminData, HttpSession session) {
+        if (!isVerifiedEmailCode(session)) {
+            return JsonUtil.loadFalseResult(50002, "閭鏈獙璇�");
+        }
+        try {
+            extractService.rejectExtract(id, reason, acceptAdminData.getAdminUser().getAccount());
+            return JsonUtil.loadTrueResult("");
+        } catch (ExtractException e) {
+            e.printStackTrace();
+            return JsonUtil.loadFalseResult(e.getMessage());
+        } catch (UserMoneyBalanceException e) {
+            e.printStackTrace();
+            return JsonUtil.loadFalseResult(e.getMessage());
+        } catch (ParamsException e) {
+            e.printStackTrace();
+            return JsonUtil.loadFalseResult(e.getMessage());
+        }
+
+    }
+
+
+    /**
+     * @return boolean
+     * @author hxh
+     * @description 鏄惁宸茬粡楠岃瘉浜嗛偖浠堕獙璇佺爜
+     * @date 15:02 2022/5/9
+     * @param: session
+     **/
+    private boolean isVerifiedEmailCode(HttpSession session) {
+        Boolean verified = (Boolean) session.getAttribute(SESSION_KEY_EXTRACT_EMAIL_VERIFIED);
+        if (verified != null && verified) {
+            return true;
+        }
+        return false;
+    }
+
+
 }

--
Gitblit v1.8.0