From 49b96dc04a24b93185c09de4b61d9539a5e77990 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 29 Oct 2020 10:51:42 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/common/system/controller/CommonController.java | 79 +++++++++++++++++++++++++++++++-------- 1 files changed, 63 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java index f34d016..01a4c3c 100644 --- a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java +++ b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java @@ -2,14 +2,19 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.xcong.excoin.common.LoginUserUtils; 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.OssUtils; -import com.xcong.excoin.utils.RedisUtils; -import com.xcong.excoin.utils.SmsUtils; +import com.xcong.excoin.modules.member.entity.MemberDeviceInfo; +import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.service.MemberDeviceInfoService; +import com.xcong.excoin.utils.*; +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; @@ -19,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @@ -45,6 +51,9 @@ @Resource private AliOssProperties aliOssProperties; + @Resource + private MemberDeviceInfoService memberDeviceInfoService; + @ApiOperation(value = "获取验证码接口", notes = "获取验证码通用接口") @GetMapping(value = "/verifyCode") public Result verifyCode(@ApiParam(name = "account", value = "手机号或邮箱", required = true) @RequestParam(value = "account") String account, @@ -53,32 +62,32 @@ Integer code = (int) ((Math.random() * 9 + 1) * 100000); if (StrUtil.isNotBlank(redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account))) { - return Result.fail("验证码已发送,请勿重复发"); + return Result.fail(MessageSourceUtils.getString("common_verify_code_exist")); } // 发送手机验证码 if (AppContants.ACCOUNT_TYPE_MOBILE.equals(type)) { - Map<String, Object> result = SmsUtils.sendVerifyCode(account, code); - if (SUCCESS.equals(result.get("resultstatus"))) { + boolean result = Sms106Send.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("success", map); + 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("success"); + return Result.ok(MessageSourceUtils.getString("member_service_0010")); } else { - return Result.fail("发送失败"); + return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } } else { log.info("未定义账号类型"); - return Result.fail("fail"); + return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } - return Result.fail("fail"); + return Result.fail(MessageSourceUtils.getString("result_fail_msg")); } @ApiOperation(value = "验证验证码是否正确", notes = "验证验证码是否正确") @@ -87,21 +96,59 @@ @ApiParam(name = "code", value = "验证码", required = true) @RequestParam("code") String code) { boolean flag = commonservice.verifyCode(account, code); if (flag) { - return Result.ok("success"); + return Result.ok(MessageSourceUtils.getString("result_success_msg")); } - return Result.fail("验证码错误"); + return Result.fail(MessageSourceUtils.getString("common_verify_code")); } @ApiOperation(value = "文件上次接口", notes = "文件上传") - @GetMapping(value = "/uploadFile") + @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("success", url); + return Result.ok(MessageSourceUtils.getString("result_success_msg"), url); } - return Result.fail("上传失败"); + return Result.fail(MessageSourceUtils.getString("uploadFile_controller_0001")); + } + + @ApiOperation(value = "设备信息", notes = "获取设备信息") + @GetMapping(value = "/userInfo") + public Result userInfo(HttpServletRequest request) { + String device = request.getHeader("device"); + + if (StrUtil.isBlank(device)) { + return Result.fail("device not found"); + } + MemberEntity member = LoginUserUtils.getAppLoginUser(); + QueryWrapper<MemberDeviceInfo> query = new QueryWrapper<>(); + query.eq("device_code", device); + Long memberId = null; + if (member != null) { + memberId = member.getId(); + query.eq("member_id", memberId); + } + MemberDeviceInfo deviceInfo = memberDeviceInfoService.getOne(query); + + String userAgent = HttpUtils.getUserAgent(request); + String ip = HttpUtils.getRealIp(request); + if (deviceInfo == null) { + deviceInfo = new MemberDeviceInfo(); + deviceInfo.setMemberId(memberId); + deviceInfo.setUserAgent(userAgent); + deviceInfo.setDeviceCode(device); + deviceInfo.setIp(ip); + memberDeviceInfoService.save(deviceInfo); + } else { + deviceInfo.setMemberId(memberId); + deviceInfo.setUserAgent(userAgent); + deviceInfo.setDeviceCode(device); + deviceInfo.setIp(ip); + memberDeviceInfoService.updateById(deviceInfo); + } + + return Result.ok("success"); } } -- Gitblit v1.9.1