ソースを参照

Merge branch 'dev' of http://git.ycjcjy.com/zhiyuxing/estateagents into dev

# Conflicts:
#	src/main/java/com/huiju/estateagents/common/CommConstant.java
魏超 4 年 前
コミット
34436c3a53
共有18 個のファイルを変更した369 個の追加64 個の削除を含む
  1. 0
    2
      src/main/java/com/huiju/estateagents/EstateagentsApplication.java
  2. 18
    0
      src/main/java/com/huiju/estateagents/bo/request/SaveCzOrderRequestBO.java
  3. 18
    0
      src/main/java/com/huiju/estateagents/bo/request/SaveRefundOrderRequestBO.java
  4. 9
    0
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  5. 1
    0
      src/main/java/com/huiju/estateagents/drainage/service/impl/TaDrainageServiceImpl.java
  6. 46
    14
      src/main/java/com/huiju/estateagents/redpack/controller/TaOrgOrderController.java
  7. 1
    2
      src/main/java/com/huiju/estateagents/redpack/controller/TaRedPacketHelpController.java
  8. 11
    2
      src/main/java/com/huiju/estateagents/redpack/entity/TaRedPacketHistory.java
  9. 15
    7
      src/main/java/com/huiju/estateagents/redpack/mapper/TaOrgOrderMapper.java
  10. 10
    0
      src/main/java/com/huiju/estateagents/redpack/mapper/TaRedPacketHistoryMapper.java
  11. 5
    4
      src/main/java/com/huiju/estateagents/redpack/service/ITaOrgOrderService.java
  12. 37
    15
      src/main/java/com/huiju/estateagents/redpack/service/impl/TaOrgOrderServiceImpl.java
  13. 1
    1
      src/main/java/com/huiju/estateagents/redpack/service/impl/TaRedPacketHelpServiceImpl.java
  14. 64
    3
      src/main/java/com/huiju/estateagents/third/controller/WxRedpackController.java
  15. 17
    0
      src/main/java/com/huiju/estateagents/third/service/ITaThirdPartyMiniappConfigService.java
  16. 86
    7
      src/main/java/com/huiju/estateagents/third/service/impl/TaThirdPartyMiniappConfigServiceImpl.java
  17. 18
    6
      src/main/resources/mapper/redpack/TaOrgOrderMapper.xml
  18. 12
    1
      src/main/resources/mapper/redpack/TaRedPacketHistoryMapper.xml

+ 0
- 2
src/main/java/com/huiju/estateagents/EstateagentsApplication.java ファイルの表示

1
 package com.huiju.estateagents;
1
 package com.huiju.estateagents;
2
 
2
 
3
 import com.huiju.estateagents.websocket.ChatServer;
3
 import com.huiju.estateagents.websocket.ChatServer;
4
-import org.mybatis.spring.annotation.MapperScan;
5
 import org.springframework.boot.SpringApplication;
4
 import org.springframework.boot.SpringApplication;
6
 import org.springframework.boot.autoconfigure.SpringBootApplication;
5
 import org.springframework.boot.autoconfigure.SpringBootApplication;
7
 import org.springframework.context.ConfigurableApplicationContext;
6
 import org.springframework.context.ConfigurableApplicationContext;
8
 
7
 
9
 @SpringBootApplication
8
 @SpringBootApplication
10
-@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
11
 public class EstateagentsApplication {
9
 public class EstateagentsApplication {
12
 
10
 
13
 	public static void main(String[] args) {
11
 	public static void main(String[] args) {

+ 18
- 0
src/main/java/com/huiju/estateagents/bo/request/SaveCzOrderRequestBO.java ファイルの表示

1
+package com.huiju.estateagents.bo.request;
2
+
3
+import lombok.Data;
4
+
5
+/**
6
+ * 创建充值订单请求实体
7
+ *
8
+ * @author gusy
9
+ * @date 2020/6/9 14:58
10
+ */
11
+@Data
12
+public class SaveCzOrderRequestBO {
13
+
14
+    /**
15
+     * 充值金额
16
+     */
17
+    private String amount;
18
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/bo/request/SaveRefundOrderRequestBO.java ファイルの表示

1
+package com.huiju.estateagents.bo.request;
2
+
3
+import lombok.Data;
4
+
5
+/**
6
+ * 创建退款订单请求实体
7
+ *
8
+ * @author gusy
9
+ * @date 2020/6/9 14:58
10
+ */
11
+@Data
12
+public class SaveRefundOrderRequestBO {
13
+
14
+    /**
15
+     * 退款金额
16
+     */
17
+    private String amount;
18
+}

+ 9
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java ファイルの表示

892
      */
892
      */
893
     public static final String CHECK_STATUS_CHECKING = "checking";
893
     public static final String CHECK_STATUS_CHECKING = "checking";
894
 
894
 
895
+    /**
896
+     * 微信商户手续费率
897
+     */
898
+    public static final Double WXMCH_PAY_RATE = 0.01;
899
+
900
+    /**
901
+     * 微信商户手续费率-前端展示
902
+     */
903
+    public static final String WXMCH_PAY_RATE_STRING = "1%";
895
 }
904
 }

+ 1
- 0
src/main/java/com/huiju/estateagents/drainage/service/impl/TaDrainageServiceImpl.java ファイルの表示

111
                     taRedPacket.setName(taDrainage.getName());
111
                     taRedPacket.setName(taDrainage.getName());
112
                     taRedPacket.setCreateDate(LocalDateTime.now());
112
                     taRedPacket.setCreateDate(LocalDateTime.now());
113
                     taRedPacket.setStartDate(LocalDateTime.now().plusDays(1));
113
                     taRedPacket.setStartDate(LocalDateTime.now().plusDays(1));
114
+                    taRedPacket.setQrcode(taDrainage.getQrCode());
114
                     taRedPacket.setEndDate(DateUtils.dayToLocalDateime(taDrainage.getEndDate()));
115
                     taRedPacket.setEndDate(DateUtils.dayToLocalDateime(taDrainage.getEndDate()));
115
                     iTaRedPacketService.initializeRedPacket(taRedPacket);
116
                     iTaRedPacketService.initializeRedPacket(taRedPacket);
116
 
117
 

+ 46
- 14
src/main/java/com/huiju/estateagents/redpack/controller/TaOrgOrderController.java ファイルの表示

14
 import com.alibaba.excel.ExcelWriter;
14
 import com.alibaba.excel.ExcelWriter;
15
 import com.alibaba.excel.write.metadata.WriteSheet;
15
 import com.alibaba.excel.write.metadata.WriteSheet;
16
 import com.alibaba.fastjson.JSON;
16
 import com.alibaba.fastjson.JSON;
17
+import com.huiju.estateagents.bo.request.SaveCzOrderRequestBO;
18
+import com.huiju.estateagents.bo.request.SaveRefundOrderRequestBO;
17
 import org.slf4j.Logger;
19
 import org.slf4j.Logger;
18
 import org.slf4j.LoggerFactory;
20
 import org.slf4j.LoggerFactory;
19
 import org.springframework.beans.factory.annotation.Autowired;
21
 import org.springframework.beans.factory.annotation.Autowired;
100
 
102
 
101
     /**
103
     /**
102
      * 订单导出
104
      * 订单导出
105
+     *
103
      * @return
106
      * @return
104
      */
107
      */
105
     @GetMapping(value = "/channel/taOrgOrder/orgOrderExport")
108
     @GetMapping(value = "/channel/taOrgOrder/orgOrderExport")
118
         response.setCharacterEncoding("utf-8");
121
         response.setCharacterEncoding("utf-8");
119
         response.setHeader("Content-disposition", "attachment;filename=订单统计.xlsx");
122
         response.setHeader("Content-disposition", "attachment;filename=订单统计.xlsx");
120
         ExcelWriter excelWriter = null;
123
         ExcelWriter excelWriter = null;
121
-        if (CommConstant.ITEM_TYPE_RECHARGE.equals(orderType)){
124
+        if (CommConstant.ITEM_TYPE_RECHARGE.equals(orderType)) {
122
             excelWriter = EasyExcel.write(response.getOutputStream(), RechargeOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
125
             excelWriter = EasyExcel.write(response.getOutputStream(), RechargeOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
123
-        }else if (CommConstant.ITEM_TYPE_REFUND.equals(orderType)){
126
+        } else if (CommConstant.ITEM_TYPE_REFUND.equals(orderType)) {
124
             excelWriter = EasyExcel.write(response.getOutputStream(), RefundOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
127
             excelWriter = EasyExcel.write(response.getOutputStream(), RefundOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
125
-        } else{
128
+        } else {
126
             excelWriter = EasyExcel.write(response.getOutputStream(), ConsumeOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
129
             excelWriter = EasyExcel.write(response.getOutputStream(), ConsumeOrder.class).registerWriteHandler(new CustomCellWriteHandler()).build();
127
         }
130
         }
128
 
131
 
249
     /**
252
     /**
250
      * 创建充值订单
253
      * 创建充值订单
251
      *
254
      *
252
-     * @param amount
255
+     * @param requestBO
253
      * @param request
256
      * @param request
254
      * @return
257
      * @return
255
      */
258
      */
256
     @RequestMapping(value = "/admin/orgOrder/cz/saveOrder", method = RequestMethod.PUT)
259
     @RequestMapping(value = "/admin/orgOrder/cz/saveOrder", method = RequestMethod.PUT)
257
-    public ResponseBean saveCzOrder(@RequestParam(value = "amount") Double amount, HttpServletRequest request) {
260
+    public ResponseBean saveCzOrder(@RequestBody SaveCzOrderRequestBO requestBO, HttpServletRequest request) {
258
         ResponseBean responseBean = new ResponseBean();
261
         ResponseBean responseBean = new ResponseBean();
259
         try {
262
         try {
260
-            responseBean = iTaOrgOrderService.saveCzOrder(amount, getOrgId(request), getUserId(request), request.getRemoteAddr());
263
+            responseBean = iTaOrgOrderService.saveCzOrder(Double.parseDouble(requestBO.getAmount()), getOrgId(request), getUserId(request), request.getRemoteAddr());
261
         } catch (Exception e) {
264
         } catch (Exception e) {
262
             logger.error("saveCzOrder -=- {}", e);
265
             logger.error("saveCzOrder -=- {}", e);
263
             responseBean.addError(e.getMessage());
266
             responseBean.addError(e.getMessage());
268
     /**
271
     /**
269
      * 创建退款订单
272
      * 创建退款订单
270
      *
273
      *
271
-     * @param amount
274
+     * @param requestBO
272
      * @param request
275
      * @param request
273
      * @return
276
      * @return
274
      */
277
      */
275
     @RequestMapping(value = "/admin/orgOrder/refund/saveOrder", method = RequestMethod.PUT)
278
     @RequestMapping(value = "/admin/orgOrder/refund/saveOrder", method = RequestMethod.PUT)
276
-    public ResponseBean saveRefundOrder(@RequestParam(value = "amount") Double amount, HttpServletRequest request) {
279
+    public ResponseBean saveRefundOrder(@RequestBody SaveRefundOrderRequestBO requestBO, HttpServletRequest request) {
277
         ResponseBean responseBean = new ResponseBean();
280
         ResponseBean responseBean = new ResponseBean();
278
         try {
281
         try {
279
-            responseBean = iTaOrgOrderService.saveRefundOrder(amount, getOrgId(request), getUserId(request));
282
+            responseBean = iTaOrgOrderService.saveRefundOrder(Double.parseDouble(requestBO.getAmount()), getOrgId(request), getUserId(request));
280
         } catch (Exception e) {
283
         } catch (Exception e) {
281
             logger.error("refundOrder -=- {}", e);
284
             logger.error("refundOrder -=- {}", e);
282
             responseBean.addError(e.getMessage());
285
             responseBean.addError(e.getMessage());
372
                                                    @RequestParam(value = "refundStartTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundStartTime,
375
                                                    @RequestParam(value = "refundStartTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundStartTime,
373
                                                    @RequestParam(value = "refundEndTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundEndTime,
376
                                                    @RequestParam(value = "refundEndTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundEndTime,
374
                                                    String orderId,
377
                                                    String orderId,
378
+                                                   String wxOrderId,
379
+                                                   String tradeNo,
375
                                                    String auditStatus,
380
                                                    String auditStatus,
376
                                                    HttpServletRequest request) {
381
                                                    HttpServletRequest request) {
377
         ResponseBean responseBean = new ResponseBean();
382
         ResponseBean responseBean = new ResponseBean();
378
         try {
383
         try {
379
-            responseBean = iTaOrgOrderService.listRefundOrderByCondition(pageNum, pageSize, refundStartTime, refundEndTime, orderId, auditStatus, getOrgId(request));
384
+            responseBean = iTaOrgOrderService.listRefundOrderByCondition(pageNum, pageSize, refundStartTime, refundEndTime, orderId, auditStatus, wxOrderId, tradeNo, getOrgId(request));
380
         } catch (Exception e) {
385
         } catch (Exception e) {
381
             logger.error("refundOrder -=- {}", e);
386
             logger.error("refundOrder -=- {}", e);
382
             responseBean.addError(e.getMessage());
387
             responseBean.addError(e.getMessage());
398
     public void exportRefundOrderByCondition(@RequestParam(value = "refundStartTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundStartTime,
403
     public void exportRefundOrderByCondition(@RequestParam(value = "refundStartTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundStartTime,
399
                                              @RequestParam(value = "refundEndTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundEndTime,
404
                                              @RequestParam(value = "refundEndTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate refundEndTime,
400
                                              String orderId,
405
                                              String orderId,
406
+                                             String wxOrderId,
407
+                                             String tradeNo,
401
                                              String auditStatus,
408
                                              String auditStatus,
402
                                              HttpServletRequest request,
409
                                              HttpServletRequest request,
403
                                              HttpServletResponse response) throws Exception {
410
                                              HttpServletResponse response) throws Exception {
404
         try {
411
         try {
405
-            iTaOrgOrderService.exportRefundOrderByCondition(refundStartTime, refundEndTime, orderId, auditStatus, getOrgId(request), response);
412
+            iTaOrgOrderService.exportRefundOrderByCondition(refundStartTime, refundEndTime, orderId, auditStatus, wxOrderId, tradeNo, getOrgId(request), response);
406
         } catch (Exception e) {
413
         } catch (Exception e) {
407
             logger.error("exportRefundOrderByCondition 异常:", e);
414
             logger.error("exportRefundOrderByCondition 异常:", e);
408
             response.reset();
415
             response.reset();
435
                                                     @RequestParam(value = "startTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startTime,
442
                                                     @RequestParam(value = "startTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startTime,
436
                                                     @RequestParam(value = "endTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endTime,
443
                                                     @RequestParam(value = "endTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endTime,
437
                                                     String orderId,
444
                                                     String orderId,
445
+                                                    String wxOrderId,
446
+                                                    String tradeNo,
438
                                                     Integer status,
447
                                                     Integer status,
439
                                                     String consumeType,
448
                                                     String consumeType,
440
                                                     String phone,
449
                                                     String phone,
441
                                                     HttpServletRequest request) {
450
                                                     HttpServletRequest request) {
442
         ResponseBean responseBean = new ResponseBean();
451
         ResponseBean responseBean = new ResponseBean();
443
         try {
452
         try {
444
-            responseBean = iTaOrgOrderService.listConsumeOrderByCondition(pageNum, pageSize, startTime, endTime, orderId, status, consumeType, phone, getOrgId(request));
453
+            responseBean = iTaOrgOrderService.listConsumeOrderByCondition(pageNum, pageSize, startTime, endTime, orderId, status, consumeType, phone, wxOrderId, tradeNo, getOrgId(request));
445
         } catch (Exception e) {
454
         } catch (Exception e) {
446
             logger.error("listConsumeOrderByCondition -=- {}", e);
455
             logger.error("listConsumeOrderByCondition -=- {}", e);
447
             responseBean.addError(e.getMessage());
456
             responseBean.addError(e.getMessage());
467
     public void exportConsumeOrderByCondition(@RequestParam(value = "startTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startTime,
476
     public void exportConsumeOrderByCondition(@RequestParam(value = "startTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startTime,
468
                                               @RequestParam(value = "endTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endTime,
477
                                               @RequestParam(value = "endTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endTime,
469
                                               String orderId,
478
                                               String orderId,
479
+                                              String wxOrderId,
480
+                                              String tradeNo,
470
                                               Integer status,
481
                                               Integer status,
471
                                               String consumeType,
482
                                               String consumeType,
472
                                               String phone,
483
                                               String phone,
473
                                               HttpServletRequest request,
484
                                               HttpServletRequest request,
474
                                               HttpServletResponse response) throws Exception {
485
                                               HttpServletResponse response) throws Exception {
475
         try {
486
         try {
476
-            iTaOrgOrderService.exportConsumeOrderByCondition(startTime, endTime, orderId, status, consumeType, phone, getOrgId(request), response);
487
+            iTaOrgOrderService.exportConsumeOrderByCondition(startTime, endTime, orderId, status, consumeType, phone, wxOrderId, tradeNo, getOrgId(request), response);
477
         } catch (Exception e) {
488
         } catch (Exception e) {
478
             logger.error("exportConsumeOrderByCondition 异常:", e);
489
             logger.error("exportConsumeOrderByCondition 异常:", e);
479
             response.reset();
490
             response.reset();
486
         }
497
         }
487
     }
498
     }
488
 
499
 
489
-
500
+    /**
501
+     * 根据订单号查询订单状态
502
+     *
503
+     * @param orderId
504
+     * @return
505
+     */
506
+    @RequestMapping(value = "/admin/orgOrder/getByInfo", method = RequestMethod.GET)
507
+    public ResponseBean getOrgOrderInfo(String orderId) {
508
+        ResponseBean responseBean = new ResponseBean();
509
+        try {
510
+            TaOrgOrder result = iTaOrgOrderService.getById(orderId);
511
+            if (result == null) {
512
+                responseBean.addError("fail");
513
+                return responseBean;
514
+            }
515
+            responseBean.addSuccess(result);
516
+        } catch (Exception e) {
517
+            logger.error("getOrgOrderInfo 异常:", e);
518
+            responseBean.addError(e.getMessage());
519
+        }
520
+        return responseBean;
521
+    }
490
 }
522
 }

+ 1
- 2
src/main/java/com/huiju/estateagents/redpack/controller/TaRedPacketHelpController.java ファイルの表示

111
      * @return
111
      * @return
112
      */
112
      */
113
     @RequestMapping(value = "/admin/redPacket/help/{id}", method = RequestMethod.PUT)
113
     @RequestMapping(value = "/admin/redPacket/help/{id}", method = RequestMethod.PUT)
114
-    public ResponseBean taRedPacketHelpUpdate(@PathVariable Integer id,
115
-                                              @RequestBody TaRedPacketHelp taRedPacketHelp) {
114
+    public ResponseBean taRedPacketHelpUpdate(@RequestBody TaRedPacketHelp taRedPacketHelp) {
116
         ResponseBean responseBean = new ResponseBean();
115
         ResponseBean responseBean = new ResponseBean();
117
         try {
116
         try {
118
             responseBean = iTaRedPacketHelpService.updateRedPackHelp(taRedPacketHelp);
117
             responseBean = iTaRedPacketHelpService.updateRedPackHelp(taRedPacketHelp);

+ 11
- 2
src/main/java/com/huiju/estateagents/redpack/entity/TaRedPacketHistory.java ファイルの表示

1
 package com.huiju.estateagents.redpack.entity;
1
 package com.huiju.estateagents.redpack.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
-import java.time.LocalDateTime;
6
-import java.io.Serializable;
7
 import lombok.Data;
6
 import lombok.Data;
8
 import lombok.EqualsAndHashCode;
7
 import lombok.EqualsAndHashCode;
9
 import lombok.experimental.Accessors;
8
 import lombok.experimental.Accessors;
10
 
9
 
10
+import java.io.Serializable;
11
+import java.time.LocalDateTime;
12
+
11
 /**
13
 /**
12
  * <p>
14
  * <p>
13
  * 红包助力人员列表 
15
  * 红包助力人员列表 
64
      */
66
      */
65
     private LocalDateTime createDate;
67
     private LocalDateTime createDate;
66
 
68
 
69
+    @TableField(exist = false)
70
+    private Integer helpPersonNum;
71
+
72
+    @TableField(exist = false)
73
+    private String nickname;
67
 
74
 
75
+    @TableField(exist = false)
76
+    private String avatarurl;
68
 }
77
 }

+ 15
- 7
src/main/java/com/huiju/estateagents/redpack/mapper/TaOrgOrderMapper.java ファイルの表示

83
      * @return
83
      * @return
84
      */
84
      */
85
     List<TaOrgOrder> orderListByConsumeExport(@Param("orderType") String orderType,
85
     List<TaOrgOrder> orderListByConsumeExport(@Param("orderType") String orderType,
86
-                                         @Param("orgId") Integer orgId,
87
-                                         @Param("tradeNo") String tradeNo,
88
-                                         @Param("tradingStatus") String tradingStatus,
89
-                                         @Param("receivePhone") String receivePhone,
90
-                                         @Param("itemType") String itemType,
91
-                                         @Param("startDate") String startDate,
92
-                                         @Param("endDate") String endDate,
86
+                                              @Param("orgId") Integer orgId,
87
+                                              @Param("tradeNo") String tradeNo,
88
+                                              @Param("tradingStatus") String tradingStatus,
89
+                                              @Param("receivePhone") String receivePhone,
90
+                                              @Param("itemType") String itemType,
91
+                                              @Param("startDate") String startDate,
92
+                                              @Param("endDate") String endDate,
93
                                               @Param("miniAppName") String miniAppName);
93
                                               @Param("miniAppName") String miniAppName);
94
 
94
 
95
     /**
95
     /**
153
                                                  @Param("refundStartTime") LocalDate refundStartTime,
153
                                                  @Param("refundStartTime") LocalDate refundStartTime,
154
                                                  @Param("refundEndTime") LocalDate refundEndTime,
154
                                                  @Param("refundEndTime") LocalDate refundEndTime,
155
                                                  @Param("orderId") String orderId,
155
                                                  @Param("orderId") String orderId,
156
+                                                 @Param("wxOrderId") String wxOrderId,
157
+                                                 @Param("tradeNo") String tradeNo,
156
                                                  @Param("auditStatus") String auditStatus,
158
                                                  @Param("auditStatus") String auditStatus,
157
                                                  @Param("orgId") Integer orgId);
159
                                                  @Param("orgId") Integer orgId);
158
 
160
 
169
     List<AccountRefundRecordExport> exportRefundOrderByCondition(@Param("refundStartTime") LocalDate refundStartTime,
171
     List<AccountRefundRecordExport> exportRefundOrderByCondition(@Param("refundStartTime") LocalDate refundStartTime,
170
                                                                  @Param("refundEndTime") LocalDate refundEndTime,
172
                                                                  @Param("refundEndTime") LocalDate refundEndTime,
171
                                                                  @Param("orderId") String orderId,
173
                                                                  @Param("orderId") String orderId,
174
+                                                                 @Param("wxOrderId") String wxOrderId,
175
+                                                                 @Param("tradeNo") String tradeNo,
172
                                                                  @Param("auditStatus") String auditStatus,
176
                                                                  @Param("auditStatus") String auditStatus,
173
                                                                  @Param("orgId") Integer orgId);
177
                                                                  @Param("orgId") Integer orgId);
174
 
178
 
221
                                                   @Param("status") Integer status,
225
                                                   @Param("status") Integer status,
222
                                                   @Param("consumeType") String consumeType,
226
                                                   @Param("consumeType") String consumeType,
223
                                                   @Param("phone") String phone,
227
                                                   @Param("phone") String phone,
228
+                                                  @Param("wxOrderId") String wxOrderId,
229
+                                                  @Param("tradeNo") String tradeNo,
224
                                                   @Param("orgId") Integer orgId);
230
                                                   @Param("orgId") Integer orgId);
225
 
231
 
226
     /**
232
     /**
241
                                                                    @Param("status") Integer status,
247
                                                                    @Param("status") Integer status,
242
                                                                    @Param("consumeType") String consumeType,
248
                                                                    @Param("consumeType") String consumeType,
243
                                                                    @Param("phone") String phone,
249
                                                                    @Param("phone") String phone,
250
+                                                                   @Param("wxOrderId") String wxOrderId,
251
+                                                                   @Param("tradeNo") String tradeNo,
244
                                                                    @Param("orgId") Integer orgId);
252
                                                                    @Param("orgId") Integer orgId);
245
 }
253
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/redpack/mapper/TaRedPacketHistoryMapper.java ファイルの表示

7
 import org.apache.ibatis.annotations.Param;
7
 import org.apache.ibatis.annotations.Param;
8
 import org.springframework.stereotype.Component;
8
 import org.springframework.stereotype.Component;
9
 
9
 
10
+import java.util.List;
11
+
10
 /**
12
 /**
11
  * <p>
13
  * <p>
12
  * 红包助力人员列表  Mapper 接口
14
  * 红包助力人员列表  Mapper 接口
21
 
23
 
22
     IPage<TaRedPacketHistory> listHistoryByCondition(IPage<TaRedPacketHistory> page,
24
     IPage<TaRedPacketHistory> listHistoryByCondition(IPage<TaRedPacketHistory> page,
23
                                                      @Param("activityId") String activityId);
25
                                                      @Param("activityId") String activityId);
26
+
27
+    /**
28
+     * 获取助力排行榜
29
+     * @param activityId
30
+     * @param orgId
31
+     * @return
32
+     */
33
+    List<TaRedPacketHistory> getRanking(String activityId, Integer orgId);
24
 }
34
 }

+ 5
- 4
src/main/java/com/huiju/estateagents/redpack/service/ITaOrgOrderService.java ファイルの表示

131
      * @param orgId
131
      * @param orgId
132
      * @return
132
      * @return
133
      */
133
      */
134
-    ResponseBean listRefundOrderByCondition(Integer pageNum, Integer pageSize, LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, Integer orgId);
134
+    ResponseBean listRefundOrderByCondition(Integer pageNum, Integer pageSize, LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, String wxOrderId,
135
+                                            String tradeNo, Integer orgId);
135
 
136
 
136
     /**
137
     /**
137
      * 导出退款订单列表
138
      * 导出退款订单列表
144
      * @param response
145
      * @param response
145
      * @throws Exception
146
      * @throws Exception
146
      */
147
      */
147
-    void exportRefundOrderByCondition(LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, Integer orgId, HttpServletResponse response) throws Exception;
148
+    void exportRefundOrderByCondition(LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, String wxOrderId,String tradeNo, Integer orgId, HttpServletResponse response) throws Exception;
148
 
149
 
149
     /**
150
     /**
150
      * 条件查询红包发送记录
151
      * 条件查询红包发送记录
175
      * @return
176
      * @return
176
      */
177
      */
177
     ResponseBean listConsumeOrderByCondition(Integer pageNum, Integer pageSize, LocalDate startTime, LocalDate endTime, String orderId, Integer status,
178
     ResponseBean listConsumeOrderByCondition(Integer pageNum, Integer pageSize, LocalDate startTime, LocalDate endTime, String orderId, Integer status,
178
-                                             String consumeType, String phone, Integer orgId);
179
+                                             String consumeType, String phone, String wxOrderId, String tradeNo, Integer orgId);
179
 
180
 
180
     /**
181
     /**
181
      * 导出消费订单列表
182
      * 导出消费订单列表
190
      * @param response
191
      * @param response
191
      * @throws Exception
192
      * @throws Exception
192
      */
193
      */
193
-    void exportConsumeOrderByCondition(LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, Integer orgId, HttpServletResponse response) throws Exception;
194
+    void exportConsumeOrderByCondition(LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, String wxOrderId, String tradeNo, Integer orgId, HttpServletResponse response) throws Exception;
194
 }
195
 }

+ 37
- 15
src/main/java/com/huiju/estateagents/redpack/service/impl/TaOrgOrderServiceImpl.java ファイルの表示

1
 package com.huiju.estateagents.redpack.service.impl;
1
 package com.huiju.estateagents.redpack.service.impl;
2
 
2
 
3
 import com.alibaba.excel.EasyExcel;
3
 import com.alibaba.excel.EasyExcel;
4
+import com.alibaba.fastjson.JSONObject;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
144
 
145
 
145
         //下单
146
         //下单
146
         Map<String, String> data = new HashMap<String, String>();
147
         Map<String, String> data = new HashMap<String, String>();
147
-        data.put("body", "微信支付");
148
+        data.put("body", "wxzf");
148
         //商品号唯一
149
         //商品号唯一
149
         data.put("out_trade_no", taOrgOrder.getTradeNo());
150
         data.put("out_trade_no", taOrgOrder.getTradeNo());
150
-        data.put("device_info", "");
151
+        data.put("device_info", "WEB");
151
         data.put("fee_type", "CNY");
152
         data.put("fee_type", "CNY");
152
         //金额 后台计算
153
         //金额 后台计算
153
         data.put("total_fee", payPrice);
154
         data.put("total_fee", payPrice);
157
         data.put("notify_url", payNotify + CommConstant.ITEM_TYPE_RECHARGE);
158
         data.put("notify_url", payNotify + CommConstant.ITEM_TYPE_RECHARGE);
158
         // 此处指定为APP支付
159
         // 此处指定为APP支付
159
         data.put("trade_type", "NATIVE");
160
         data.put("trade_type", "NATIVE");
161
+        data.put("product_id", taOrgOrder.getOrderId());
160
         Map<String, String> resp = wxpay.unifiedOrder(data);
162
         Map<String, String> resp = wxpay.unifiedOrder(data);
161
         log.info("下单成功:{}", resp);
163
         log.info("下单成功:{}", resp);
162
         if (resp.get("result_code").equalsIgnoreCase(WXPayConstants.FAIL)) {
164
         if (resp.get("result_code").equalsIgnoreCase(WXPayConstants.FAIL)) {
177
             return responseBean;
179
             return responseBean;
178
         }
180
         }
179
 
181
 
182
+        // 计算支付金额
183
+        Double realAmount = amount * (1 + CommConstant.WXMCH_PAY_RATE);
184
+
180
         // 1.创建订单主表信息
185
         // 1.创建订单主表信息
181
         TaOrgOrder taOrgOrder = new TaOrgOrder();
186
         TaOrgOrder taOrgOrder = new TaOrgOrder();
182
         taOrgOrder.setOrgId(orgId);
187
         taOrgOrder.setOrgId(orgId);
183
         taOrgOrder.setTradeNo(CommonUtils.generateTradeNo(CommConstant.RECHARGE));
188
         taOrgOrder.setTradeNo(CommonUtils.generateTradeNo(CommConstant.RECHARGE));
184
-        taOrgOrder.setAmount(CommonUtils.yuanToFen(amount));
189
+        taOrgOrder.setAmount(CommonUtils.yuanToFen(realAmount));
185
         taOrgOrder.setCreateDate(LocalDateTime.now());
190
         taOrgOrder.setCreateDate(LocalDateTime.now());
191
+        taOrgOrder.setExpiryDate(LocalDateTime.now().plusMinutes(30));
192
+        taOrgOrder.setRemark("线上充值");
186
         taOrgOrder.setStatus(CommConstant.STATUS_NORMAL);
193
         taOrgOrder.setStatus(CommConstant.STATUS_NORMAL);
187
         taOrgOrder.setTradingStatus(CommConstant.TRADING_STATUS_PROCESSING);
194
         taOrgOrder.setTradingStatus(CommConstant.TRADING_STATUS_PROCESSING);
188
         taOrgOrder.setIsOffline(false);
195
         taOrgOrder.setIsOffline(false);
198
         taOrgOrderDetail.setOrderId(taOrgOrder.getOrderId());
205
         taOrgOrderDetail.setOrderId(taOrgOrder.getOrderId());
199
         taOrgOrderDetail.setOrgId(orgId);
206
         taOrgOrderDetail.setOrgId(orgId);
200
         taOrgOrderDetail.setItemType(CommConstant.ITEM_TYPE_RECHARGE);
207
         taOrgOrderDetail.setItemType(CommConstant.ITEM_TYPE_RECHARGE);
201
-        taOrgOrderDetail.setAmount(CommonUtils.yuanToFen(amount));
202
-        taOrgOrderDetail.setUnitPrice(CommonUtils.yuanToFen(amount));
208
+        taOrgOrderDetail.setAmount(CommonUtils.yuanToFen(realAmount));
209
+        taOrgOrderDetail.setUnitPrice(CommonUtils.yuanToFen(realAmount));
203
         taOrgOrderDetail.setQuantity(1);
210
         taOrgOrderDetail.setQuantity(1);
204
         taOrgOrderDetail.setStatus(CommConstant.STATUS_NORMAL);
211
         taOrgOrderDetail.setStatus(CommConstant.STATUS_NORMAL);
205
         if (taOrgOrderDetailMapper.insert(taOrgOrderDetail) < 1) {
212
         if (taOrgOrderDetailMapper.insert(taOrgOrderDetail) < 1) {
209
         }
216
         }
210
 
217
 
211
         // 3.请求微信接口获取支付二维码
218
         // 3.请求微信接口获取支付二维码
212
-        return payUnifiedOrder(taOrgOrder, ip);
219
+        ResponseBean payResult = payUnifiedOrder(taOrgOrder, ip);
220
+        if (ResponseBean.CODE_SUCCESS != payResult.getCode()) {
221
+            return payResult;
222
+        }
223
+
224
+        JSONObject obj = new JSONObject();
225
+        obj.put("amount", amount);
226
+        obj.put("realAmount", realAmount);
227
+        obj.put("serviceFee", amount * CommConstant.WXMCH_PAY_RATE);
228
+        obj.put("mchPayRate", CommConstant.WXMCH_PAY_RATE_STRING);
229
+        obj.put("payQrCode", payResult.getData());
230
+        obj.put("orderInfo", taOrgOrder);
231
+        responseBean.addSuccess(obj);
232
+        return responseBean;
213
     }
233
     }
214
 
234
 
215
     @Override
235
     @Override
229
         taOrgOrder.setTradeNo(CommonUtils.generateTradeNo(CommConstant.REFUND));
249
         taOrgOrder.setTradeNo(CommonUtils.generateTradeNo(CommConstant.REFUND));
230
         taOrgOrder.setAmount(CommonUtils.yuanToFen(amount));
250
         taOrgOrder.setAmount(CommonUtils.yuanToFen(amount));
231
         taOrgOrder.setCreateDate(LocalDateTime.now());
251
         taOrgOrder.setCreateDate(LocalDateTime.now());
252
+        taOrgOrder.setExpiryDate(LocalDateTime.now().plusDays(7));
253
+        taOrgOrder.setRemark("线上退款");
232
         taOrgOrder.setStatus(CommConstant.STATUS_NORMAL);
254
         taOrgOrder.setStatus(CommConstant.STATUS_NORMAL);
233
         taOrgOrder.setTradingStatus(CommConstant.TRADING_STATUS_PROCESSING);
255
         taOrgOrder.setTradingStatus(CommConstant.TRADING_STATUS_PROCESSING);
234
         taOrgOrder.setIsOffline(false);
256
         taOrgOrder.setIsOffline(false);
272
             return responseBean;
294
             return responseBean;
273
         }
295
         }
274
 
296
 
275
-        responseBean.addSuccess("success");
297
+        responseBean.addSuccess(taOrgOrder);
276
         return responseBean;
298
         return responseBean;
277
     }
299
     }
278
 
300
 
306
     }
328
     }
307
 
329
 
308
     @Override
330
     @Override
309
-    public ResponseBean listRefundOrderByCondition(Integer pageNum, Integer pageSize, LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, Integer orgId) {
331
+    public ResponseBean listRefundOrderByCondition(Integer pageNum, Integer pageSize, LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, String wxOrderId, String tradeNo, Integer orgId) {
310
         ResponseBean responseBean = new ResponseBean();
332
         ResponseBean responseBean = new ResponseBean();
311
         IPage<TaOrgOrder> pg = new Page<>(pageNum, pageSize);
333
         IPage<TaOrgOrder> pg = new Page<>(pageNum, pageSize);
312
-        pg = taOrgOrderMapper.listRefundOrderByCondition(pg, refundStartTime, refundEndTime, orderId, auditStatus, orgId);
334
+        pg = taOrgOrderMapper.listRefundOrderByCondition(pg, refundStartTime, refundEndTime, orderId, wxOrderId, tradeNo, auditStatus, orgId);
313
 
335
 
314
         if (CollectionUtils.isNotEmpty(pg.getRecords())) {
336
         if (CollectionUtils.isNotEmpty(pg.getRecords())) {
315
             pg.getRecords().stream().forEach(r -> {
337
             pg.getRecords().stream().forEach(r -> {
324
     }
346
     }
325
 
347
 
326
     @Override
348
     @Override
327
-    public void exportRefundOrderByCondition(LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, Integer orgId, HttpServletResponse response) throws Exception {
349
+    public void exportRefundOrderByCondition(LocalDate refundStartTime, LocalDate refundEndTime, String orderId, String auditStatus, String wxOrderId, String tradeNo, Integer orgId, HttpServletResponse response) throws Exception {
328
         response.setContentType("application/octet-stream");
350
         response.setContentType("application/octet-stream");
329
         response.setCharacterEncoding("utf-8");
351
         response.setCharacterEncoding("utf-8");
330
-        List<AccountRefundRecordExport> records = taOrgOrderMapper.exportRefundOrderByCondition(refundStartTime, refundEndTime, orderId, auditStatus, orgId);
352
+        List<AccountRefundRecordExport> records = taOrgOrderMapper.exportRefundOrderByCondition(refundStartTime, refundEndTime, orderId, wxOrderId, tradeNo, auditStatus, orgId);
331
         String fileName = URLEncoder.encode("退款订单", "UTF-8");
353
         String fileName = URLEncoder.encode("退款订单", "UTF-8");
332
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
354
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
333
         EasyExcel.write(response.getOutputStream(), AccountRefundRecordExport.class).sheet("退款订单").doWrite(records);
355
         EasyExcel.write(response.getOutputStream(), AccountRefundRecordExport.class).sheet("退款订单").doWrite(records);
342
     }
364
     }
343
 
365
 
344
     @Override
366
     @Override
345
-    public ResponseBean listConsumeOrderByCondition(Integer pageNum, Integer pageSize, LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, Integer orgId) {
367
+    public ResponseBean listConsumeOrderByCondition(Integer pageNum, Integer pageSize, LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, String wxOrderId, String tradeNo, Integer orgId) {
346
         ResponseBean responseBean = new ResponseBean();
368
         ResponseBean responseBean = new ResponseBean();
347
         IPage<TaOrgOrder> pg = new Page<>(pageNum, pageSize);
369
         IPage<TaOrgOrder> pg = new Page<>(pageNum, pageSize);
348
-        responseBean.addSuccess(taOrgOrderMapper.listConsumeOrderByCondition(pg, startTime, endTime, orderId, status, consumeType, phone, orgId));
370
+        responseBean.addSuccess(taOrgOrderMapper.listConsumeOrderByCondition(pg, startTime, endTime, orderId, status, consumeType, phone, wxOrderId, tradeNo, orgId));
349
         return responseBean;
371
         return responseBean;
350
     }
372
     }
351
 
373
 
352
     @Override
374
     @Override
353
-    public void exportConsumeOrderByCondition(LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, Integer orgId, HttpServletResponse response) throws Exception {
375
+    public void exportConsumeOrderByCondition(LocalDate startTime, LocalDate endTime, String orderId, Integer status, String consumeType, String phone, String wxOrderId, String tradeNo, Integer orgId, HttpServletResponse response) throws Exception {
354
         response.setContentType("application/octet-stream");
376
         response.setContentType("application/octet-stream");
355
         response.setCharacterEncoding("utf-8");
377
         response.setCharacterEncoding("utf-8");
356
-        List<AccountConsumeRecordExport> records = taOrgOrderMapper.exportConsumeOrderByCondition(startTime, endTime, orderId, status, consumeType, phone, orgId);
378
+        List<AccountConsumeRecordExport> records = taOrgOrderMapper.exportConsumeOrderByCondition(startTime, endTime, orderId, status, consumeType, wxOrderId, tradeNo, phone, orgId);
357
         String fileName = URLEncoder.encode("消费订单", "UTF-8");
379
         String fileName = URLEncoder.encode("消费订单", "UTF-8");
358
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
380
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
359
         EasyExcel.write(response.getOutputStream(), AccountConsumeRecordExport.class).sheet("消费订单").doWrite(records);
381
         EasyExcel.write(response.getOutputStream(), AccountConsumeRecordExport.class).sheet("消费订单").doWrite(records);

+ 1
- 1
src/main/java/com/huiju/estateagents/redpack/service/impl/TaRedPacketHelpServiceImpl.java ファイルの表示

86
             taRedPacketHelp.setEndDate(taRedPacket.getEndDate());
86
             taRedPacketHelp.setEndDate(taRedPacket.getEndDate());
87
             taRedPacketHelp.setActivityEndTip(taRedPacket.getActivityEndTip());
87
             taRedPacketHelp.setActivityEndTip(taRedPacket.getActivityEndTip());
88
         }
88
         }
89
-        responseBean.addSuccess(taRedPacket);
89
+        responseBean.addSuccess(taRedPacketHelp);
90
         return responseBean;
90
         return responseBean;
91
     }
91
     }
92
 }
92
 }

+ 64
- 3
src/main/java/com/huiju/estateagents/third/controller/WxRedpackController.java ファイルの表示

90
         return service;
90
         return service;
91
     }
91
     }
92
 
92
 
93
+    /**
94
+     * 根据personid查询这个人需要的信息
95
+     * @param mpAppid
96
+     * @param request
97
+     * @return
98
+     */
99
+    @GetMapping("/third/activity/{mpAppid}/personInfo")
100
+    public ResponseBean getPersonInfo(@PathVariable String mpAppid, @RequestParam String personId,@RequestParam String appid, HttpServletRequest request) {
101
+        WxMpService wxService = getWxMpService();
102
+        if (!wxService.switchover(mpAppid)) {
103
+            throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
104
+        }
105
+        Map<String,Object> map = new HashMap<>();
106
+        try {
107
+            //获取H5项目相关信息
108
+            QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
109
+
110
+            taThirdPartyMiniappConfigQueryWrapper.eq("appid", appid);
111
+            TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
112
+            if (null == taThirdPartyMiniappConfig){
113
+                return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
114
+            }
115
+            //插入公众号人员信息并插入表
116
+            map = iTaThirdPartyMiniappConfigService.getPersonInfo(mpAppid, taThirdPartyMiniappConfig.getTargetId(), personId);
117
+        } catch (Exception e) {
118
+//            e.printStackTrace();
119
+            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
120
+        }
121
+        return ResponseBean.success(map);
122
+    }
123
+
93
     /**
124
     /**
94
      * 我要参加 活动接口
125
      * 我要参加 活动接口
95
      * @param mpAppid
126
      * @param mpAppid
123
     /**
154
     /**
124
      * 帮他助力 接口
155
      * 帮他助力 接口
125
      * @param mpAppid
156
      * @param mpAppid
126
-     * @param mpPersonId
157
+     * @param personId
127
      * @param request
158
      * @param request
128
      * @return
159
      * @return
129
      */
160
      */
130
     @PostMapping("/third/activity/{mpAppid}/help")
161
     @PostMapping("/third/activity/{mpAppid}/help")
131
-    public ResponseBean helpActivity(@PathVariable String mpAppid, @RequestParam String mpPersonId, @RequestParam String sponsorPersonId,@RequestParam String appid, HttpServletRequest request) {
162
+    public ResponseBean helpActivity(@PathVariable String mpAppid, @RequestParam String personId, @RequestParam String sponsorPersonId,@RequestParam String appid, HttpServletRequest request) {
132
         WxMpService wxService = getWxMpService();
163
         WxMpService wxService = getWxMpService();
133
         if (!wxService.switchover(mpAppid)) {
164
         if (!wxService.switchover(mpAppid)) {
134
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
165
             throw new IllegalArgumentException(String.format("未找到对应appid=[%s]的配置,请核实!", mpAppid));
141
         if (null == taThirdPartyMiniappConfig){
172
         if (null == taThirdPartyMiniappConfig){
142
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
173
             return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
143
         }
174
         }
175
+
176
+        if (personId.equals(sponsorPersonId)){
177
+            return ResponseBean.error("自己不能助力自己",ResponseBean.ERROR_UNAVAILABLE);
178
+        }
179
+
144
         try {
180
         try {
145
-            ResponseBean res = iTaThirdPartyMiniappConfigService.helpActivity(mpAppid, mpPersonId, sponsorPersonId, taThirdPartyMiniappConfig.getTargetId(),taThirdPartyMiniappConfig.getOrgId());
181
+            ResponseBean res = iTaThirdPartyMiniappConfigService.helpActivity(mpAppid, personId, sponsorPersonId, taThirdPartyMiniappConfig.getTargetId(),taThirdPartyMiniappConfig.getOrgId());
146
             return res;
182
             return res;
147
         }catch (Exception e){
183
         }catch (Exception e){
148
             e.printStackTrace();
184
             e.printStackTrace();
149
             return ResponseBean.error("程序出错请联系运营人员",ResponseBean.ERROR_ILLEGAL_PARAMS);
185
             return ResponseBean.error("程序出错请联系运营人员",ResponseBean.ERROR_ILLEGAL_PARAMS);
150
         }
186
         }
151
     }
187
     }
188
+
189
+    /**
190
+     * 获取此活动的排行榜
191
+     * @param appid
192
+     * @param request
193
+     * @return
194
+     */
195
+    @GetMapping("/third/activity/ranking")
196
+    public ResponseBean getRanking(@RequestParam String appid, HttpServletRequest request) {
197
+        try {
198
+            //获取H5项目相关信息
199
+            QueryWrapper<TaThirdPartyMiniappConfig> taThirdPartyMiniappConfigQueryWrapper = new QueryWrapper<>();
200
+
201
+            taThirdPartyMiniappConfigQueryWrapper.eq("appid", appid);
202
+            TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = iTaThirdPartyMiniappConfigService.getOne(taThirdPartyMiniappConfigQueryWrapper);
203
+            if (null == taThirdPartyMiniappConfig){
204
+                return ResponseBean.error("不存在的H5活动",ResponseBean.ERROR_UNAVAILABLE);
205
+            }
206
+            //获取活动的排行榜
207
+            return iTaThirdPartyMiniappConfigService.getRanking(taThirdPartyMiniappConfig.getTargetId(),taThirdPartyMiniappConfig.getOrgId());
208
+        } catch (Exception e) {
209
+//            e.printStackTrace();
210
+            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
211
+        }
212
+    }
152
 }
213
 }

+ 17
- 0
src/main/java/com/huiju/estateagents/third/service/ITaThirdPartyMiniappConfigService.java ファイルの表示

54
 	 * @return
54
 	 * @return
55
 	 */
55
 	 */
56
 	ResponseBean helpActivity(String mpAppid, String mpPersonId, String sponsorPersonId, String targetId, Integer orgId);
56
 	ResponseBean helpActivity(String mpAppid, String mpPersonId, String sponsorPersonId, String targetId, Integer orgId);
57
+
58
+	/**
59
+	 * 获取活动排行榜
60
+	 * @param targetId
61
+	 * @param orgId
62
+	 * @return
63
+	 */
64
+    ResponseBean getRanking(String targetId, Integer orgId);
65
+
66
+	/**
67
+	 * 根据personiD获取相关信息
68
+	 * @param mpAppid
69
+	 * @param targetId
70
+	 * @param personId
71
+	 * @return
72
+	 */
73
+	Map<String, Object> getPersonInfo(String mpAppid, String targetId, String personId);
57
 }
74
 }

+ 86
- 7
src/main/java/com/huiju/estateagents/third/service/impl/TaThirdPartyMiniappConfigServiceImpl.java ファイルの表示

189
 		queryWrapper.eq("miniapp_person_id",taMpMiniapp.getMiniappPersonId());
189
 		queryWrapper.eq("miniapp_person_id",taMpMiniapp.getMiniappPersonId());
190
 		TaRedPacketPerson mineRedPacketPerson = taRedPacketPersonMapper.selectOne(queryWrapper);
190
 		TaRedPacketPerson mineRedPacketPerson = taRedPacketPersonMapper.selectOne(queryWrapper);
191
 		map.put("mineRedPacketPerson",mineRedPacketPerson);
191
 		map.put("mineRedPacketPerson",mineRedPacketPerson);
192
+
193
+		//查看我的爆红助力列表
194
+		QueryWrapper<TaRedPacketHistory> historyQueryWrapper = new QueryWrapper<>();
195
+		historyQueryWrapper.eq("activity_id",taRedPacket.getActivityId());
196
+		historyQueryWrapper.eq("org_id",taRedPacket.getOrgId());
197
+		historyQueryWrapper.eq("target_mp_person",taMpMiniapp.getMpPersonId());
198
+		historyQueryWrapper.eq("target_miniapp_person",taMpMiniapp.getMiniappPersonId());
199
+		List<TaRedPacketHistory> taRedPacketHistories = taRedPacketHistoryMapper.selectList(historyQueryWrapper);
200
+		map.put("taRedPacketHistories",taRedPacketHistories);
201
+
202
+		//根据活动id查询这个活动的助力规则
203
+		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
204
+		map.put("taRedPacketHelp",taRedPacketHelp);
205
+
192
 		//token
206
 		//token
193
 		Map<Object, Object> tokenMap = new HashMap<>();
207
 		Map<Object, Object> tokenMap = new HashMap<>();
194
 		tokenMap.put("openId", accessToken.getOpenId());
208
 		tokenMap.put("openId", accessToken.getOpenId());
264
 	 * 助力活动接口
278
 	 * 助力活动接口
265
 	 *
279
 	 *
266
 	 * @param mpAppid 公众号appid
280
 	 * @param mpAppid 公众号appid
267
-	 * @param mpPersonId 公众号personId
281
+	 * @param personId 小程序personId
268
 	 * @param sponsorPersonId 公众号发起人id
282
 	 * @param sponsorPersonId 公众号发起人id
269
 	 * @param drainageId H5活动id
283
 	 * @param drainageId H5活动id
270
 	 * @param orgId 小程序id
284
 	 * @param orgId 小程序id
271
 	 * @return
285
 	 * @return
272
 	 */
286
 	 */
273
 	@Override
287
 	@Override
274
-	public ResponseBean helpActivity(String mpAppid, String mpPersonId, String sponsorPersonId, String drainageId, Integer orgId) {
288
+	public ResponseBean helpActivity(String mpAppid, String personId, String sponsorPersonId, String drainageId, Integer orgId) {
275
 		//第一步根据drainggeid查询出红包表对应的记录
289
 		//第一步根据drainggeid查询出红包表对应的记录
276
 		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
290
 		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
277
 		//第二步查询出这个H5对应的活动
291
 		//第二步查询出这个H5对应的活动
285
 		}
299
 		}
286
 
300
 
287
 		//查看这个人绑定的小程序用户
301
 		//查看这个人绑定的小程序用户
288
-		TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", mpPersonId));
302
+		TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("miniapp_person_id", personId));
289
 
303
 
290
 		//查询被助力者的绑定的小程序用户
304
 		//查询被助力者的绑定的小程序用户
291
-		TaMpMiniapp parentMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("mp_person_id", sponsorPersonId));
305
+		TaMpMiniapp parentMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("miniapp_person_id", sponsorPersonId));
292
 
306
 
293
 		//根据活动id查询这个活动的助力规则
307
 		//根据活动id查询这个活动的助力规则
294
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
308
 		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
295
 		
309
 		
296
 		//助力
310
 		//助力
297
 		String result = saveRedPacketHistory(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId,mpAppid);
311
 		String result = saveRedPacketHistory(taMpMiniapp, parentMpMiniapp, taRedPacketHelp, orgId,mpAppid);
298
-		if (result.equals("success")){
299
-			ResponseBean.error(result,ResponseBean.ERROR_ILLEGAL_PARAMS);
312
+		if (!result.equals("success")){
313
+			return ResponseBean.error(result,ResponseBean.ERROR_ILLEGAL_PARAMS);
300
 		}
314
 		}
301
 
315
 
302
 		return ResponseBean.success(taRedPacketHelp.getSuccessTip());
316
 		return ResponseBean.success(taRedPacketHelp.getSuccessTip());
303
 	}
317
 	}
304
 
318
 
319
+	/**
320
+	 * 获取活动排行榜
321
+	 *
322
+	 * @param drainageId
323
+	 * @param orgId
324
+	 * @return
325
+	 */
326
+	@Override
327
+	public ResponseBean getRanking(String drainageId, Integer orgId) {
328
+		//第一步根据drainggeid查询出红包表对应的记录
329
+		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
330
+		//第二步查询出这个H5对应的活动
331
+		List<TaRedPacketHistory> taRedPacketHistoryList = taRedPacketHistoryMapper.getRanking(taDrainage.getActivityId(),orgId);
332
+		return ResponseBean.success(taRedPacketHistoryList);
333
+	}
334
+
335
+	/**
336
+	 * 根据personiD获取相关信息
337
+	 *
338
+	 * @param mpAppid
339
+	 * @param drainageId
340
+	 * @param personId
341
+	 * @return
342
+	 */
343
+	@Override
344
+	public Map<String, Object> getPersonInfo(String mpAppid, String drainageId, String personId) {
345
+		Map<String,Object> map = new HashMap<>();
346
+		//查看这个人是否绑定了小程序用户
347
+		TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(new QueryWrapper<TaMpMiniapp>().eq("miniapp_person_id", personId));
348
+
349
+		//我的小程序信息
350
+		TaPerson minePerson = taPersonMapper.selectById(personId);
351
+		map.put("minePerson",minePerson);
352
+
353
+		//第一步根据drainggeid查询出红包表对应的记录
354
+		TaDrainage taDrainage = taDrainageMapper.selectById(drainageId);
355
+		//第二步查询出这个H5对应的活动
356
+		TaRedPacket taRedPacket = taRedPacketMapper.selectById(taDrainage.getActivityId());
357
+		//活动信息
358
+		map.put("taRedPacket",taRedPacket);
359
+
360
+		//是否我的红包助力报名信息
361
+		QueryWrapper<TaRedPacketPerson> queryWrapper = new QueryWrapper<>();
362
+		queryWrapper.eq("activity_id",taRedPacket.getActivityId());
363
+		queryWrapper.eq("org_id",taRedPacket.getOrgId());
364
+		queryWrapper.eq("mp_person_id",taMpMiniapp.getMpPersonId());
365
+		queryWrapper.eq("miniapp_person_id",taMpMiniapp.getMiniappPersonId());
366
+		TaRedPacketPerson mineRedPacketPerson = taRedPacketPersonMapper.selectOne(queryWrapper);
367
+		map.put("mineRedPacketPerson",mineRedPacketPerson);
368
+
369
+		//根据活动id查询这个活动的助力规则
370
+		TaRedPacketHelp taRedPacketHelp = taRedPacketHelpMapper.selectById(taDrainage.getActivityId());
371
+		map.put("taRedPacketHelp",taRedPacketHelp);
372
+
373
+		//查看我的爆红助力列表
374
+		QueryWrapper<TaRedPacketHistory> historyQueryWrapper = new QueryWrapper<>();
375
+		historyQueryWrapper.eq("activity_id",taRedPacket.getActivityId());
376
+		historyQueryWrapper.eq("org_id",taRedPacket.getOrgId());
377
+		historyQueryWrapper.eq("target_mp_person",taMpMiniapp.getMpPersonId());
378
+		historyQueryWrapper.eq("target_miniapp_person",taMpMiniapp.getMiniappPersonId());
379
+		List<TaRedPacketHistory> taRedPacketHistories = taRedPacketHistoryMapper.selectList(historyQueryWrapper);
380
+		map.put("taRedPacketHistories",taRedPacketHistories);
381
+		return map;
382
+	}
383
+
305
 	private synchronized String saveRedPacketHistory(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId, String mpAppid) {
384
 	private synchronized String saveRedPacketHistory(TaMpMiniapp taMpMiniapp, TaMpMiniapp parentMpMiniapp, TaRedPacketHelp taRedPacketHelp, Integer orgId, String mpAppid) {
306
 		//查看我是否助力过
385
 		//查看我是否助力过
307
 		QueryWrapper<TaRedPacketHistory> queryWrapper = new QueryWrapper();
386
 		QueryWrapper<TaRedPacketHistory> queryWrapper = new QueryWrapper();
398
 				.remark(taRedPacketClient.getRemark())//备注
477
 				.remark(taRedPacketClient.getRemark())//备注
399
 				.reOpenid(parentMpPerson.getMpOpenid())//接受红包的用户openid
478
 				.reOpenid(parentMpPerson.getMpOpenid())//接受红包的用户openid
400
 
479
 
401
-				.sceneId("")//场景id
480
+				.sceneId("PRODUCT_2")//场景id
402
 				.sendName(taRedPacketClient.getMchName())//红包发送者名称
481
 				.sendName(taRedPacketClient.getMchName())//红包发送者名称
403
 				.totalAmount(redPackageMoney)//付款金额,单位分
482
 				.totalAmount(redPackageMoney)//付款金额,单位分
404
 				.totalNum(1)//红包发放总人数
483
 				.totalNum(1)//红包发放总人数

+ 18
- 6
src/main/resources/mapper/redpack/TaOrgOrderMapper.xml ファイルの表示

269
         SELECT
269
         SELECT
270
             t.*,
270
             t.*,
271
             t3.audit_status,
271
             t3.audit_status,
272
-            t3.audit_result,
272
+            t3.audit_result
273
         FROM
273
         FROM
274
             ta_org_order t
274
             ta_org_order t
275
         INNER JOIN ta_org_order_detail t2 ON t.order_id = t2.order_id AND t2.item_type = 'refund'
275
         INNER JOIN ta_org_order_detail t2 ON t.order_id = t2.order_id AND t2.item_type = 'refund'
280
             <if test=" orderId != null and orderId != ''">
280
             <if test=" orderId != null and orderId != ''">
281
                 AND t.order_id like concat( '%',#{orderId},'%')
281
                 AND t.order_id like concat( '%',#{orderId},'%')
282
             </if>
282
             </if>
283
+            <if test = " tradeNo != null and tradeNo != ''">
284
+                AND t.trade_no like concat( '%',#{tradeNo},'%')
285
+            </if>
286
+            <if test = " wxOrderId != null and wxOrderId != ''">
287
+                AND t.wx_order_id like concat ('%',#{wxOrderId},'%')
288
+            </if>
283
             <if test=" auditStatus != null and auditStatus != ''">
289
             <if test=" auditStatus != null and auditStatus != ''">
284
                 AND t3.audit_status = #{auditStatus}
290
                 AND t3.audit_status = #{auditStatus}
285
             </if>
291
             </if>
286
-            <if test=" refundStartTime!= null">
292
+            <if test=" refundStartTime != null">
287
                 AND t.create_date &gt;= #{refundStartTime}
293
                 AND t.create_date &gt;= #{refundStartTime}
288
             </if>
294
             </if>
289
             <if test=" refundEndTime != null">
295
             <if test=" refundEndTime != null">
310
             <if test=" orderId != null and orderId != ''">
316
             <if test=" orderId != null and orderId != ''">
311
                 AND t.order_id like concat( '%',#{orderId},'%')
317
                 AND t.order_id like concat( '%',#{orderId},'%')
312
             </if>
318
             </if>
319
+            <if test = " tradeNo != null and tradeNo != ''">
320
+                AND t.trade_no like concat( '%',#{tradeNo},'%')
321
+            </if>
322
+            <if test = " wxOrderId != null and wxOrderId != ''">
323
+                AND t.wx_order_id like concat ('%',#{wxOrderId},'%')
324
+            </if>
313
             <if test=" auditStatus != null and auditStatus != ''">
325
             <if test=" auditStatus != null and auditStatus != ''">
314
                 AND t3.audit_status = #{auditStatus}
326
                 AND t3.audit_status = #{auditStatus}
315
             </if>
327
             </if>
397
             <if test = " startTime != null ">
409
             <if test = " startTime != null ">
398
                 AND t.create_date &gt;= #{startTime}
410
                 AND t.create_date &gt;= #{startTime}
399
             </if>
411
             </if>
400
-            <if test = " entartTime != null and">
401
-                AND t.create_date &lt;= #{entartTime}
412
+            <if test = " endTime != null">
413
+                AND t.create_date &lt;= #{endTime}
402
             </if>
414
             </if>
403
             <if test = " status != null">
415
             <if test = " status != null">
404
                 AND t2.status = #{status}
416
                 AND t2.status = #{status}
447
             <if test = " startTime != null ">
459
             <if test = " startTime != null ">
448
                 AND t.create_date &gt;= #{startTime}
460
                 AND t.create_date &gt;= #{startTime}
449
             </if>
461
             </if>
450
-            <if test = " entartTime != null and">
451
-                AND t.create_date &lt;= #{entartTime}
462
+            <if test = " endTime != null">
463
+                AND t.create_date &lt;= #{endTime}
452
             </if>
464
             </if>
453
             <if test = " status != null">
465
             <if test = " status != null">
454
                 AND t2.status = #{status}
466
                 AND t2.status = #{status}

+ 12
- 1
src/main/resources/mapper/redpack/TaRedPacketHistoryMapper.xml ファイルの表示

3
 <mapper namespace="com.huiju.estateagents.redpack.mapper.TaRedPacketHistoryMapper">
3
 <mapper namespace="com.huiju.estateagents.redpack.mapper.TaRedPacketHistoryMapper">
4
 
4
 
5
 
5
 
6
-
6
+    <select id="getRanking" resultType="com.huiju.estateagents.redpack.entity.TaRedPacketHistory">
7
+        SELECT
8
+        t.helpPersonNum as help_person_num,
9
+        t.target_miniapp_person,
10
+        p.nickname,
11
+        p.avatarurl
12
+        FROM
13
+        ( SELECT count( 1 ) AS helpPersonNum, target_miniapp_person FROM ta_red_packet_history WHERE activity_id = #{activityId} AND org_id = #{orgId} GROUP BY target_miniapp_person ) t
14
+        LEFT JOIN ta_person p ON t.target_miniapp_person = p.person_id
15
+        ORDER BY
16
+        t.helpPersonNum DESC
17
+    </select>
7
 </mapper>
18
 </mapper>