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 | 94 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 92 insertions(+), 2 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 24cca6a..920c993 100644
--- a/server/src/main/java/com/doumee/api/web/WebMemberController.java
+++ b/server/src/main/java/com/doumee/api/web/WebMemberController.java
@@ -1,24 +1,40 @@
package com.doumee.api.web;
+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.*;
import org.springframework.web.server.ServerWebExchange;
import javax.annotation.Resource;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
/**
* JWT鑾峰彇浠ょ墝鍜屽埛鏂颁护鐗屾帴鍙�
@@ -26,17 +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)
@@ -55,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);
@@ -90,4 +111,73 @@
return ApiResponse.failed( "鐧诲綍宸插け鏁�");
}
+ @ApiOperation("鑾峰彇浼佷笟寰俊JS绛惧悕")
+ @PostMapping("/getQwSignature")
+ @ResponseBody
+ @EncryptionReq
+ @EncryptionResp
+ public ApiResponse<WebQwSingatureVO> getQwSignature(@RequestBody WebQwSingatureDto param) {
+ try {
+ 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);
+ }
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3