package com.xcong.excoin.common.system.controller; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.xcong.excoin.common.contants.AppContants; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity; import com.xcong.excoin.common.system.dto.Base64UploadDto; import com.xcong.excoin.common.system.service.CommonService; import com.xcong.excoin.configurations.properties.AliOssProperties; import com.xcong.excoin.modules.blackchain.service.TrxUsdtUpdateService; import com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao; import com.xcong.excoin.utils.MessageSourceUtils; import com.xcong.excoin.utils.OssUtils; import com.xcong.excoin.utils.RedisUtils; import com.xcong.excoin.utils.SmsUtils; import com.xcong.excoin.utils.mail.Sms106Send; import com.xcong.excoin.utils.mail.SmsSend; import com.xcong.excoin.utils.mail.SubMailSend; import com.xcong.excoin.utils.mail.ZzSmsSend; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; import java.util.HashMap; import java.util.Map; /** * 公共请求类 * * @author wzy * @date 2020-05-18 **/ @Slf4j @Api(value = "公共请求类", tags = "公共请求类") @RestController @RequestMapping(value = "/common") public class CommonController { private static final String SUCCESS = "Success"; @Resource private RedisUtils redisUtils; @Resource private CommonService commonservice; @Resource private AliOssProperties aliOssProperties; @ApiOperation(value = "获取验证码接口", notes = "获取验证码通用接口") @GetMapping(value = "/verifyCode") public Result verifyCode(@ApiParam(name = "account", value = "手机号或邮箱", required = true) @RequestParam(value = "account") String account, @ApiParam(name = "type", value = "类型1-手机号2-邮箱", required = true) @RequestParam("type") String type) { log.info("#账号:{}, 类型:{}#", account, type); Integer code = (int) ((Math.random() * 9 + 1) * 100000); if (StrUtil.isNotBlank(redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account))) { return Result.fail(MessageSourceUtils.getString("common_verify_code_exist")); } // 发送手机验证码 if (AppContants.ACCOUNT_TYPE_MOBILE.equals(type)) { boolean result = ZzSmsSend.sendVerifyCode(account, code.toString(), 2); if (result) { Map map = new HashMap<>(); boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120); map.put("code", flag); return Result.ok(MessageSourceUtils.getString("member_service_0010"), map); } // 发送邮件验证码 } else if (AppContants.ACCOUNT_TYPE_EMAIL.equals(type)) { boolean flag = SubMailSend.sendMail(account, code.toString()); if (flag) { redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120); return Result.ok(MessageSourceUtils.getString("member_service_0010")); } else { return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } } else { log.info("未定义账号类型"); return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } @ApiOperation(value = "验证验证码是否正确", notes = "验证验证码是否正确") @GetMapping(value = "/checkVerify") public Result checkVerify(@ApiParam(name = "account", value = "账号", required = true) @RequestParam("account") String account, @ApiParam(name = "code", value = "验证码", required = true) @RequestParam("code") String code) { boolean flag = commonservice.verifyCode(account, code); if (flag) { return Result.ok(MessageSourceUtils.getString("result_success_msg")); } return Result.fail(MessageSourceUtils.getString("common_verify_code")); } @ApiOperation(value = "文件上次接口", notes = "文件上传") @PostMapping(value = "/uploadFileBase64") public Result uploadFileBase64(@RequestBody @Validated Base64UploadDto uploadDto) { String imageName = "uploadeFile/image/" + System.currentTimeMillis() + IdUtil.simpleUUID() + AppContants.UPLOAD_IMAGE_SUFFIX; boolean flag = OssUtils.uploadFileWithBase64(uploadDto.base64Str, imageName); if (flag) { String url = aliOssProperties.getBucketName() + "/" + imageName; return Result.ok(MessageSourceUtils.getString("result_success_msg"), url); } return Result.fail(MessageSourceUtils.getString("uploadFile_controller_0001")); } @Autowired private TrxUsdtUpdateService trxUsdtUpdateService; @ApiOperation(value = "trc20测试") @Transactional(rollbackFor = Exception.class) @GetMapping(value = "/getTrc20Test") public Result getTrc20Test() { long start = System.currentTimeMillis(); System.out.println(start); long getnowblock = trxUsdtUpdateService.getnowblock(); System.out.println(System.currentTimeMillis()); Object trc20BlockNum = redisUtils.get("USDT_TRC20_BLOCK_NUM"); TrxUsdtUpdateService.getblockbynum(BigInteger.valueOf(Long.parseLong(trc20BlockNum.toString()))); long end = System.currentTimeMillis(); System.out.println(end); BigDecimal.ONE.divide(BigDecimal.ZERO); return Result.ok(end - start); } @Autowired private SysExceptionDetailDao sysExceptionDetailDao; @GetMapping(value = "/getExceptionMsg") public Result getExceptionMsg(@RequestParam(value = "id") Long id) { SysExceptionDetailEntity sysExceptionDetailEntity = sysExceptionDetailDao.selectById(id); return Result.ok(sysExceptionDetailEntity); } }