Helius
2021-05-14 29af83696fe9d9f50c49cbf2ac1e16a3327a78ea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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<String, Object> 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);
    }
}