From 7306b057318057cc5cccfab8f7be117669327c8b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 01 八月 2024 09:16:19 +0800
Subject: [PATCH] aa

---
 server/admin/src/main/java/com/doumee/api/business/PushController.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/api/business/PushController.java b/server/admin/src/main/java/com/doumee/api/business/PushController.java
index ee9ea49..4ff9a10 100644
--- a/server/admin/src/main/java/com/doumee/api/business/PushController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/PushController.java
@@ -2,33 +2,48 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.biz.zbom.ZbomIAMService;
 import com.doumee.biz.zbom.model.IamUpdateRoleModel;
 import com.doumee.biz.zbom.model.IamUpdateShopModel;
 import com.doumee.biz.zbom.model.IamUpdateUserModel;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.web.reqeust.GenerateQRCodeRequest;
+import com.doumee.service.business.UsersService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
 import java.util.List;
 
 /**
  * @author 姹熻箘韫�
  * @date 2024/07/04 14:40
  */
-@Api(tags = "瀵瑰鎻愪緵鎺ュ彛")
+@Api(tags = "瀵瑰銆怚AM銆丳AD绔�戞帹閫佹彁渚涙帴鍙�")
 @RestController
 @RequestMapping("/push")
 public class PushController extends BaseController {
     @Autowired
     private ZbomIAMService zbomIAMService;
-    @ApiOperation("缁勭粐淇℃伅鏇存柊鎺ㄩ��")
+    @Autowired
+    private UsersService usersService;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @ApiOperation("銆怚AM銆戠粍缁囦俊鎭洿鏂版帹閫�")
     @PostMapping("/iam/updateShopInfo")
     public ApiResponse<String> updateShopInfo(@RequestHeader(name = "token") String token,
                                       @RequestHeader(name = "uuid") String uuid ,
@@ -52,7 +67,7 @@
         }
         return r;
     }
-    @ApiOperation("浜哄憳璐﹀彿淇℃伅鏇存柊鎺ㄩ��")
+    @ApiOperation("銆怚AM銆戜汉鍛樿处鍙蜂俊鎭洿鏂版帹閫�")
     @PostMapping("/iam/updateUserInfo")
     public ApiResponse<String> updateUserInfo(@RequestHeader(name = "token") String token,
                                       @RequestHeader(name = "uuid") String uuid ,
@@ -76,7 +91,7 @@
         }
         return r;
     }
-    @ApiOperation("瑙掕壊淇℃伅鏇存柊鎺ㄩ��")
+    @ApiOperation("銆怚AM銆戣鑹蹭俊鎭洿鏂版帹閫�")
     @PostMapping("/iam/updateRoleInfo")
     public ApiResponse<String> updateRoleInfo(@RequestHeader(name = "token") String token,
                                       @RequestHeader(name = "uuid") String uuid ,
@@ -101,4 +116,36 @@
         return r;
     }
 
+    @PreventRepeat(lockTime = 2000)
+    @ApiOperation(value = "鐢熸垚娑堣垂鑰匔绔皬绋嬪簭鐮侊紙鍙甫鍙傛暟锛�", notes = "鐢熸垚娑堣垂鑰匔绔皬绋嬪簭鐮侊紝鐢熸垚涓氬姟绫诲瀷锛�0:浜у搧;1:妗堜緥;2:瀹炴櫙涓夌瀵瑰簲鍐呭璇︽儏椤电殑鍒嗕韩鐮侊紝绛惧悕浣跨敤鍙傛暟APPKEY锛岃鑱旂郴绯荤粺绠$悊鍛樿幏鍙�")
+    @PostMapping("/pad/getQrCode")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "sign", value = "绛惧悕锛堜娇鐢╰imestamp+appkey杩涜md5鍔犲瘑锛�", required = true),
+            @ApiImplicitParam(paramType = "header", dataType = "Long", name = "timestamp", value = "鏃堕棿鎴筹紙褰撳墠鏃堕棿姣锛�2灏忔椂鍐呮湁鏁堬級", required = true),
+    })
+    public void getQrCode(@RequestParam(value = "sign")String sign,
+                          @RequestParam(value = "timestamp")Long timestamp,
+                          @RequestBody GenerateQRCodeRequest generateQRCodeRequest, HttpServletResponse response) {
+        if(StringUtils.isBlank(sign) || timestamp == null){
+            throw  new BusinessException(com.doumee.core.constants.ResponseStatus.BAD_REQUEST);
+        }
+        String interfaceKey = systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_PAD_INTERFACE_KEY).getCode();
+        //鍒ゆ柇鏃堕棿鎴虫槸鍚﹁秴杩囦袱灏忔椂
+        if(System.currentTimeMillis()-timestamp > 2 * 60 * 3600 * 1000){
+            throw new BusinessException(com.doumee.core.constants.ResponseStatus.NOT_ALLOWED.getCode(),"token宸插け鏁�!");
+        }
+        String token = DigestUtils.md5Hex(timestamp+interfaceKey);
+        if(!token.equals(sign)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"token宸插け鏁�!");
+        }
+        try{
+            response.setHeader("Cache-Control", "no-store, no-cache");
+            response.setContentType("image/jpeg");
+            InputStream inputStream = usersService.getQrCode(generateQRCodeRequest);
+            ImageIO.write(ImageIO.read(inputStream),"png",response.getOutputStream());
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
 }

--
Gitblit v1.9.3