Bladeren bron

H5额外活动助力接口

傅行帆 4 jaren geleden
bovenliggende
commit
e4072e73e8

+ 16
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Bestand weergeven

@@ -857,4 +857,20 @@ public class CommConstant {
857 857
      * 明细类型--红包
858 858
      */
859 859
     public static final String ITEM_TYPE_REDPACKAGE = "redPackage";
860
+
861
+    /**
862
+     * 交易状态 成功
863
+     */
864
+    public static final String TRADING_STATUS_SUCCESS = "success";
865
+
866
+    /**
867
+     * 交易状态 失败
868
+     */
869
+    public static final String TRADING_STATUS_FAIL = "fail";
870
+
871
+    /**
872
+     * 交易状态 进行中
873
+     */
874
+    public static final String TRADING_STATUS_PROCESSING = "processing";
875
+
860 876
 }

+ 0
- 41
src/main/java/com/huiju/estateagents/common/WxMpUtils.java Bestand weergeven

@@ -1,41 +0,0 @@
1
-package com.huiju.estateagents.common;
2
-
3
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
-import com.huiju.estateagents.third.entity.TaMpInfo;
5
-import com.huiju.estateagents.third.service.ITaMpInfoService;
6
-import me.chanjar.weixin.mp.api.WxMpService;
7
-import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
8
-import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
9
-import org.springframework.beans.factory.annotation.Autowired;
10
-import org.springframework.stereotype.Component;
11
-
12
-import javax.annotation.PostConstruct;
13
-import java.util.List;
14
-import java.util.stream.Collectors;
15
-
16
-@Component
17
-public class WxMpUtils {
18
-
19
-    @Autowired
20
-    public ITaMpInfoService iTaMpInfoService;
21
-
22
-    @PostConstruct
23
-    public WxMpService wxMpService() {
24
-        //从数据库读取公众号信息
25
-        QueryWrapper<TaMpInfo> queryWrapper = new QueryWrapper<>();
26
-        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
27
-        List<TaMpInfo> mplist = iTaMpInfoService.list(queryWrapper);
28
-
29
-        WxMpService service = new WxMpServiceImpl();
30
-        service.setMultiConfigStorages(mplist
31
-                .stream().map(a -> {
32
-                    WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();
33
-                    configStorage.setAppId(a.getAppid());
34
-                    configStorage.setSecret(a.getSecret());
35
-                    configStorage.setToken(a.getToken());
36
-                    configStorage.setAesKey(a.getAesKey());
37
-                    return configStorage;
38
-                }).collect(Collectors.toMap(WxMpDefaultConfigImpl::getAppId, a -> a, (o, n) -> o)));
39
-        return service;
40
-    }
41
-}

+ 38
- 3
src/main/java/com/huiju/estateagents/third/controller/WxRedpackController.java Bestand weergeven

@@ -2,20 +2,26 @@ package com.huiju.estateagents.third.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5
-import com.huiju.estateagents.common.WxMpUtils;
5
+import com.huiju.estateagents.common.CommConstant;
6 6
 import com.huiju.estateagents.redpack.entity.TaMpPerson;
7
+import com.huiju.estateagents.third.entity.TaMpInfo;
7 8
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
9
+import com.huiju.estateagents.third.service.ITaMpInfoService;
8 10
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
9 11
 import lombok.AllArgsConstructor;
10 12
 import me.chanjar.weixin.common.error.WxErrorException;
11 13
 import me.chanjar.weixin.mp.api.WxMpService;
14
+import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
12 15
 import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
13 16
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
17
+import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
14 18
 import org.springframework.beans.factory.annotation.Autowired;
15 19
 import org.springframework.stereotype.Controller;
16 20
 import org.springframework.web.bind.annotation.*;
17 21
 
18 22
 import javax.servlet.http.HttpServletRequest;
23
+import java.util.List;
24
+import java.util.stream.Collectors;
19 25
 
20 26
 /**
21 27
  * @author Edward
@@ -24,11 +30,13 @@ import javax.servlet.http.HttpServletRequest;
24 30
 @Controller
25 31
 @RequestMapping("/api")
26 32
 public class WxRedpackController {
27
-    public WxMpUtils wxMpUtils;
28 33
 
29 34
     @Autowired
30 35
     public ITaThirdPartyMiniappConfigService iTaThirdPartyMiniappConfigService;
31 36
 
37
+    @Autowired
38
+    public ITaMpInfoService iTaMpInfoService;
39
+
32 40
     /**
33 41
      * 换取openid接口并插入公众号人员表
34 42
      * @param mpAppid
@@ -38,7 +46,7 @@ public class WxRedpackController {
38 46
      */
39 47
     @GetMapping("/third/redirect/{mpAppid}/greet")
40 48
     public ResponseBean greetUser(@PathVariable String mpAppid, @RequestParam String code, @RequestParam String personId, HttpServletRequest request) {
41
-        WxMpService wxService = wxMpUtils.wxMpService();
49
+        WxMpService wxService = getWxMpService();
42 50
         if (!wxService.switchover(mpAppid)) {
43 51
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
44 52
         }
@@ -60,6 +68,25 @@ public class WxRedpackController {
60 68
         return ResponseBean.success(taMpPerson);
61 69
     }
62 70
 
71
+    private WxMpService getWxMpService() {
72
+        //从数据库读取公众号信息
73
+        QueryWrapper<TaMpInfo> queryWrapper = new QueryWrapper<>();
74
+        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
75
+        List<TaMpInfo> mplist = iTaMpInfoService.list(queryWrapper);
76
+
77
+        WxMpService service = new WxMpServiceImpl();
78
+        service.setMultiConfigStorages(mplist
79
+                .stream().map(a -> {
80
+                    WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();
81
+                    configStorage.setAppId(a.getAppid());
82
+                    configStorage.setSecret(a.getSecret());
83
+                    configStorage.setToken(a.getToken());
84
+                    configStorage.setAesKey(a.getAesKey());
85
+                    return configStorage;
86
+                }).collect(Collectors.toMap(WxMpDefaultConfigImpl::getAppId, a -> a, (o, n) -> o)));
87
+        return service;
88
+    }
89
+
63 90
     /**
64 91
      * 我要参加 活动接口
65 92
      * @param mpAppid
@@ -69,6 +96,10 @@ public class WxRedpackController {
69 96
      */
70 97
     @PostMapping("/third/activity/{mpAppid}/participate")
71 98
     public ResponseBean participateActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, HttpServletRequest request) {
99
+        WxMpService wxService = getWxMpService();
100
+        if (!wxService.switchover(mpAppid)) {
101
+            throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
102
+        }
72 103
         //获取H5项目相关信息
73 104
         String xAppid = request.getHeader("x-appid");
74 105
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
@@ -96,6 +127,10 @@ public class WxRedpackController {
96 127
      */
97 128
     @PostMapping("/third/activity/{mpAppid}/help")
98 129
     public ResponseBean helpActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, @RequestParam String parentMpPersonId ,HttpServletRequest request) {
130
+        WxMpService wxService = getWxMpService();
131
+        if (!wxService.switchover(mpAppid)) {
132
+            throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
133
+        }
99 134
         //获取H5项目相关信息
100 135
         String xAppid = request.getHeader("x-appid");
101 136
         QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();

+ 173
- 9
src/main/java/com/huiju/estateagents/third/service/impl/TaThirdPartyMiniappConfigServiceImpl.java Bestand weergeven

@@ -2,22 +2,35 @@ package com.huiju.estateagents.third.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.github.binarywang.wxpay.bean.request.WxPaySendRedpackRequest;
6
+import com.github.binarywang.wxpay.bean.result.WxPaySendRedpackResult;
7
+import com.github.binarywang.wxpay.config.WxPayConfig;
8
+import com.github.binarywang.wxpay.exception.WxPayException;
9
+import com.github.binarywang.wxpay.service.WxPayService;
10
+import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
5 11
 import com.huiju.estateagents.base.ResponseBean;
6 12
 import com.huiju.estateagents.common.CommConstant;
7 13
 import com.huiju.estateagents.common.MD5Utils;
8 14
 import com.huiju.estateagents.drainage.entity.TaDrainage;
9 15
 import com.huiju.estateagents.drainage.mapper.TaDrainageMapper;
16
+import com.huiju.estateagents.entity.TaPerson;
17
+import com.huiju.estateagents.entity.TaWxPayConfig;
18
+import com.huiju.estateagents.mapper.TaPersonMapper;
19
+import com.huiju.estateagents.mapper.TaWxPayConfigMapper;
10 20
 import com.huiju.estateagents.redpack.entity.*;
11 21
 import com.huiju.estateagents.redpack.mapper.*;
12 22
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
13 23
 import com.huiju.estateagents.third.mapper.TaThirdPartyMiniappConfigMapper;
14 24
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
15 25
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
26
+import org.apache.commons.lang3.StringUtils;
16 27
 import org.springframework.beans.factory.annotation.Autowired;
17 28
 import org.springframework.stereotype.Service;
18 29
 
30
+import java.net.InetAddress;
19 31
 import java.time.LocalDateTime;
20 32
 import java.util.List;
33
+import java.util.Random;
21 34
 import java.util.stream.Collectors;
22 35
 
23 36
 /**
@@ -58,6 +71,27 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
58 71
 	@Autowired
59 72
 	private TaRedPacketMoneyMapper taRedPacketmonetMapper;
60 73
 
74
+	@Autowired
75
+	private TaWxPayConfigMapper taWxPayConfigMapper;
76
+
77
+	@Autowired
78
+	private TaRedPacketClientMapper taRedPacketClientMapper;
79
+
80
+	@Autowired
81
+	private TaOrgAccountMapper taOrgAccountMapper;
82
+
83
+	@Autowired
84
+	private TaOrgOrderMapper taOrgOrderMapper;
85
+
86
+	@Autowired
87
+	private TaOrgOrderDetailMapper taOrgOrderDetailMapper;
88
+
89
+	@Autowired
90
+	private TaOrgAccountDetailedListMapper taOrgAccountDetailedListMapper;
91
+
92
+	@Autowired
93
+	private TaPersonMapper taPersonMapper;
94
+
61 95
 	/**
62 96
 	 * 校验是否合法第三方接口调用
63 97
 	 *
@@ -230,7 +264,7 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
230 264
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
231 265
 		
232 266
 		//助力
233
-		String result = saveRedPacketHistory(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId);
267
+		String result = saveRedPacketHistory(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId,mpAppid);
234 268
 		if (result.equals("success")){
235 269
 			ResponseBean.error(result,ResponseBean.ERROR_ILLEGAL_PARAMS);
236 270
 		}
@@ -238,7 +272,7 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
238 272
 		return ResponseBean.success(taRedPacketHelp.getSuccessTip());
239 273
 	}
240 274
 
241
-	private synchronized String saveRedPacketHistory(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId) {
275
+	private synchronized String saveRedPacketHistory(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId, String mpAppid) {
242 276
 		//查看我是否助力过
243 277
 		QueryWrapper<TaRedPacketHistory> queryWrapper = new QueryWrapper();
244 278
 		queryWrapper.eq("activity_id",taRedPacketHelp.getActivityId());
@@ -268,8 +302,11 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
268 302
 		parentRedPacketHistory.eq("target_mp_person",parentMpMiniapp.getMpPersonId());
269 303
 		parentRedPacketHistory.eq("target_miniapp_person",parentMpMiniapp.getMiniappPersonId());
270 304
 		List<TaRedPacketHistory> parentRedPacketHistories = taRedPacketHistoryMapper.selectList(parentRedPacketHistory);
271
-		Boolean redPackageState = parentRedPacketHistories.size() + 1 <= taRedPacketHelp.getHelpSuccesPersons();
272 305
 
306
+		//查看是否助力成功
307
+		if (parentRedPacketHistories.size() + 1 > taRedPacketHelp.getHelpSuccesPersons()){
308
+			return "助力已完成,无需助力。";
309
+		}
273 310
 
274 311
 		//助力
275 312
 		TaRedPacketHistory taRedPacketHistory = new TaRedPacketHistory();
@@ -281,10 +318,8 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
281 318
 		taRedPacketHistory.setTargetMiniappPerson(parentMpMiniapp.getMiniappPersonId());
282 319
 		taRedPacketHistory.setTargetMpPerson(parentMpMiniapp.getMpPersonId());
283 320
 		taRedPacketHistoryMapper.insert(taRedPacketHistory);
284
-		if (redPackageState){
285
-			//发送红包
286
-			sendRedPackage(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId);
287
-		}
321
+		//发送红包
322
+		sendRedPackage(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId,mpAppid);
288 323
 		return "success";
289 324
 	}
290 325
 
@@ -294,9 +329,138 @@ public class TaThirdPartyMiniappConfigServiceImpl extends ServiceImpl<TaThirdPar
294 329
 	 * @param parentMpMiniapp
295 330
 	 * @param taRedPacketHelp
296 331
 	 * @param orgId
332
+	 * @param mpAppid
297 333
 	 */
298
-	private synchronized void sendRedPackage(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId) {
334
+	private synchronized void sendRedPackage(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId, String mpAppid) {
335
+		//红包金额设置相关信息
299 336
 		TaRedPacketMoney taRedPacketMoney = taRedPacketmonetMapper.selectById(taRedPacketHelp.getActivityId());
300
-		
337
+		//总账户金额
338
+		TaOrgAccount taOrgAccount = taOrgAccountMapper.selectOne(new QueryWrapper<TaOrgAccount>().eq("org_id", orgId).eq("status", CommConstant.STATUS_NORMAL));
339
+		//金额不足直接返回
340
+		if (taRedPacketMoney.getBalance() == 0){
341
+			return;
342
+		}
343
+		//账户余额不足
344
+		if (taOrgAccount.getRealBalance() == 0){
345
+			return;
346
+		}
347
+		//发送红包已达上限
348
+		if (taRedPacketMoney.getPacketSendedNum() + 1 > taRedPacketMoney.getLimitPacketNum()){
349
+			return;
350
+		}
351
+		//获取红包的随机数
352
+		int redPackageMoney = getRedPackageMoney(taRedPacketMoney.getMaxPacket(), taRedPacketMoney.getMinPacket());
353
+		redPackageMoney = taOrgAccount.getRealBalance() < redPackageMoney ? taOrgAccount.getRealBalance() : redPackageMoney;
354
+
355
+		//获取红包支付相关的配置
356
+		TaRedPacketClient taRedPacketClient = taRedPacketClientMapper.selectById(taRedPacketHelp.getActivityId());
357
+		//获取收红包人的openid
358
+		TaMpPerson parentMpPerson = taMpPersonMapper.selectById(parentMpMiniapp.getMpPersonId());
359
+		//发送红包
360
+		WxPayService wxPayService = getWxPayService();
361
+		WxPaySendRedpackRequest build = WxPaySendRedpackRequest.newBuilder()
362
+//				.consumeMchId(wxPayService.getConfig().getMchId())
363
+				.actName(taRedPacketClient.getActivityName())//活动名称
364
+				.clientIp(String.valueOf(InetAddress.getLoopbackAddress()))//Ip地址
365
+				.mchBillNo("HB123456")//商户订单号
366
+//				.msgAppid(mpAppid)
367
+				.remark(taRedPacketClient.getRemark())//备注
368
+				.reOpenid(parentMpPerson.getMpOpenid())//接受红包的用户openid
369
+
370
+				.sceneId("")//场景id
371
+				.sendName(taRedPacketClient.getMchName())//红包发送者名称
372
+				.totalAmount(redPackageMoney)//付款金额,单位分
373
+				.totalNum(1)//红包发放总人数
374
+				.wishing(taRedPacketClient.getBlessing())//红包祝福语
375
+				.wxAppid(mpAppid)//公众账号appid
376
+				.build();
377
+		try {
378
+			WxPaySendRedpackResult wxPaySendRedpackResult = wxPayService.sendRedpack(build);
379
+			String resultCode = wxPaySendRedpackResult.getResultCode();
380
+			if (resultCode.equals("SUCCESS")){
381
+				//插入订单表并扣钱反更新
382
+				saveRedpacketOrder("HB123456",wxPaySendRedpackResult,parentMpMiniapp,taRedPacketHelp,orgId,mpAppid);
383
+			}else {
384
+				return;
385
+			}
386
+		} catch (WxPayException e) {
387
+			e.printStackTrace();
388
+		}
389
+	}
390
+
391
+	private synchronized void saveRedpacketOrder(String tradeNo, WxPaySendRedpackResult wxPaySendRedpackResult, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId, String mpAppid) {
392
+		//先扣钱
393
+		TaOrgAccount taOrgAccount = taOrgAccountMapper.selectOne(new QueryWrapper<TaOrgAccount>().eq("org_id", orgId).eq("status", CommConstant.STATUS_NORMAL));
394
+		taOrgAccount.setRealBalance(taOrgAccount.getRealBalance() - wxPaySendRedpackResult.getTotalAmount());
395
+		taOrgAccountMapper.updateById(taOrgAccount);
396
+		TaRedPacketMoney taRedPacketMoney = taRedPacketmonetMapper.selectById(taRedPacketHelp.getActivityId());
397
+		taRedPacketMoney.setBalance(taRedPacketMoney.getBalance()-wxPaySendRedpackResult.getTotalAmount());
398
+		taRedPacketmonetMapper.updateById(taRedPacketMoney);
399
+
400
+		//插入组织订单表
401
+		TaOrgOrder taOrgOrder = new TaOrgOrder();
402
+		taOrgOrder.setAmount(wxPaySendRedpackResult.getTotalAmount());
403
+		taOrgOrder.setCreateDate(LocalDateTime.now());
404
+		taOrgOrder.setOrgId(orgId);
405
+		taOrgOrder.setPayDate(LocalDateTime.now());
406
+		taOrgOrder.setStatus(CommConstant.STATUS_NORMAL);
407
+		taOrgOrder.setTradeNo(tradeNo);
408
+		taOrgOrder.setTradingStatus(CommConstant.TRADING_STATUS_SUCCESS);
409
+		taOrgOrderMapper.insert(taOrgOrder);
410
+
411
+		//插入组织订单明细表
412
+		TaOrgOrderDetail taOrgOrderDetail = new TaOrgOrderDetail();
413
+		taOrgOrderDetail.setAmount(wxPaySendRedpackResult.getTotalAmount());
414
+		taOrgOrderDetail.setItemType(CommConstant.ITEM_TYPE_REDPACKAGE);
415
+		taOrgOrderDetail.setOrderId(taOrgOrder.getOrderId());
416
+		taOrgOrderDetail.setOrgId(orgId);
417
+		taOrgOrderDetail.setQuantity(1);
418
+		taOrgOrderDetail.setReceiverId(parentMpMiniapp.getMiniappPersonId());
419
+		taOrgOrderDetail.setReceiverMpId(parentMpMiniapp.getMpPersonId());
420
+		TaPerson taPerson = taPersonMapper.selectById(parentMpMiniapp.getMiniappPersonId());
421
+		taOrgOrderDetail.setReceiverName(taPerson.getNickname());
422
+		taOrgOrderDetail.setStatus(CommConstant.STATUS_NORMAL);
423
+		taOrgOrderDetail.setTargetId(taRedPacketHelp.getActivityId());
424
+		taOrgOrderDetail.setTargetType(CommConstant.ITEM_TYPE_REDPACKAGE);
425
+		taOrgOrderDetailMapper.insert(taOrgOrderDetail);
426
+
427
+		//插入账户流水表
428
+		TaOrgAccountDetailedList taOrgAccountDetailedList = new TaOrgAccountDetailedList();
429
+		taOrgAccountDetailedList.setAccountId(taOrgAccount.getAccountId());
430
+		taOrgAccountDetailedList.setAmount(wxPaySendRedpackResult.getTotalAmount());
431
+		taOrgAccountDetailedList.setCreateDate(LocalDateTime.now());
432
+		taOrgAccountDetailedList.setOrderId(taOrgOrder.getOrderId());
433
+		taOrgAccountDetailedList.setOrgId(orgId);
434
+		taOrgAccountDetailedList.setSignType(-1);
435
+		taOrgAccountDetailedList.setStatus(CommConstant.STATUS_NORMAL);
436
+		taOrgAccountDetailedListMapper.insert(taOrgAccountDetailedList);
437
+
438
+	}
439
+
440
+	/**
441
+	 * 获取商户号信息
442
+	 * @return
443
+	 */
444
+	private WxPayService getWxPayService() {
445
+		TaWxPayConfig taWxPayConfig = taWxPayConfigMapper.selectOne(new QueryWrapper<TaWxPayConfig>().eq("org_id", 0));
446
+		WxPayConfig payConfig = new WxPayConfig();
447
+		payConfig.setAppId(StringUtils.trimToNull(taWxPayConfig.getAppid()));
448
+		payConfig.setMchId(StringUtils.trimToNull(taWxPayConfig.getMchId()));
449
+		payConfig.setMchKey(StringUtils.trimToNull(taWxPayConfig.getMchKey()));
450
+		payConfig.setKeyPath(StringUtils.trimToNull(taWxPayConfig.getApiPath()));
451
+		WxPayService wxPayService =new WxPayServiceImpl();
452
+		wxPayService.setConfig(payConfig);
453
+		return wxPayService;
454
+	}
455
+
456
+	/**
457
+	 * 获取范围值之内的红包的随机数
458
+	 * @param maxPacket
459
+	 * @param minPacket
460
+	 * @return
461
+	 */
462
+	private int getRedPackageMoney(Integer maxPacket, Integer minPacket) {
463
+		Random random = new Random();
464
+		return random.nextInt(maxPacket)%(maxPacket - minPacket + 1) + minPacket;
301 465
 	}
302 466
 }

+ 5
- 2
src/test/java/com/huiju/estateagents/WxPayTest.java Bestand weergeven

@@ -6,7 +6,7 @@ import org.springframework.boot.test.context.SpringBootTest;
6 6
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
7 7
 import org.springframework.transaction.annotation.Transactional;
8 8
 
9
-import java.time.LocalDateTime;
9
+import java.util.Random;
10 10
 
11 11
 @RunWith(SpringJUnit4ClassRunner.class)
12 12
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@@ -28,8 +28,11 @@ public class WxPayTest {
28 28
 //        }catch (Exception e) {
29 29
 //            e.printStackTrace();
30 30
 //        }
31
+        Random random = new Random();
32
+        for (int i =0; i <100 ; i++){
33
+            System.out.println(random.nextInt(5)%(5-1 + 1) +1);
34
+        }
31 35
 
32
-        System.out.println(LocalDateTime.now().toLocalDate().equals(LocalDateTime.now().toLocalDate()));
33 36
 
34 37
     }
35 38
 }