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.dto.Base64UploadDto; import com.xcong.excoin.common.system.service.CommonService; import com.xcong.excoin.configurations.properties.AliOssProperties; 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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; 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 = Sms106Send.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")); } }