Browse Source

推荐码图片

fanzherong_v 1 tháng trước cách đây
mục cha
commit
9dddb47096

+ 4 - 2
snowy-common/src/main/java/vip/xiaonuo/common/util/CommonWxUtil.java

@@ -24,9 +24,11 @@ import java.util.Map;
 @Component
 public class CommonWxUtil {
 
-    private static final String APP_ID = "wx3f94e7be85c27ff7";
+    //private static final String APP_ID = "wx3f94e7be85c27ff7";
+    private static final String APP_ID = "wx2a107b653bd186f2";
 
-    private static final String SECRET = "9c9c0dee6be8a67d9946f0deb762ac7e";
+    //private static final String SECRET = "9c9c0dee6be8a67d9946f0deb762ac7e";
+    private static final String SECRET = "98988885bbc944567012e8331fe12dc2";
 
     private static final String GRANT_TYPE = "client_credential";
 

+ 51 - 3
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/rechargerecord/service/impl/BizRechargeRecordServiceImpl.java

@@ -13,9 +13,11 @@
 package vip.xiaonuo.biz.modular.rechargerecord.service.impl;
 
 
+import cn.hutool.core.codec.Base64;
 import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson.JSONObject;
@@ -368,6 +370,48 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
         this.updateById(bizRechargeRecord);
     }
 
+    public String returnBase(){
+        CommonWxUtil util = new CommonWxUtil();
+        try {
+            String accessToken = util.getAccessToken();
+            String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;
+            JSONObject paramJson = new JSONObject();
+            paramJson.put("page", "pages/register/index");
+            paramJson.put("scene", "8JFFG95PD0");
+            paramJson.put("check_path", false);
+            paramJson.put("env_version","trial");
+            paramJson.put("width", 280);
+
+            try {
+                File localFile = new File("D:/defaultUploadFolder/recommend");
+                if(!localFile.exists()) {
+                    localFile.mkdir();
+                }
+
+                String localPath = "D:/defaultUploadFolder/recommend/" + 1 + ".png";
+                InputStream inputStream = WxUtil.postInputStream(url, paramJson);
+                int index;
+                byte[] bytes = new byte[1024];
+                FileOutputStream downloadFile = new FileOutputStream(localPath);
+                while ((index = inputStream.read(bytes)) != -1) {
+                    downloadFile.write(bytes, 0, index);
+                    downloadFile.flush();
+                }
+                File file = new File(localPath);
+                String base = "data:image/png;base64,"+Base64.encode(file);
+                System.out.printf("base:"+base);
+                downloadFile.close();
+                inputStream.close();
+                return base;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return null;
+    }
+
     public static void main(String[] args) {
         CommonWxUtil util = new CommonWxUtil();
         try {
@@ -375,17 +419,18 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
             String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;
             JSONObject paramJson = new JSONObject();
             paramJson.put("page", "pages/register/index");
+            paramJson.put("scene", "8JFFG95PD0");
             paramJson.put("check_path", false);
+            paramJson.put("env_version","trial");
             paramJson.put("width", 280);
-            paramJson.put("scene", "a=1");
 
             try {
-                File localFile = new File("/Users/xuchao/document/其他");
+                File localFile = new File("D:/defaultUploadFolder/recommend");
                 if(!localFile.exists()) {
                     localFile.mkdir();
                 }
 
-                String localPath = "/Users/xuchao/document/其他/" + 1 + ".png";
+                String localPath = "D:/defaultUploadFolder/recommend/" + 1 + ".png";
                 InputStream inputStream = WxUtil.postInputStream(url, paramJson);
                 int index;
                 byte[] bytes = new byte[1024];
@@ -394,6 +439,9 @@ public class BizRechargeRecordServiceImpl extends ServiceImpl<BizRechargeRecordM
                     downloadFile.write(bytes, 0, index);
                     downloadFile.flush();
                 }
+                File file = new File(localPath);
+                String base = "data:image/png;base64,"+Base64.encode(file);
+                System.out.printf("base:"+base);
                 downloadFile.close();
                 inputStream.close();
             } catch (Exception e) {

+ 3 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/entity/BizUser.java

@@ -304,4 +304,7 @@ public class BizUser extends CommonEntity {
     @Schema(description = "主管名称")
     @TableField(exist = false)
     private String directorName;
+
+    /**推荐码图片*/
+    private String recommendCode;
 }

+ 45 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/service/impl/BizUserServiceImpl.java

@@ -17,6 +17,7 @@ import cn.afterturn.easypoi.entity.ImageEntity;
 import cn.afterturn.easypoi.word.WordExportUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.codec.Base64;
 import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DatePattern;
@@ -66,6 +67,7 @@ import org.springframework.web.multipart.MultipartFile;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.biz.core.enums.BizBuildInEnum;
 import vip.xiaonuo.biz.core.enums.BizDataTypeEnum;
+import vip.xiaonuo.biz.core.utils.WxUtil;
 import vip.xiaonuo.biz.modular.consumptionrecord.entity.ConsumptionRecord;
 import vip.xiaonuo.biz.modular.consumptionrecord.service.ConsumptionRecordService;
 import vip.xiaonuo.biz.modular.consumptionrecord.service.impl.ConsumptionRecordServiceImpl;
@@ -979,6 +981,7 @@ public class BizUserServiceImpl extends ServiceImpl<BizUserMapper, BizUser> impl
         //生成推荐码
         //bizUser.setUserReferralCode(DateUtil.format(DateUtil.date(), DatePattern.PURE_DATETIME_PATTERN) + RandomUtil.randomNumbers(4));
         bizUser.setUserReferralCode(generateReferralCode());
+        bizUser.setRecommendCode(returnBase(bizUser.getUserReferralCode()));
         bizUser.setName(wxUserRegisterParam.getName());
         this.save(bizUser);
         sysRoleApi.grantUserRole(bizUser.getId(), roleId);
@@ -1179,4 +1182,46 @@ public class BizUserServiceImpl extends ServiceImpl<BizUserMapper, BizUser> impl
         }
         return sb.toString();
     }
+
+    public String returnBase(String code){
+        CommonWxUtil util = new CommonWxUtil();
+        try {
+            String accessToken = util.getAccessToken();
+            String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;
+            com.alibaba.fastjson.JSONObject paramJson = new com.alibaba.fastjson.JSONObject();
+            paramJson.put("page", "pages/register/index");
+            paramJson.put("scene", "8JFFG95PD0");
+            paramJson.put("check_path", false);
+            paramJson.put("env_version","trial");
+            paramJson.put("width", 280);
+
+            try {
+                File localFile = new File("D:/defaultUploadFolder/recommend");
+                if(!localFile.exists()) {
+                    localFile.mkdir();
+                }
+
+                String localPath = "D:/defaultUploadFolder/recommend/" + code + ".png";
+                InputStream inputStream = WxUtil.postInputStream(url, paramJson);
+                int index;
+                byte[] bytes = new byte[1024];
+                FileOutputStream downloadFile = new FileOutputStream(localPath);
+                while ((index = inputStream.read(bytes)) != -1) {
+                    downloadFile.write(bytes, 0, index);
+                    downloadFile.flush();
+                }
+                File file = new File(localPath);
+                String base = "data:image/png;base64,"+ Base64.encode(file);
+                System.out.printf("base:"+base);
+                downloadFile.close();
+                inputStream.close();
+                return base;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return null;
+    }
 }

+ 5 - 0
snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java

@@ -74,6 +74,7 @@ import vip.xiaonuo.common.util.CommonJoinPointUtil;
 import vip.xiaonuo.common.util.CommonServletUtil;
 import vip.xiaonuo.common.util.CommonTimeFormatUtil;
 import vip.xiaonuo.core.handler.GlobalExceptionUtil;
+import vip.xiaonuo.dev.api.DevConfigApi;
 import vip.xiaonuo.sys.core.enums.SysBuildInEnum;
 
 import javax.sql.DataSource;
@@ -98,6 +99,8 @@ public class GlobalConfigure implements WebMvcConfigurer {
 
     @Autowired
     private SaTokenConfig saTokenConfig;
+    @Resource
+    private DevConfigApi devConfigApi;
 
     private static final String COMMON_REPEAT_SUBMIT_CACHE_KEY = "common-repeatSubmit:";
 
@@ -112,6 +115,7 @@ public class GlobalConfigure implements WebMvcConfigurer {
             "/favicon.ico",
             "/doc.html",
             "/webjars/**",
+            "/recommendImg/**",
             "/v3/api-docs/**",
             "/druid/**",
             /* 移动端静态资源 */
@@ -321,6 +325,7 @@ public class GlobalConfigure implements WebMvcConfigurer {
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("doc.html").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/META-INF/resources/");
         registry.addResourceHandler("/webjars/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/META-INF/resources/webjars/");
+        registry.addResourceHandler("/recommendImg/**").addResourceLocations("file:" + devConfigApi.getValueByKey("SNOWY_RECOMMEND_IMG") + "/");
     }
 
     /**