diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java index e5aeddb..e00775b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java @@ -35,6 +35,20 @@ public class RedisService { redisCache.setCacheObject(key,list); } + public void setVerifyCode(String code) { + String key = RedisKeys.VERIFY_CODE + code; + redisCache.setCacheObject(key, code); + redisCache.expire(key, 5, TimeUnit.MINUTES); + } + + public void deleteVerifyCode(String code) { + redisCache.deleteObject(RedisKeys.VERIFY_CODE + code); + } + + public String getVerifyCode(String code) { + return redisCache.getCacheObject(RedisKeys.VERIFY_CODE + code); + } + public String getWechatToken() { return redisCache.getCacheObject(RedisKeys.WECHAT_ACCESS_TOKEN); } @@ -43,12 +57,12 @@ public class RedisService { redisCache.setCacheObject(RedisKeys.WECHAT_ACCESS_TOKEN, token, 100, TimeUnit.MINUTES); } - public void setQrCode(String code) { - redisCache.setCacheObject(RedisKeys.WECHAT_QR_CODE, code, 30, TimeUnit.DAYS); + public void setQrCode(String code, String scene) { + redisCache.setCacheObject(RedisKeys.WECHAT_QR_CODE + scene, code, 30, TimeUnit.DAYS); } - public String getQrCode() { - return redisCache.getCacheObject(RedisKeys.WECHAT_QR_CODE); + public String getQrCode(String scene) { + return redisCache.getCacheObject(RedisKeys.WECHAT_QR_CODE + scene); } interface RedisKeys { @@ -57,6 +71,7 @@ public class RedisService { String WECHAT_ACCESS_TOKEN = "WECHAT_ACCESS_TOKEN_"; String WECHAT_QR_CODE = "WECHAT_QR_CODE_"; + String VERIFY_CODE = "VERIFY_CODE:"; } /** diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java index b918a29..c32a8a6 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java @@ -32,7 +32,6 @@ import java.util.List; */ @Api(description ="会员信息接口列表") @RestController -@RequestMapping("/ums/member") public class MemberController extends BaseController { @Autowired private MemberService service; @@ -41,14 +40,14 @@ public class MemberController extends BaseController { @Autowired private WechatAuthService wechatAuthService; - @GetMapping("/wechat/code") - public AjaxResult getWechatCode() { - return AjaxResult.successData(wechatAuthService.getQRCode()); + @RequestMapping(path ={"/ums/member/wechat/code","/h5/member/wechat/code"},method=RequestMethod.GET) + public AjaxResult getWechatCode(@RequestParam(required = false) String scene) { + return AjaxResult.successData(wechatAuthService.getQRCode(scene)); } @ApiOperation("查询会员信息列表") @PreAuthorize("@ss.hasPermi('ums:member:list')") - @PostMapping("/list") + @PostMapping("/ums/member/list") public ResponseEntity> list(@RequestBody MemberQuery query, Pageable page) { List list = service.selectList(query, page); return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); @@ -57,7 +56,7 @@ public class MemberController extends BaseController { @ApiOperation("导出会员信息列表") @PreAuthorize("@ss.hasPermi('ums:member:export')") @Log(title = "会员信息", businessType = BusinessType.EXPORT) - @GetMapping("/export") + @GetMapping("/ums/member/export") public ResponseEntity export(MemberQuery query) { List list = service.selectList(query, null); ExcelUtil util = new ExcelUtil<>(MemberVO.class); @@ -66,7 +65,7 @@ public class MemberController extends BaseController { @ApiOperation("获取会员信息详细信息") @PreAuthorize("@ss.hasPermi('ums:member:query')") - @GetMapping(value = "/{id}") + @GetMapping(value = "/ums/member/{id}") public ResponseEntity getInfo(@PathVariable("id") Long id) { return ResponseEntity.ok(service.selectById(id)); } @@ -74,7 +73,7 @@ public class MemberController extends BaseController { @ApiOperation("新增会员信息") @PreAuthorize("@ss.hasPermi('ums:member:add')") @Log(title = "会员信息", businessType = BusinessType.INSERT) - @PostMapping + @PostMapping("/ums/member") public ResponseEntity add(@RequestBody Member member) { return ResponseEntity.ok(service.insert(member)); } @@ -82,7 +81,7 @@ public class MemberController extends BaseController { @ApiOperation("修改会员信息") @PreAuthorize("@ss.hasPermi('ums:member:edit')") @Log(title = "会员信息", businessType = BusinessType.UPDATE) - @PutMapping + @PutMapping("/ums/member") public ResponseEntity edit(@RequestBody Member member) { return ResponseEntity.ok(service.update(member)); } @@ -90,7 +89,7 @@ public class MemberController extends BaseController { @ApiOperation("修改会员备注信息") @PreAuthorize("@ss.hasPermi('ums:member:edit')") @Log(title = "会员备注信息", businessType = BusinessType.UPDATE) - @PostMapping("/mark/update") + @PostMapping("/ums/member/mark/update") public ResponseEntity editMark(@RequestBody Member member) { return ResponseEntity.ok(service.updateMark(member)); } @@ -98,26 +97,26 @@ public class MemberController extends BaseController { @ApiOperation("删除会员信息") @PreAuthorize("@ss.hasPermi('ums:member:remove')") @Log(title = "会员信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{id}") + @DeleteMapping("/ums/member/{id}") public ResponseEntity remove(@PathVariable Long id) { return ResponseEntity.ok(service.deleteById(id)); } @ApiOperation(("修改会员账户状态")) @Log(title = "会员信息", businessType = BusinessType.UPDATE) - @PostMapping("/status/change") + @PostMapping("/ums/member/status/change") public ResponseEntity changeStatus(@RequestBody ChangeMemberStatusForm form){ return ResponseEntity.ok(service.changeStatus(form)); } @ApiOperation("会员手机号解密") - @GetMapping("/phone/decrypt/{phoneEncrypted}") + @GetMapping("/ums/member/phone/decrypt/{phoneEncrypted}") public ResponseEntity getPhoneDecrypted(@PathVariable String phoneEncrypted){ return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted)); } @ApiOperation("查看会员统计数据") - @GetMapping("/view/statistics/{memberId}") + @GetMapping("/ums/member/view/statistics/{memberId}") public ResponseEntity viewStatistics(@PathVariable Long memberId){ return ResponseEntity.ok(service.viewStatistics(memberId)); } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PlatformVerifyController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PlatformVerifyController.java new file mode 100644 index 0000000..c4325de --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PlatformVerifyController.java @@ -0,0 +1,37 @@ +package com.cyl.manager.ums.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class PlatformVerifyController { + + @Autowired + private RedisService redisService; + + /** + * h5 生成验证码 + * @param code + * @return + */ + @GetMapping("/h5/verified/code/generate") + public AjaxResult createCode(String code){ + redisService.setVerifyCode(code); + return AjaxResult.success(true); + } + + + @GetMapping("/no-auth/verified/code") + public AjaxResult verifyCode(String code){ + String verifyCode = redisService.getVerifyCode(code); + if (StringUtils.isEmpty(verifyCode)) { + return AjaxResult.success(false); + } + redisService.deleteVerifyCode(code); + return AjaxResult.success(true); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java index 53a7aa1..0331517 100644 --- a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java @@ -3,7 +3,6 @@ package com.cyl.wechat; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.cyl.h5.config.SecurityUtil; import com.cyl.wechat.response.WechatUserAuth; import com.ruoyi.common.core.redis.RedisService; import com.ruoyi.common.utils.StringUtils; @@ -61,9 +60,9 @@ public class WechatAuthService { * * @return 二维码字符串 */ - public String getQRCode() { - String base64Str = redisService.getQrCode(); - if (StringUtils.isNotEmpty(base64Str)) { + public String getQRCode(String scene) { + String base64Str = redisService.getQrCode(scene); + if (!StringUtils.isEmpty(base64Str)) { return base64Str; } String accessToken = getAccessToken(); @@ -73,7 +72,7 @@ public class WechatAuthService { } String postUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; JSONObject jsonObject = new JSONObject(); - jsonObject.put("scene", "1"); //可以用作传参,必填,内容随意 + jsonObject.put("scene", StringUtils.isEmpty(scene) ? "1" : scene); //可以用作传参,必填,内容随意 jsonObject.put("page", "pages/index/index"); //扫码后跳转页面,选填 jsonObject.put("check_path", false); //是否检查跳转页面存不存在 jsonObject.put("env_version", "release"); //版本 @@ -85,7 +84,7 @@ public class WechatAuthService { log.error("get wechat code error",e); } base64Str = Base64.getEncoder().encodeToString(string); - redisService.setQrCode(base64Str); + redisService.setQrCode(base64Str, scene); log.info("wechat code:{}",base64Str); return base64Str; } @@ -95,7 +94,7 @@ public class WechatAuthService { String token = redisService.getWechatToken(); log.info("redis token:{}",token); - if (StringUtils.isNotEmpty(token)) { + if (!StringUtils.isEmpty(token)) { return token; } Map params = new HashMap<>();