From 9748895b0eb4fef89e6cb238f1dbd92b8c7fe106 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 21 Jul 2021 11:03:04 +0800
Subject: [PATCH] Merge branch 'score-shop' of http://120.27.238.55:7000/r/xzx into score-shop
---
gc-core/src/main/resources/application.properties | 2
gc-order/src/test/java/SpringTest.java | 12 ++
gc-user/src/test/java/SpringTest.java | 46 +++++++++
gc-order/src/main/resources/mapper/order/JhyOrderMapper.xml | 14 ++
gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java | 2
gc-user/src/main/java/com/xzx/gc/user/controller/ApiJhyInfoController.java | 2
gc-order/src/main/java/com/xzx/gc/order/vo/JhyStatusCountVo.java | 13 ++
gc-user/src/test/java/ThreadTest.java | 9 +
gc-core/src/main/java/com/xzx/gc/common/utils/image/GraphicsUtils.java | 1
gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java | 2
gc-core/pom.xml | 6 +
gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java | 3
gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java | 27 +++-
gc-user/src/main/resources/mapper/user/AccountMapper.xml | 7 +
gc-order/src/main/java/com/xzx/gc/order/mapper/JhyOrderMapper.java | 3
gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java | 7 +
gc-user/src/main/java/com/xzx/gc/user/service/PosterService.java | 6
gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java | 32 +++++
gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java | 69 ++++++++-----
19 files changed, 215 insertions(+), 48 deletions(-)
diff --git a/gc-core/pom.xml b/gc-core/pom.xml
index 054fa3b..799bed1 100644
--- a/gc-core/pom.xml
+++ b/gc-core/pom.xml
@@ -170,6 +170,12 @@
<!--<version>5.3</version>-->
<!--</dependency>-->
+ <!-- https://mvnrepository.com/artifact/com.github.jai-imageio/jai-imageio-core -->
+ <dependency>
+ <groupId>com.github.jai-imageio</groupId>
+ <artifactId>jai-imageio-core</artifactId>
+ <version>1.4.0</version>
+ </dependency>
</dependencies>
diff --git a/gc-core/src/main/java/com/xzx/gc/common/utils/image/GraphicsUtils.java b/gc-core/src/main/java/com/xzx/gc/common/utils/image/GraphicsUtils.java
index 380cb42..27fdc0d 100644
--- a/gc-core/src/main/java/com/xzx/gc/common/utils/image/GraphicsUtils.java
+++ b/gc-core/src/main/java/com/xzx/gc/common/utils/image/GraphicsUtils.java
@@ -79,6 +79,7 @@
}
}
} catch (Exception e) {
+ log.error("报错:", e);
return null;
}
log.debug("生成海报成功,路径:" + imgPath);
diff --git a/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java b/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java
index 81fb8ed..750922b 100644
--- a/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java
+++ b/gc-core/src/main/java/com/xzx/gc/common/utils/wxpay/WxUtil.java
@@ -73,6 +73,9 @@
return openid;
}
+ public String generateAcode(String scene,String path,String imgName,String width){
+ return generateAcode(scene, path, imgName, width, null);
+ }
/**
* 生成小程序码
@@ -81,19 +84,25 @@
* @param imgName 图片唯一名称
* @return
*/
- public String generateAcode(String scene,String path,String imgName,String width){
+ public String generateAcode(String scene,String path,String imgName,String width, Integer type){
String urlPrefix=businessUtil.getViewUrl();
String imgPath=Constants.IMG_UPLOAD_PATH+imgName;
if(!FileUtil.exist(imgPath)){
- //调用二维码接口
- String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken());
+
cn.hutool.json.JSONObject obj = JSONUtil.createObj();
- //最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,
- // 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
- obj.put("scene", scene);
- //必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index,
- // 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
- obj.put("path", path);
+ //调用二维码接口
+ String url = null;
+ if (type == null) {
+ // 该接口无数量限制,但是 scene 传参最大字符长度为32个字符
+ url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken());
+ obj.put("scene", scene);
+ obj.put("path", path);
+ } else {
+ // 该接口存在数量限制, 总共可生成10w个, 但参数是接在path后面
+ url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacode?access_token={}", getAccessToken());
+ obj.put("path", path + "?" + scene );
+ }
+
//最小 280px,最大 1280px
obj.put("width", width);
obj.put("auto_color", false);
diff --git a/gc-core/src/main/resources/application.properties b/gc-core/src/main/resources/application.properties
index b09f250..832738b 100644
--- a/gc-core/src/main/resources/application.properties
+++ b/gc-core/src/main/resources/application.properties
@@ -11,7 +11,7 @@
#log
-project.log.path=xzx/logs
+project.log.path=/xzx/logs
logstash.server.url=localhost:4560
#spring
diff --git a/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java b/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
index 91f6e7a..e45e802 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/controller/ApiJhyOrderController.java
@@ -23,6 +23,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
@Slf4j
@RestController
@@ -82,4 +83,10 @@
return Result.success();
}
+ @ApiOperation("订单状态数量")
+ @PostMapping(value = "/orderStatusCnt")
+ public JsonResult<Map<Integer, Integer>> orderStatusCnt(HttpServletRequest request) {
+ return JsonResult.success(jhyOrderService.orderStatusCount(getUserId(request)));
+ }
+
}
diff --git a/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyOrderMapper.java b/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyOrderMapper.java
index 01156c0..c60b730 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyOrderMapper.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/mapper/JhyOrderMapper.java
@@ -3,6 +3,7 @@
import com.xzx.gc.entity.JhyOrder;
import com.xzx.gc.order.dto.JhyOrderListDto;
import com.xzx.gc.order.vo.JhyOrderListVo;
+import com.xzx.gc.order.vo.JhyStatusCountVo;
import com.xzx.gc.util.GcMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -13,4 +14,6 @@
public interface JhyOrderMapper extends GcMapper<JhyOrder> {
List<JhyOrderListVo> selectJhyOrderList(@Param("record") JhyOrderListDto jhyOrderListDto);
+
+ List<JhyStatusCountVo> selectOrderStatusCount(@Param("userId") String userId);
}
diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java b/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
index 1c30613..6c4b284 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/DistribService.java
@@ -99,7 +99,7 @@
// 根据订单总积分, 1:40比例,换算成环保币,返对应百分比
if (StrUtil.isNotBlank(coinStr) && !"0".equals(coinStr)) {
BigDecimal coinRatio = new BigDecimal(coinStr).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN);
- BigDecimal totalCoin = totalScore.divide(new BigDecimal(40), 2, BigDecimal.ROUND_DOWN);
+ BigDecimal totalCoin = totalScore.divide(new BigDecimal(50), 2, BigDecimal.ROUND_DOWN);
BigDecimal returnCoin = totalCoin.multiply(coinRatio).setScale(2, BigDecimal.ROUND_DOWN);
totalReturnCoin = totalReturnCoin.add(returnCoin);
diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
index 6c8c7df..ee3c7f3 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
@@ -18,6 +18,7 @@
import com.xzx.gc.order.mapper.*;
import com.xzx.gc.order.vo.JhyOrderDetailsVo;
import com.xzx.gc.order.vo.JhyOrderListVo;
+import com.xzx.gc.order.vo.JhyStatusCountVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -25,9 +26,7 @@
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
@Slf4j
@Service
@@ -172,6 +171,7 @@
order.setStatus(JhyOrder.ORDER_STATUS_CANCEL);
}
+ order.setJhyId(null);
jhyOrderMapper.updateByPrimaryKey(order);
}
@@ -236,4 +236,30 @@
distribService.distribRecord(order.getId(), order.getUserId());
}
+
+ public Map<Integer, Integer> orderStatusCount(String userId) {
+ List<JhyStatusCountVo> count = jhyOrderMapper.selectOrderStatusCount(userId);
+
+ Map<Integer, Integer> map = new HashMap<>();
+ for (int i = 1; i < 6; i++) {
+ if (CollUtil.isNotEmpty(count)) {
+ boolean flag = false;
+ for (JhyStatusCountVo jhyStatusCountVo : count) {
+ if (i == jhyStatusCountVo.getStatus()) {
+ map.put(i, jhyStatusCountVo.getCnt());
+ flag = true;
+ break;
+ }
+ }
+
+ if (flag) {
+ continue;
+ }
+ }
+
+ map.put(i, 0);
+ }
+
+ return map;
+ }
}
diff --git a/gc-order/src/main/java/com/xzx/gc/order/vo/JhyStatusCountVo.java b/gc-order/src/main/java/com/xzx/gc/order/vo/JhyStatusCountVo.java
new file mode 100644
index 0000000..e698e3b
--- /dev/null
+++ b/gc-order/src/main/java/com/xzx/gc/order/vo/JhyStatusCountVo.java
@@ -0,0 +1,13 @@
+package com.xzx.gc.order.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "JhyStatucCountVo", description = "")
+public class JhyStatusCountVo {
+
+ private Integer status;
+
+ private Integer cnt;
+}
diff --git a/gc-order/src/main/resources/mapper/order/JhyOrderMapper.xml b/gc-order/src/main/resources/mapper/order/JhyOrderMapper.xml
index e796b6d..01997c5 100644
--- a/gc-order/src/main/resources/mapper/order/JhyOrderMapper.xml
+++ b/gc-order/src/main/resources/mapper/order/JhyOrderMapper.xml
@@ -43,4 +43,18 @@
group by a.id
order by a.receiving_time desc, a.id desc
</select>
+
+ <select id="selectOrderStatusCount" resultType="com.xzx.gc.order.vo.JhyStatusCountVo">
+ select
+ status,
+ count(1) cnt
+ from xzx_jhy_order where status=1
+ union all
+ select
+ status,
+ count(1) cnt
+ from xzx_jhy_order
+ where user_id=#{userId}
+ group by status
+ </select>
</mapper>
\ No newline at end of file
diff --git a/gc-order/src/test/java/SpringTest.java b/gc-order/src/test/java/SpringTest.java
index 63b1ae0..1e3d6d0 100644
--- a/gc-order/src/test/java/SpringTest.java
+++ b/gc-order/src/test/java/SpringTest.java
@@ -22,6 +22,7 @@
import com.xzx.gc.common.utils.SpringUtil;
import com.xzx.gc.common.utils.gdmap.GdMapUtil;
import com.xzx.gc.common.utils.gdmap.GdTraceUtil;
+import com.xzx.gc.common.utils.image.GraphicsUtils;
import com.xzx.gc.entity.*;
import com.xzx.gc.model.order.FenceDto;
import com.xzx.gc.model.user.AccountVo;
@@ -777,5 +778,16 @@
}
+ @Autowired
+ private GraphicsUtils graphicsUtils;
+
+ @Test
+ public void haibaoTest() {
+ String imageName = "/test.jpg";
+ String path = "/Users/helius/Desktop/acode.jpg";
+ String avatar = "https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132";
+ String backgroundUrl = "/Users/helius/Desktop/user_share_poster_bg.png";
+
+ graphicsUtils.generatePoster(imageName, path, avatar, backgroundUrl, "15200889645", 100, 340, 57, 94, 230, 160, 40); }
}
diff --git a/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java b/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java
index 0930fb6..5f24b8f 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/controller/AdminDistribController.java
@@ -1,7 +1,9 @@
package com.xzx.gc.user.controller;
+import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import com.xzx.gc.common.constant.CommonEnum;
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.common.dto.log.OperationAppLog;
@@ -106,33 +108,46 @@
@ApiOperation(value="分銷系統管理--新增团长", notes="test: 仅0有正确返回")
public JsonResult adddistrib(@RequestBody AdddistribDto model, HttpServletRequest request) {
String id = model.getId();
- AccountInfo accountInfo = accountMapper.selectByPrimaryKey(id);
- if(ObjectUtil.isEmpty(accountInfo)){
- return JsonResult.failMessage("账户不存在!");
+ List<String> ids = StrUtil.split(id, ',');
+// AccountInfo accountInfo = accountMapper.selectByPrimaryKey(id);
+ List<AccountInfo> accountInfos = accountMapper.selectAccountInfoByIds(ids);
+ if (CollUtil.isNotEmpty(accountInfos)) {
+ for (AccountInfo accountInfo : accountInfos) {
+// if(ObjectUtil.isEmpty(accountInfo)){
+// return JsonResult.failMessage("账户不存在!");
+// }
+ if(ObjectUtil.isEmpty(accountInfo.getIsHead())
+ || accountInfo.getIsHead() == 1){
+ return JsonResult.failMessage(accountInfo.getAccountName() + "账户不能重复添加!");
+ }
+ if(ObjectUtil.isEmpty(accountInfo.getDelFlag())
+ || accountInfo.getDelFlag() == 1){
+ return JsonResult.failMessage(accountInfo.getAccountName() + "账户已删除!");
+ }
+ if(ObjectUtil.isEmpty(accountInfo.getIsProhibit())
+ || "1".equals(accountInfo.getIsProhibit())){
+ return JsonResult.failMessage(accountInfo.getAccountName() + "账户已冻结!");
+ }
+ //团员不能当团长
+ String userId = accountInfo.getUserId();
+ UserHeadRelate userHeadRelate = userHeadRelateMapper.selectMemberByUserId(userId);
+ if(ObjectUtil.isNotEmpty(userHeadRelate)){
+ return JsonResult.failMessage(accountInfo.getAccountName() + "账户不能申请成为团长!");
+ }
+// distribService.adddistrib(accountInfo.getAccountId());
+
+ accountInfo.setIsHead(1);
+ accountMapper.updateByPrimaryKey(accountInfo);
+ OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
+ .methodName(Constants.USER_MODUL_NAME).operateAction("分銷系統管理--新增团长-"+id).build();
+ mqUtil.sendApp(build);
+ }
+
+ return JsonResult.success("操作成功!");
+ } else {
+ return JsonResult.failMessage("参数错误");
}
- if(ObjectUtil.isEmpty(accountInfo.getIsHead())
- || accountInfo.getIsHead() == 1){
- return JsonResult.failMessage("账户不能重复添加!");
- }
- if(ObjectUtil.isEmpty(accountInfo.getDelFlag())
- || accountInfo.getDelFlag() == 1){
- return JsonResult.failMessage("账户已删除!");
- }
- if(ObjectUtil.isEmpty(accountInfo.getIsProhibit())
- || accountInfo.getIsProhibit() == "1"){
- return JsonResult.failMessage("账户已冻结!");
- }
- //团员不能当团长
- String userId = accountInfo.getUserId();
- UserHeadRelate userHeadRelate = userHeadRelateMapper.selectMemberByUserId(userId);
- if(ObjectUtil.isNotEmpty(userHeadRelate)){
- return JsonResult.failMessage("账户不能申请成为团长!");
- }
- distribService.adddistrib(model);
- OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
- .methodName(Constants.USER_MODUL_NAME).operateAction("分銷系統管理--新增团长-"+id).build();
- mqUtil.sendApp(build);
- return JsonResult.success("操作成功!");
+
}
@ApiOperation(value = "团长列表")
@@ -220,7 +235,7 @@
List<List<String>> rows = new ArrayList<>();
List<String> header=new ArrayList<>();
//标题
- header=CollUtil.newArrayList( "团长名称", "手机号", "身份", "团员数量", "交易单数", "累计收益积分", "累计收益(元)", "累计订单重量(kg)","累计数量(家电)");
+ header=CollUtil.newArrayList( "团长名称", "手机号", "身份", "团员数量", "交易单数", "累计积分收益", "累计环保币收益", "累计订单重量(kg)","累计订单数量(家电)");
rows.add(header);
Map<String, Object> stringObjectMap = distribService.distribDataExport(distribDataListDto);
List<DistribDataListVo> distribDataListVos = (List<DistribDataListVo>) stringObjectMap.get("data");
diff --git a/gc-user/src/main/java/com/xzx/gc/user/controller/ApiJhyInfoController.java b/gc-user/src/main/java/com/xzx/gc/user/controller/ApiJhyInfoController.java
index 8409513..2e4b6ed 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/controller/ApiJhyInfoController.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/controller/ApiJhyInfoController.java
@@ -58,7 +58,7 @@
break;
case 1:
map.put("icon", "../../images/icon_team.png");
- map.put("name", "集物员订单列表");
+ map.put("name", "集物员订单");
map.put("path", "../../collectPersonnel/GCOrderForm/index");
break;
case 2:
diff --git a/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java b/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java
index a6d127e..6c0335f 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/mapper/AccountMapper.java
@@ -76,5 +76,7 @@
String selectOrderExportByHeadUserId(@Param("accountId")String id, @Param("record")ExportDistribDataListDto distribDataListDto);
String selectJDSLExportByHeadUserId(@Param("accountId")String id, @Param("record")ExportDistribDataListDto distribDataListDto);
+
+ List<AccountInfo> selectAccountInfoByIds(@Param("list") List<String> list);
}
diff --git a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java
index 83a4d6e..ccedcc9 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java
@@ -233,8 +233,7 @@
return data;
}
- public void adddistrib(AdddistribDto model) {
- String id = model.getId();
+ public void adddistrib(String id) {
AccountInfo accountInfo = accountMapper.selectByPrimaryKey(id);
accountInfo.setIsHead(1);
accountMapper.updateByPrimaryKey(accountInfo);
diff --git a/gc-user/src/main/java/com/xzx/gc/user/service/PosterService.java b/gc-user/src/main/java/com/xzx/gc/user/service/PosterService.java
index dbbad20..3f530bc 100644
--- a/gc-user/src/main/java/com/xzx/gc/user/service/PosterService.java
+++ b/gc-user/src/main/java/com/xzx/gc/user/service/PosterService.java
@@ -34,10 +34,10 @@
public Map<String,String> generate(UserInfo userInfo){
//海报图名称
String userId=userInfo.getUserId();
- String imageName="/user_" + userId + "_poster.jpg";
+ String imageName="/user_" + userId + "_poster_1.jpg";
//二维码图名称
- String imgName="/user_" + userId + "_acode.jpg";
- String s1 = wxUtil.generateAcode("poster=" + userInfo.getMobilePhone(), "pages/login/login", imgName, "800px");
+ String imgName="/user_" + userId + "_acode_1.jpg";
+ String s1 = wxUtil.generateAcode("poster=" + userInfo.getMobilePhone() +"&chiefId=" + userInfo.getUserId(), "pages/login/login", imgName, "800px", 1);
if(StrUtil.isBlank(s1)){
throw new RestException("生成分享海报失败");
}
diff --git a/gc-user/src/main/resources/mapper/user/AccountMapper.xml b/gc-user/src/main/resources/mapper/user/AccountMapper.xml
index 3eff87a..e30a1fb 100644
--- a/gc-user/src/main/resources/mapper/user/AccountMapper.xml
+++ b/gc-user/src/main/resources/mapper/user/AccountMapper.xml
@@ -547,4 +547,11 @@
)
</select>
+ <select id="selectAccountInfoByIds" resultType="com.xzx.gc.entity.AccountInfo">
+ select * from xzx_account_info
+ where account_id in
+ <foreach collection="list" index="index" item="id" separator="," open="(" close=")">
+ #{id}
+ </foreach>
+ </select>
</mapper>
diff --git a/gc-user/src/test/java/SpringTest.java b/gc-user/src/test/java/SpringTest.java
index 1412762..4bfb511 100644
--- a/gc-user/src/test/java/SpringTest.java
+++ b/gc-user/src/test/java/SpringTest.java
@@ -1,8 +1,11 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.text.StrFormatter;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.xzx.gc.GcUserApplication;
import com.xzx.gc.common.Result;
@@ -10,9 +13,11 @@
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.common.utils.RedisUtil;
import com.xzx.gc.common.utils.gdmap.GdTraceUtil;
+import com.xzx.gc.common.utils.wxpay.WxUtil;
import com.xzx.gc.entity.*;
import com.xzx.gc.user.mapper.UserBatchMapper;
import com.xzx.gc.user.service.*;
+import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +25,8 @@
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
+import java.io.File;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@@ -28,9 +35,10 @@
import java.util.stream.Collectors;
+@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {GcUserApplication.class})
-@ActiveProfiles(profiles = {"temp"})
+@ActiveProfiles(profiles = {"xc"})
public class SpringTest {
@@ -211,6 +219,42 @@
}
+ @Autowired
+ private WxUtil wxUtil;
+
+ @Test
+ public void acodeTest() {
+
+ String path = "pages/login/login?poster=18390984915&chiefId=YH1417670707298828288";
+ String imgPath = "/Users/helius/Desktop/YH1417670707298828288_acode.jpg";
+
+ String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacode?access_token={}", wxUtil.getAccessToken());
+ cn.hutool.json.JSONObject obj = JSONUtil.createObj();
+ obj.put("path", path);
+ //最小 280px,最大 1280px
+ obj.put("width", "800px");
+ obj.put("auto_color", false);
+ cn.hutool.json.JSONObject obj2 = JSONUtil.createObj();
+ obj2.put("r", 0);
+ obj2.put("g", 0);
+ obj2.put("b", 0);
+ obj.put("line_color", obj2);
+ //是否需要透明底色,为 true 时,生成透明底色的小程序码
+ obj.put("is_hyaline", false);
+ try {
+ InputStream inputStream = HttpRequest.post(url).body(obj.toString(), "application/json").execute().bodyStream();
+ File file = new File(imgPath);
+ FileUtil.writeFromStream(inputStream, file);
+ long uploadUrl = FileUtil.size(file);
+ //小于10kb重新生成
+ if(uploadUrl<= Constants.MIN_FILE_SIZE){
+ log.error("生成微信小程序码失败:图片大小异常:{}",uploadUrl);
+ }
+ } catch (Exception e) {
+ log.error("生成微信小程序码失败",e);
+ }
+
+ }
}
diff --git a/gc-user/src/test/java/ThreadTest.java b/gc-user/src/test/java/ThreadTest.java
index fa97a56..4662cf0 100644
--- a/gc-user/src/test/java/ThreadTest.java
+++ b/gc-user/src/test/java/ThreadTest.java
@@ -1,8 +1,17 @@
+import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Console;
+import cn.hutool.core.text.StrFormatter;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.NumberUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONUtil;
+import com.xzx.gc.common.constant.Constants;
+import com.xzx.gc.common.utils.wxpay.WxUtil;
import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.io.File;
+import java.io.InputStream;
import java.util.concurrent.*;
public class ThreadTest {
--
Gitblit v1.9.1