| | |
| | | package com.yami.trading.api.controller; |
| | | |
| | | import com.mysql.cj.util.StringUtils; |
| | | import com.yami.trading.bean.log.domain.CodeLog; |
| | | import com.yami.trading.common.domain.Result; |
| | | import com.yami.trading.common.manager.email.EmailMessage; |
| | | import com.yami.trading.common.util.IPHelper; |
| | | import com.yami.trading.service.IdentifyingCodeService; |
| | | import com.yami.trading.service.IdentifyingCodeTimeWindowService; |
| | | import com.yami.trading.service.InternalEmailSenderService; |
| | | import com.yami.trading.service.system.CodeLogService; |
| | | import com.yami.trading.service.syspara.SysparaService; |
| | | import io.swagger.annotations.Api; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.Date; |
| | | import java.util.Random; |
| | | |
| | | @RequestMapping("api/idcode") |
| | | @RestController |
| | | @Api(tags = "idcode") |
| | | public class ApiIdentifyingCodeController { |
| | | |
| | | private static final Logger logger = LoggerFactory.getLogger(ApiIdentifyingCodeController.class); |
| | | |
| | | @Autowired |
| | | private IdentifyingCodeService identifyingCodeService; |
| | | |
| | | @Autowired |
| | | private InternalEmailSenderService internalEmailSenderService; |
| | | |
| | | @Autowired |
| | | private IdentifyingCodeTimeWindowService identifyingCodeTimeWindowService; |
| | | |
| | | @Autowired |
| | | private SysparaService sysparaService; |
| | | |
| | | @Autowired |
| | | private CodeLogService codeLogService; |
| | | |
| | | @RequestMapping("execute") |
| | | public Result execute(@RequestParam String target) { |
| | | identifyingCodeService.send(target, IPHelper.getIpAddr()); |
| | | public Result<?> execute(@RequestParam String target) { |
| | | String ip = IPHelper.getIpAddr(); |
| | | |
| | | if (target != null && target.indexOf("@") != -1) { |
| | | String send_code_text = this.sysparaService.find("send_code_text").getSvalue(); |
| | | if (StringUtils.isNullOrEmpty(send_code_text)) { |
| | | logger.error("send_code_text 未配置"); |
| | | return Result.succeed(); |
| | | } |
| | | |
| | | boolean send_code_always_new = this.sysparaService.find("send_code_always_new").getBoolean(); |
| | | Object object = this.identifyingCodeTimeWindowService.getAuthCode(target); |
| | | String code; |
| | | if (object == null || send_code_always_new) { |
| | | Random random = new Random(); |
| | | code = String.valueOf(random.nextInt(999999) % 900000 + 100000); |
| | | } else { |
| | | code = String.valueOf(object); |
| | | } |
| | | |
| | | EmailMessage emailMessage = new EmailMessage(); |
| | | emailMessage.setTomail(target); |
| | | emailMessage.setContent(code); |
| | | internalEmailSenderService.send(emailMessage); |
| | | |
| | | this.identifyingCodeTimeWindowService.putAuthCode(target, code); |
| | | logger.info(MessageFormat.format("email--target:{0},code:{1},ip:{2}", target, code, ip)); |
| | | CodeLog codeLog = new CodeLog(); |
| | | codeLog.setTarget(target); |
| | | codeLog.setLog("发送地址:" + target + ",验证码:" + code + ",ip地址:" + ip); |
| | | codeLog.setCreateTime(new Date()); |
| | | codeLogService.save(codeLog); |
| | | } else { |
| | | identifyingCodeService.send(target, ip); |
| | | } |
| | | return Result.succeed(null); |
| | | } |
| | | |