From c8b32b8bca79a116cfab70eb8c389907b664c9ca Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 23 四月 2025 10:43:14 +0800
Subject: [PATCH] 提交
---
server/src/main/java/com/doumee/api/web/WebMemberController.java | 93 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 73 insertions(+), 20 deletions(-)
diff --git a/server/src/main/java/com/doumee/api/web/WebMemberController.java b/server/src/main/java/com/doumee/api/web/WebMemberController.java
index ffd107b..920c993 100644
--- a/server/src/main/java/com/doumee/api/web/WebMemberController.java
+++ b/server/src/main/java/com/doumee/api/web/WebMemberController.java
@@ -3,18 +3,26 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.Jwt.JwtProperties;
import com.doumee.config.Jwt.JwtTokenUtil;
+import com.doumee.config.annotation.EncryptionReq;
+import com.doumee.config.annotation.EncryptionResp;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.WebQwSingatureDto;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.vo.WebQwSingatureVO;
import com.doumee.dao.web.dto.LoginH5DTO;
import com.doumee.dao.web.dto.UpdEmailDTO;
import com.doumee.service.business.MemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -34,19 +42,20 @@
@RestController
@Api(tags ="web绔敤鎴风浉鍏虫帴鍙�")
@RequestMapping("/web/member")
+@Slf4j
public class WebMemberController {
@Resource
private JwtTokenUtil jwtTokenUtil;
-
@Resource
private MemberService memberService;
@Resource
private SystemDictDataBiz systemDictDataBiz;
-
@PreventRepeat(limit = 10, lockTime = 10000)
@ApiOperation("H5涓氬姟鐧诲綍")
@PostMapping("/loginH5")
+ @EncryptionReq
+ @EncryptionResp
public ApiResponse<Member> loginH5 (@RequestBody LoginH5DTO dto) {
try {
//鎷緾ODE鎹wid锛屽厛鏌ヤ笅鏈郴缁熸槸鍚﹀瓨鍦紝瀛樺湪鐩存帴杩斿洖member锛屽惁鍒欑敤qwid鏌ヨ浼佷笟鐢ㄦ埛鏁版嵁锛屾彃鍏ユ暟鎹簱锛坢ember)
@@ -65,6 +74,8 @@
@LoginRequired
@ApiOperation("鏇存柊鐢ㄦ埛閭淇℃伅")
@PostMapping("/upateInfo")
+ @EncryptionReq
+ @EncryptionResp
public ApiResponse upateInfo (@RequestBody UpdEmailDTO updEmailDTO ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token) {
try {
Member user = jwtTokenUtil.getUserInfoByToken(token);
@@ -103,28 +114,70 @@
@ApiOperation("鑾峰彇浼佷笟寰俊JS绛惧悕")
@PostMapping("/getQwSignature")
@ResponseBody
- public ApiResponse<Object> getQwSignature(@RequestBody Map<String,String> url) {
- String jsapiTicket = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_JS_API_TICKET).getCode();
- String noncestr = UUID.randomUUID().toString();
- Long timestamp = System.currentTimeMillis() / 1000;
-
- String jsapiTicketStr = jsapiTicket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url=" + url;
+ @EncryptionReq
+ @EncryptionResp
+ public ApiResponse<WebQwSingatureVO> getQwSignature(@RequestBody WebQwSingatureDto param) {
try {
- MessageDigest instance = MessageDigest.getInstance("SHA-1");
- instance.update(jsapiTicketStr.getBytes());
- byte[] digest = instance.digest();
- BigInteger bigInteger = new BigInteger(1, digest);
- String string = bigInteger.toString();
- Map<String, Object> result = new HashMap<>();
- result.put("noncestr", noncestr);
- result.put("signature", string);
- result.put("timestamp", timestamp);
- result.put("url", url);
-// result.put("ticket", jsapiTicket);
+ String jsapiTicket = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_JS_API_TICKET).getCode();
+ String noncestr = UUID.randomUUID().toString();
+ Long timestamp = System.currentTimeMillis() / 1000;
+ String jsapiTicketStr = "jsapi_ticket="+jsapiTicket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url=" + param.getUrl();
+// MessageDigest instance = MessageDigest.getInstance("SHA-1");
+// instance.update(jsapiTicketStr.getBytes());
+// byte[] digest = instance.digest();
+// BigInteger bigInteger = new BigInteger(1, digest);
+// String string = bigInteger.toString();
+ WebQwSingatureVO result = new WebQwSingatureVO();
+ result.setNoncestr( noncestr);
+ result.setSignature( getSHA1(jsapiTicketStr));
+ result.setTimestamp( timestamp);
+ result.setUrl( param.getUrl());
+ result.setTicket(jsapiTicket);
return ApiResponse.success( result);
+ } catch ( Exception e) {
+ e.printStackTrace();
+ log.error("鑾峰彇绛惧悕澶辫触"+e.getMessage());
+ }
+
+ return ApiResponse.failed("鑾峰彇绛惧悕澶辫触");
+ }
+
+
+ @LoginRequired
+ @ApiOperation("鏌ヨ鍙鎶勯�佷汉鍒嗛〉")
+ @PostMapping("/getCopySendUserPage")
+ @EncryptionReq
+ @EncryptionResp
+ public ApiResponse<PageData<Member>> getCopySendUserPage (@RequestBody PageWrap<Member> pageWrap) {
+ pageWrap.getModel().setIsSendCopy(Constants.ONE);
+ return ApiResponse.success(memberService.findPage(pageWrap));
+ }
+
+
+
+ public static String getSHA1(String input) {
+ try {
+ // 鑾峰彇MessageDigest绫荤殑瀹炰緥锛屾寚瀹氫娇鐢⊿HA-1绠楁硶
+ MessageDigest md = MessageDigest.getInstance("SHA-1");
+
+ // 浣跨敤鎸囧畾鐨勫瓧鑺傛洿鏂版憳瑕�
+ md.update(input.getBytes());
+
+ // 鑾峰彇瀵嗘枃锛堝搱甯屽�硷級
+ byte[] digest = md.digest();
+
+ // 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓�
+ StringBuilder hexString = new StringBuilder();
+ for (byte b : digest) {
+ String hex = Integer.toHexString(0xff & b);
+ if (hex.length() == 1) hexString.append('0');
+ hexString.append(hex);
+ }
+
+ return hexString.toString();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
- return ApiResponse.failed( "鑾峰彇绛惧悕澶辫触");
}
+
}
\ No newline at end of file
--
Gitblit v1.9.3