Ver código fonte

Merge remote-tracking branch 'origin/master'

TRX 1 ano atrás
pai
commit
adfa2b8dd6

+ 16 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/qrCode/QRCodeSceneModel.java

@@ -0,0 +1,16 @@
+package com.zhongshu.card.client.model.qrCode;
+
+import lombok.Data;
+import org.springframework.stereotype.Indexed;
+
+@Data
+public class QRCodeSceneModel {
+
+    private String sceneId;
+
+    private String scene;
+
+    private Long createTime;
+
+    private Long updateTime;
+}

+ 20 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/type/DictionaryPermission.java

@@ -0,0 +1,20 @@
+package com.zhongshu.card.client.type;
+
+import lombok.Getter;
+import org.junit.jupiter.api.Disabled;
+
+public enum DictionaryPermission {
+
+    add("新增"),
+//    update("编辑"),
+    delete("删除"),
+    disable("禁用"),
+    ;
+
+    @Getter
+    private String remark;
+
+    DictionaryPermission(String remark) {
+        this.remark = remark;
+    }
+}

+ 7 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/WeChatController.java

@@ -9,10 +9,7 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("wechat")
@@ -28,4 +25,10 @@ public class WeChatController {
     public void unlimitedQRCode(@RequestBody UnlimitedQRCodeParam param, HttpServletResponse response) {
         weChatService.UnlimitedQRCode(param, response);
     }
+
+    @Operation(summary = "获取小程序二维码scene", description = "获取小程序二维码")
+    @RequestMapping(value = "getScene", method = {RequestMethod.GET})
+    public ResultContent getScene(@RequestParam("sceneId") String sceneId){
+        return weChatService.getScene(sceneId);
+    }
 }

+ 9 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/qrCode/QRCodeSceneDao.java

@@ -0,0 +1,9 @@
+package com.zhongshu.card.server.core.dao.qrCode;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.domain.qrCode.QRCodeScene;
+
+public interface QRCodeSceneDao extends MongoDao<QRCodeScene> {
+
+    QRCodeScene findTopBySceneId(String sceneId);
+}

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dataConfig/DictionaryInitConfig.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.server.core.dataConfig;
 
+import com.zhongshu.card.client.type.DictionaryPermission;
 import com.zhongshu.card.client.type.DictionaryType;
 import com.zhongshu.card.server.core.domain.dictionary.Dictionary;
 import lombok.AllArgsConstructor;
@@ -35,6 +36,8 @@ public class DictionaryInitConfig {
 
         private Integer sort;
 
+        private List<DictionaryPermission> permission;
+
         private List<Dictionary> item;
 
     }

+ 5 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/dictionary/Dictionary.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.domain.dictionary;
 
 import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import com.zhongshu.card.client.type.DictionaryPermission;
 import com.zhongshu.card.client.type.DictionaryType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -14,6 +15,7 @@ import org.springframework.data.mongodb.core.index.Indexed;
 import org.springframework.data.mongodb.core.mapping.Document;
 import org.springframework.stereotype.Controller;
 
+import java.util.List;
 import java.util.Map;
 
 @Data
@@ -49,4 +51,7 @@ public class Dictionary extends SuperEntity {
 
     @Indexed
     private Map<String, Object> meta;
+
+    @Indexed
+    private List<DictionaryPermission> permission;
 }

+ 5 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/dictionary/DictionaryItem.java

@@ -2,6 +2,7 @@ package com.zhongshu.card.server.core.domain.dictionary;
 
 
 import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import com.zhongshu.card.client.type.DictionaryPermission;
 import com.zhongshu.card.client.type.DictionaryType;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,6 +13,7 @@ import org.springframework.data.mongodb.core.index.Indexed;
 import org.springframework.data.mongodb.core.mapping.DBRef;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.util.List;
 import java.util.Map;
 
 @Data
@@ -56,4 +58,7 @@ public class DictionaryItem extends SuperEntity {
     @Indexed
     private Map<String, Object> meta;
 
+    @Indexed
+    private List<DictionaryPermission> permission;
+
 }

+ 16 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/qrCode/QRCodeScene.java

@@ -0,0 +1,16 @@
+package com.zhongshu.card.server.core.domain.qrCode;
+
+import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+@Document
+@Data
+public class QRCodeScene extends SuperEntity {
+
+    @Indexed(unique = true)
+    private String sceneId;
+
+    private String scene;
+}

+ 25 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/wxQRCode/WeChatService.java

@@ -11,16 +11,22 @@ import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultState;
 import com.zhongshu.card.client.model.pay.UnionApplySignParam;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoModel;
+import com.zhongshu.card.client.model.qrCode.QRCodeSceneModel;
 import com.zhongshu.card.client.model.wechat.AccessTokenVo;
 import com.zhongshu.card.client.model.wechat.UnlimitedQRCodeParam;
 import com.zhongshu.card.server.core.controller.projectAbout.ProjectWeChatInfoController;
+import com.zhongshu.card.server.core.dao.qrCode.QRCodeSceneDao;
+import com.zhongshu.card.server.core.domain.qrCode.QRCodeScene;
 import com.zhongshu.card.server.core.service.base.RedisService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
+import com.zhongshu.card.server.core.util.CommonUtil;
 import com.zhongshu.card.server.core.util.wx.WechatCUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.Cleanup;
 import lombok.SneakyThrows;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -34,10 +40,10 @@ import java.util.Objects;
 public class WeChatService {
 
     @Autowired
-    WechatCUtil wechatCUtil;
+    RedisService redisService;
 
     @Autowired
-    RedisService redisService;
+    QRCodeSceneDao qrCodeSceneDao;
 
     @Autowired
     ProjectWeChatInfoService projectWeChatInfoService;
@@ -65,13 +71,29 @@ public class WeChatService {
 
         String accessToken = getAccessToken(weChatInfoModel.getAppId(), weChatInfoModel.getAppSecret());
 
-        byte[] unlimitedQRCodeToByte = getUnlimitedQRCodeToByte(param.getScene(), param.getPage(), accessToken);
+        String sceneId = RandomStringUtils.randomAlphabetic(16);
+
+        QRCodeScene qrCodeScene = new QRCodeScene();
+        qrCodeScene.setSceneId(sceneId);
+        qrCodeScene.setScene(param.getScene());
+        qrCodeSceneDao.save(qrCodeScene);
+
+        byte[] unlimitedQRCodeToByte = getUnlimitedQRCodeToByte(sceneId, param.getPage(), accessToken);
         response.addHeader("Content-Type","image/jpeg");
         @Cleanup OutputStream outputStream = response.getOutputStream();
         outputStream.write(unlimitedQRCodeToByte);
         outputStream.flush();
     }
 
+    public ResultContent getScene(String sceneId){
+        QRCodeScene qrCodeScene = qrCodeSceneDao.findTopBySceneId(sceneId);
+        QRCodeSceneModel qrCodeSceneModel = new QRCodeSceneModel();
+        if (qrCodeScene != null){
+            BeanUtils.copyProperties(qrCodeScene, qrCodeSceneModel);
+        }
+        return ResultContent.buildContent(qrCodeSceneModel);
+    }
+
     public String getAccessToken(String appId, String secret) throws Exception {
         String value = redisService.getValue(ACCESS_TOKEN_KEY + appId + ":");
         if (Objects.isNull(value)) {