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