From e006f942d04addaf903c61d7c57dee737a52de40 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 01 八月 2024 11:34:02 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia --- 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