From 16332a341801f80d27830d2ea4e683b4ab21167c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 21 四月 2025 18:28:00 +0800
Subject: [PATCH] 工单业务

---
 server/src/main/java/com/doumee/api/web/WebMemberController.java |  130 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 123 insertions(+), 7 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 57df171..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,22 +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鑾峰彇浠ょ墝鍜屽埛鏂颁护鐗屾帴鍙�
@@ -24,18 +42,46 @@
 @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")
-    public ApiResponse<String> loginH5 (@Validated @RequestBody LoginH5DTO dto, ServerWebExchange serverWebExchange) {
+    @EncryptionReq
+    @EncryptionResp
+    public ApiResponse<Member> loginH5 (@RequestBody LoginH5DTO dto) {
         try {
-            ServerHttpRequest request = serverWebExchange.getRequest();
-            Member user =  new Member();
+            //鎷緾ODE鎹wid锛屽厛鏌ヤ笅鏈郴缁熸槸鍚﹀瓨鍦紝瀛樺湪鐩存帴杩斿洖member锛屽惁鍒欑敤qwid鏌ヨ浼佷笟鐢ㄦ埛鏁版嵁锛屾彃鍏ユ暟鎹簱锛坢ember)
+            Member user =  memberService.getUserInfo(dto);
             String token = jwtTokenUtil.generateToken(user);
-            return ApiResponse.success(token);
+            user.setToken(token);
+            return ApiResponse.success(user);
+        }catch (BusinessException e){
+            return ApiResponse.failed(e.getCode(),e.getMessage());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
+        }
+    }
+
+    @LoginRequired
+    @ApiOperation("鏇存柊鐢ㄦ埛閭淇℃伅")
+    @PostMapping("/upateInfo")
+    @EncryptionReq
+    @EncryptionResp
+    public ApiResponse upateInfo (@RequestBody UpdEmailDTO updEmailDTO ,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token) {
+        try {
+            Member user =  jwtTokenUtil.getUserInfoByToken(token);
+            updEmailDTO.setUserId(user.getId());
+            memberService.updEmail(updEmailDTO);
+            return ApiResponse.success("鎿嶄綔鎴愬姛");
         }catch (BusinessException e){
             return ApiResponse.failed(e.getCode(),e.getMessage());
         }catch (Exception e){
@@ -46,13 +92,14 @@
     /**
      * 鍒锋柊JWT浠ょ墝,鐢ㄦ棫鐨勪护鐗屾崲鏂扮殑浠ょ墝
      */
+    @LoginRequired
     @GetMapping("/getMemberInfo")
     @ApiOperation("鑾峰彇褰撳墠鐧婚檰鐢ㄦ埛")
-    @LoginRequired
     public ApiResponse<Member> getMemberInfo(@RequestHeader(JwtTokenUtil.HEADER_KEY) String token){
         try {
-            Member user =jwtTokenUtil.getUserInfoByToken(token);
-            jwtTokenUtil.refreshToken(token);//姣忔鏇存柊token鏈夋晥鏈�
+            Member user = jwtTokenUtil.getUserInfoByToken(token);
+            user = memberService.checkUserValid(user);
+            user.setToken(jwtTokenUtil.refreshToken(token));//姣忔鏇存柊token鏈夋晥鏈�
            if(user !=null){
                return ApiResponse.success( user);
            }
@@ -64,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 + "&timestamp=" + 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