魏超 vor 5 Jahren
Ursprung
Commit
c1ae556e12

+ 6
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Datei anzeigen

@@ -853,6 +853,12 @@ public class CommConstant {
853 853
      */
854 854
     public static final String ITEM_TYPE_REFUND = "refund";
855 855
 
856
+    /**
857
+     * 明细类型--退费
858
+     */
859
+    public static final String ITEM_TYPE_REJECT = "reject";
860
+
861
+
856 862
     /**
857 863
      * 明细类型--红包
858 864
      */

+ 49
- 0
src/main/java/com/huiju/estateagents/redpack/controller/TaOrgAccountController.java Datei anzeigen

@@ -20,7 +20,10 @@ import com.huiju.estateagents.base.BaseController;
20 20
 import com.huiju.estateagents.base.ResponseBean;
21 21
 import com.huiju.estateagents.common.StringUtils;
22 22
 import com.huiju.estateagents.redpack.entity.TaOrgAccount;
23
+import com.huiju.estateagents.redpack.entity.TaOrgOrder;
24
+import com.huiju.estateagents.redpack.entity.TaOrgRefundApplication;
23 25
 import com.huiju.estateagents.redpack.service.ITaOrgAccountService;
26
+import com.huiju.estateagents.redpack.service.ITaOrgOrderService;
24 27
 
25 28
 /**
26 29
  * <p>
@@ -39,6 +42,8 @@ public class TaOrgAccountController extends BaseController {
39 42
     @Autowired
40 43
     public ITaOrgAccountService iTaOrgAccountService;
41 44
 
45
+    @Autowired
46
+    public ITaOrgOrderService iTaOrgOrderService;
42 47
 
43 48
     /**
44 49
      * 分页查询列表
@@ -195,4 +200,48 @@ public class TaOrgAccountController extends BaseController {
195 200
         }
196 201
         return responseBean;
197 202
     }
203
+
204
+    /**
205
+     * 订单退款
206
+     * @param id
207
+     * @param refundApplication
208
+     * @param request
209
+     * @return
210
+     */
211
+    @RequestMapping(value = "/taOrgOrder/refund/{id}")
212
+    public ResponseBean taOrgOrderRefund(@PathVariable String id, @RequestBody TaOrgRefundApplication refundApplication,
213
+                                           HttpServletRequest request){
214
+        ResponseBean responseBean = new ResponseBean();
215
+        try {
216
+            Integer userId = getUserId(request);
217
+            responseBean = iTaOrgOrderService.refundOrder(id, refundApplication,  2149);
218
+        }catch (Exception e){
219
+            e.printStackTrace();
220
+            logger.error("taOrgAccountRefund -=- {}",e.toString());
221
+            responseBean.addError(e.getMessage());
222
+        }
223
+        return responseBean;
224
+    }
225
+
226
+    /**
227
+     * 订单驳回
228
+     * @param id
229
+     * @param refundApplication
230
+     * @param request
231
+     * @return
232
+     */
233
+    @RequestMapping(value = "/taOrgOrder/reject/{id}")
234
+    public ResponseBean taOrgOrderReject(@PathVariable String id, @RequestBody TaOrgRefundApplication refundApplication,
235
+                                         HttpServletRequest request){
236
+        ResponseBean responseBean = new ResponseBean();
237
+        try {
238
+            Integer userId = getUserId(request);
239
+            responseBean = iTaOrgOrderService.rejectOrder(id, refundApplication,  2149);
240
+        }catch (Exception e){
241
+            e.printStackTrace();
242
+            logger.error("taOrgAccountRefund -=- {}",e.toString());
243
+            responseBean.addError(e.getMessage());
244
+        }
245
+        return responseBean;
246
+    }
198 247
 }

+ 4
- 1
src/main/java/com/huiju/estateagents/redpack/entity/TaOrgRefundApplication.java Datei anzeigen

@@ -2,8 +2,10 @@ package com.huiju.estateagents.redpack.entity;
2 2
 
3 3
 import java.time.LocalDateTime;
4 4
 import java.io.Serializable;
5
+import java.util.List;
5 6
 
6 7
 import com.baomidou.mybatisplus.annotation.IdType;
8
+import com.baomidou.mybatisplus.annotation.TableField;
7 9
 import com.baomidou.mybatisplus.annotation.TableId;
8 10
 
9 11
 import lombok.Data;
@@ -91,5 +93,6 @@ public class TaOrgRefundApplication implements Serializable {
91 93
      */
92 94
     private Integer status;
93 95
 
94
-
96
+    @TableField(exist = false)
97
+    private List<String> certificateList;
95 98
 }

+ 19
- 0
src/main/java/com/huiju/estateagents/redpack/service/ITaOrgOrderService.java Datei anzeigen

@@ -1,7 +1,9 @@
1 1
 package com.huiju.estateagents.redpack.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
4 5
 import com.huiju.estateagents.redpack.entity.TaOrgOrder;
6
+import com.huiju.estateagents.redpack.entity.TaOrgRefundApplication;
5 7
 
6 8
 /**
7 9
  * <p>
@@ -12,5 +14,22 @@ import com.huiju.estateagents.redpack.entity.TaOrgOrder;
12 14
  * @since 2020-06-03
13 15
  */
14 16
 public interface ITaOrgOrderService extends IService<TaOrgOrder> {
17
+    /**
18
+     * 订单退款
19
+     * @param id
20
+     * @param refundApplication
21
+     * @param userId
22
+     * @return
23
+     */
24
+    ResponseBean refundOrder(String id, TaOrgRefundApplication refundApplication, Integer userId);
15 25
 
26
+
27
+    /**
28
+     * 订单驳回
29
+     * @param id
30
+     * @param refundApplication
31
+     * @param userId
32
+     * @return
33
+     */
34
+    ResponseBean rejectOrder(String id, TaOrgRefundApplication refundApplication, Integer userId);
16 35
 }

+ 6
- 36
src/main/java/com/huiju/estateagents/redpack/service/impl/TaOrgAccountServiceImpl.java Datei anzeigen

@@ -78,7 +78,9 @@ public class TaOrgAccountServiceImpl extends ServiceImpl<TaOrgAccountMapper, TaO
78 78
 
79 79
         //更新系统账户充值金额
80 80
         TaOrgAccount rechargeAccount = assembleRechargeAccount(accountId, taOrgAccount);
81
-        int rechargeAccountInsertResult = taOrgAccountMapper.updateById(rechargeAccount);
81
+        synchronized (this){
82
+            taOrgAccountMapper.updateById(rechargeAccount);
83
+        }
82 84
 
83 85
         //新增订单记录
84 86
         TaOrgOrder taOrgOrder = assembleTaOrgOrder(orgId, taOrgAccount.getRechargeAmount(), userId, CommConstant.ITEM_TYPE_RECHARGE);
@@ -100,8 +102,7 @@ public class TaOrgAccountServiceImpl extends ServiceImpl<TaOrgAccountMapper, TaO
100 102
             });
101 103
         }
102 104
 
103
-        if (rechargeAccountInsertResult < 1 ||
104
-                taOrgOrderInsertResult < 1 ||
105
+        if (    taOrgOrderInsertResult < 1 ||
105 106
                 taOrgOrderDetailInsertResult < 1 ||
106 107
                 taOrgAccountDetailedListInsertResult < 1){
107 108
             responseBean.addError("充值失败");
@@ -145,26 +146,10 @@ public class TaOrgAccountServiceImpl extends ServiceImpl<TaOrgAccountMapper, TaO
145 146
             });
146 147
         }
147 148
 
148
-        //更新退款申请状态
149
-        TaOrgRefundApplication taOrgRefundApplication = assembleAcctApplication(userId);
150
-        QueryWrapper<TaOrgRefundApplication> taOrgRefundApplicationQueryWrapper = new QueryWrapper<>();
151
-        taOrgRefundApplicationQueryWrapper.eq("org_id", taOrgAccount.getOrgId());
152
-        int taOrgRefundApplicationUpdateResult = taOrgRefundApplicationMapper.update(taOrgRefundApplication, taOrgRefundApplicationQueryWrapper);
153
-
154
-        //更新账户冻结记录
155
-        TaOrgAccountBlocked taOrgAccountBlocked = new TaOrgAccountBlocked();
156
-        taOrgAccountBlocked.setStatus(CommConstant.STATUS_UNACCALIMED);
157
-        QueryWrapper<TaOrgAccountBlocked> taOrgAccountBlockedQueryWrapper = new QueryWrapper<>();
158
-        taOrgAccountBlockedQueryWrapper.eq("account_id", taOrgAccount.getAccountId());
159
-        taOrgAccountBlockedQueryWrapper.eq("org_id", taOrgAccount.getOrgId());
160
-        int taOrgAccountBlockedUpdateResult = taOrgAccountBlockedMapper.update(taOrgAccountBlocked, taOrgAccountBlockedQueryWrapper);
161
-
162 149
         if (taOrgOrderInsertResult < 1 ||
163 150
                 taOrgOrderInsertResult < 1 ||
164 151
                 taOrgOrderDetailInsertResult < 1 ||
165
-                taOrgAccountDetailedListInsertResult < 1 ||
166
-                taOrgRefundApplicationUpdateResult < 1 ||
167
-                taOrgAccountBlockedUpdateResult < 1){
152
+                taOrgAccountDetailedListInsertResult < 1){
168 153
             responseBean.addError("退费失败");
169 154
             return responseBean;
170 155
         }
@@ -220,6 +205,7 @@ public class TaOrgAccountServiceImpl extends ServiceImpl<TaOrgAccountMapper, TaO
220 205
 
221 206
         return taOrgAccountCertificateList;
222 207
     }
208
+
223 209
     /**
224 210
      * 构造订单
225 211
      * @param orgId
@@ -307,22 +293,6 @@ public class TaOrgAccountServiceImpl extends ServiceImpl<TaOrgAccountMapper, TaO
307 293
         return refundAccount;
308 294
     }
309 295
 
310
-    /**
311
-     * 退费审核通过
312
-     * @param userId
313
-     * @return
314
-     */
315
-    private TaOrgRefundApplication assembleAcctApplication(Integer userId){
316
-        TaUser taUser = selectUserById(userId);
317
-
318
-        TaOrgRefundApplication taOrgRefundApplication = new TaOrgRefundApplication();
319
-        taOrgRefundApplication.setAuditStatus("同意");
320
-        taOrgRefundApplication.setAuditorId(userId);
321
-        taOrgRefundApplication.setAuditorName(taUser.getUserName());
322
-
323
-        return taOrgRefundApplication;
324
-    }
325
-
326 296
     public TaOrgAccount selectTaOrgAccountById(String accountId){
327 297
         QueryWrapper<TaOrgAccount> selectOneQuery = new QueryWrapper<>();
328 298
         selectOneQuery.eq("account_id", accountId);

+ 298
- 0
src/main/java/com/huiju/estateagents/redpack/service/impl/TaOrgOrderServiceImpl.java Datei anzeigen

@@ -1,10 +1,35 @@
1 1
 package com.huiju.estateagents.redpack.service.impl;
2 2
 
3
+import java.time.LocalDateTime;
4
+import java.util.ArrayList;
5
+import java.util.List;
6
+
7
+import org.apache.commons.collections.CollectionUtils;
8
+import org.springframework.beans.factory.annotation.Autowired;
3 9
 import org.springframework.stereotype.Service;
10
+import org.springframework.transaction.annotation.Transactional;
4 11
 
12
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 13
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
14
+import com.huiju.estateagents.base.ResponseBean;
15
+import com.huiju.estateagents.center.taUser.entity.TaUser;
16
+import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
17
+import com.huiju.estateagents.common.CommConstant;
18
+import com.huiju.estateagents.common.CommonUtils;
19
+import com.huiju.estateagents.redpack.entity.TaOrgAccount;
20
+import com.huiju.estateagents.redpack.entity.TaOrgAccountBlocked;
21
+import com.huiju.estateagents.redpack.entity.TaOrgAccountCertificate;
22
+import com.huiju.estateagents.redpack.entity.TaOrgAccountDetailedList;
6 23
 import com.huiju.estateagents.redpack.entity.TaOrgOrder;
24
+import com.huiju.estateagents.redpack.entity.TaOrgOrderDetail;
25
+import com.huiju.estateagents.redpack.entity.TaOrgRefundApplication;
26
+import com.huiju.estateagents.redpack.mapper.TaOrgAccountBlockedMapper;
27
+import com.huiju.estateagents.redpack.mapper.TaOrgAccountCertificateMapper;
28
+import com.huiju.estateagents.redpack.mapper.TaOrgAccountDetailedListMapper;
29
+import com.huiju.estateagents.redpack.mapper.TaOrgAccountMapper;
30
+import com.huiju.estateagents.redpack.mapper.TaOrgOrderDetailMapper;
7 31
 import com.huiju.estateagents.redpack.mapper.TaOrgOrderMapper;
32
+import com.huiju.estateagents.redpack.mapper.TaOrgRefundApplicationMapper;
8 33
 import com.huiju.estateagents.redpack.service.ITaOrgOrderService;
9 34
 
10 35
 /**
@@ -18,4 +43,277 @@ import com.huiju.estateagents.redpack.service.ITaOrgOrderService;
18 43
 @Service
19 44
 public class TaOrgOrderServiceImpl extends ServiceImpl<TaOrgOrderMapper, TaOrgOrder> implements ITaOrgOrderService {
20 45
 
46
+    @Autowired
47
+    private TaOrgAccountMapper taOrgAccountMapper;
48
+
49
+    @Autowired
50
+    private TaOrgOrderMapper taOrgOrderMapper;
51
+
52
+    @Autowired
53
+    private TaOrgOrderDetailMapper taOrgOrderDetailMapper;
54
+
55
+    @Autowired
56
+    private TaOrgAccountDetailedListMapper taOrgAccountDetailedListMapper;
57
+
58
+    @Autowired
59
+    private TaOrgRefundApplicationMapper taOrgRefundApplicationMapper;
60
+
61
+    @Autowired
62
+    private TaOrgAccountBlockedMapper taOrgAccountBlockedMapper;
63
+
64
+    @Autowired
65
+    private TaOrgAccountCertificateMapper taOrgAccountCertificateMapper;
66
+
67
+    @Autowired
68
+    private TaUserMapper taUserMapper;
69
+
70
+
71
+    @Override
72
+    @Transactional(rollbackFor = {RuntimeException.class})
73
+    public ResponseBean refundOrder(String id, TaOrgRefundApplication refundApplication, Integer userId) {
74
+        ResponseBean responseBean = new ResponseBean();
75
+
76
+        //订单退款申请,更新账户的实际余额
77
+        TaOrgAccount taOrgAccount = assembleRefundAccount(refundApplication.getOrgId(), refundApplication, CommConstant.ITEM_TYPE_REFUND);
78
+        taOrgAccountMapper.updateById(taOrgAccount);
79
+
80
+        //新增订单记录
81
+        TaOrgOrder taOrgOrder = assembleTaOrgOrder(refundApplication.getOrgId(), taOrgAccount.getRechargeAmount(), userId);
82
+        int taOrgOrderInsertResult = taOrgOrderMapper.insert(taOrgOrder);
83
+
84
+        //新增关联订单明细
85
+        TaOrgOrderDetail taOrgOrderDetail = assembleTaOrgOrderDetail(taOrgOrder.getOrderId(), refundApplication.getOrgId(), taOrgAccount.getRechargeAmount());
86
+        int taOrgOrderDetailInsertResult = taOrgOrderDetailMapper.insert(taOrgOrderDetail);
87
+
88
+        //新建账户消费流水
89
+        TaOrgAccountDetailedList taOrgAccountDetailedList = assembleAccountDetailList(refundApplication, userId);
90
+        int taOrgAccountDetailedListInsertResult = taOrgAccountDetailedListMapper.insert(taOrgAccountDetailedList);
91
+
92
+        //更新账户退款申请
93
+        TaOrgRefundApplication updateRefundApplication = assembleRefundApplication(userId, CommConstant.ITEM_TYPE_REJECT, refundApplication);
94
+        QueryWrapper<TaOrgRefundApplication> taOrgRefundApplicationQueryWrapper = new QueryWrapper<>();
95
+        taOrgRefundApplicationQueryWrapper.eq("org_id", refundApplication.getOrgId());
96
+        int taOrgRefundApplicationUpdateResult = taOrgRefundApplicationMapper.update(updateRefundApplication, taOrgRefundApplicationQueryWrapper);
97
+
98
+        //更新账户冻结记录
99
+        int taOrgAccountBlockedUpdateResult = updateOrgAccountBlock(refundApplication);
100
+
101
+        //插入凭证记录
102
+        if (CollectionUtils.isNotEmpty(refundApplication.getCertificateList())){
103
+            List<TaOrgAccountCertificate> taOrgAccountCertificateList = assembleAccountCertificate(refundApplication.getOrgId(), taOrgAccount, taOrgAccountDetailedList.getSerialNo(), taOrgOrder.getOrderId(), userId, CommConstant.ITEM_TYPE_REFUND);
104
+            taOrgAccountCertificateList.forEach(e -> {
105
+                taOrgAccountCertificateMapper.insert(e);
106
+            });
107
+        }
108
+
109
+        if (taOrgOrderInsertResult < 1 ||
110
+                taOrgOrderDetailInsertResult < 1 ||
111
+                taOrgAccountDetailedListInsertResult < 1 ||
112
+                taOrgRefundApplicationUpdateResult < 1 ||
113
+                taOrgAccountBlockedUpdateResult < 1){
114
+            responseBean.addError("订单退款失败");
115
+            return responseBean;
116
+        }
117
+
118
+        return responseBean;
119
+    }
120
+
121
+    @Override
122
+    @Transactional(rollbackFor = {RuntimeException.class})
123
+    public ResponseBean rejectOrder(String id, TaOrgRefundApplication refundApplication, Integer userId) {
124
+        ResponseBean responseBean = new ResponseBean();
125
+
126
+        //退款订单驳回,更新账户的可用余额
127
+        TaOrgAccount taOrgAccount = assembleRefundAccount(refundApplication.getOrgId(), refundApplication, CommConstant.ITEM_TYPE_REJECT);
128
+        taOrgAccountMapper.updateById(taOrgAccount);
129
+
130
+        //更新账户冻结记录
131
+        int taOrgAccountBlockedUpdateResult = updateOrgAccountBlock(refundApplication);
132
+
133
+        //更新退款申请记录
134
+        TaOrgRefundApplication updateRefundApplication = assembleRefundApplication(userId, CommConstant.ITEM_TYPE_REJECT, refundApplication);
135
+        QueryWrapper<TaOrgRefundApplication> taOrgRefundApplicationQueryWrapper = new QueryWrapper<>();
136
+        taOrgRefundApplicationQueryWrapper.eq("org_id", refundApplication.getOrgId());
137
+        int taOrgRefundApplicationUpdateResult = taOrgRefundApplicationMapper.update(updateRefundApplication, taOrgRefundApplicationQueryWrapper);
138
+
139
+        if (taOrgAccountBlockedUpdateResult < 1 ||
140
+                taOrgRefundApplicationUpdateResult < 1){
141
+            responseBean.addError("驳回失败");
142
+            return responseBean;
143
+        }
144
+
145
+        return responseBean;
146
+
147
+    }
148
+
149
+    /**
150
+     * 构造充值账户
151
+     * @param orgId
152
+     * @param refundApplication
153
+     * @return
154
+     */
155
+    private TaOrgAccount assembleRefundAccount(Integer orgId, TaOrgRefundApplication refundApplication, String operateType){
156
+        TaOrgAccount selectOneAccount = selectTaOrgAccountById(orgId);
157
+
158
+        TaOrgAccount rechargeAccount = new TaOrgAccount();
159
+        rechargeAccount.setAccountId(selectOneAccount.getAccountId());
160
+
161
+        if (CommConstant.ITEM_TYPE_REFUND.equals(operateType)){
162
+            rechargeAccount.setRealBalance(selectOneAccount.getRealBalance() - refundApplication.getAmount());
163
+            rechargeAccount.setTotalRefund(selectOneAccount.getTotalRefund() + refundApplication.getAmount());
164
+        }
165
+
166
+        if (CommConstant.ITEM_TYPE_REJECT.equals(operateType)){
167
+            rechargeAccount.setAvailableBalance(refundApplication.getAmount());
168
+        }
169
+
170
+        rechargeAccount.setModifyDate(LocalDateTime.now());
171
+
172
+        return rechargeAccount;
173
+    }
174
+
175
+    /**
176
+     * 构造订单
177
+     * @param orgId
178
+     * @param amount
179
+     * @param userId
180
+     * @return
181
+     */
182
+    private TaOrgOrder assembleTaOrgOrder(Integer orgId, Integer amount, Integer userId){
183
+
184
+        TaUser taUser = selectUserById(userId);
185
+        TaOrgOrder taOrgOrder = new TaOrgOrder();
186
+        taOrgOrder.setOrgId(orgId);
187
+        taOrgOrder.setTradeNo(CommonUtils.generateTradeNo(CommConstant.RECHARGE));
188
+        taOrgOrder.setAmount(amount);
189
+        taOrgOrder.setCreateDate(LocalDateTime.now());
190
+        taOrgOrder.setExpiryDate(LocalDateTime.now());
191
+        taOrgOrder.setRemark("线下订单退费");
192
+        taOrgOrder.setTradingStatus(String.valueOf(CommConstant.STATUS_NORMAL));
193
+        taOrgOrder.setIsOffline(true);
194
+        taOrgOrder.setUserId(userId);
195
+        taOrgOrder.setUserName(taUser.getUserName());
196
+
197
+        return taOrgOrder;
198
+    }
199
+
200
+    /**
201
+     * 构造交订单详情信息
202
+     * @param orderId
203
+     * @param orgId
204
+     * @param amount
205
+     * @return
206
+     */
207
+    private TaOrgOrderDetail assembleTaOrgOrderDetail(String orderId, Integer orgId, Integer amount){
208
+        TaOrgOrderDetail taOrgOrderDetail = new TaOrgOrderDetail();
209
+
210
+        taOrgOrderDetail.setOrderId(orderId);
211
+        taOrgOrderDetail.setOrgId(orgId);
212
+        taOrgOrderDetail.setItemType(CommConstant.ITEM_TYPE_REFUND);
213
+        taOrgOrderDetail.setAmount(amount);
214
+
215
+        return taOrgOrderDetail;
216
+    }
217
+
218
+    /**
219
+     * 构造消费流水记录
220
+     * @param refundApplication
221
+     * @param userId
222
+     * @return
223
+     */
224
+    private TaOrgAccountDetailedList assembleAccountDetailList(TaOrgRefundApplication refundApplication, Integer userId){
225
+
226
+        TaUser taUser = selectUserById(userId);
227
+        TaOrgAccount taOrgAccount = selectTaOrgAccountById(refundApplication.getOrgId());
228
+
229
+        TaOrgAccountDetailedList taOrgAccountDetailed = new TaOrgAccountDetailedList();
230
+        taOrgAccountDetailed.setAccountId(taOrgAccount.getAccountId());
231
+        taOrgAccountDetailed.setOrgId(refundApplication.getOrgId());
232
+        taOrgAccountDetailed.setAmount(refundApplication.getAmount());
233
+        //1收入,-1支出
234
+        taOrgAccountDetailed.setSignType(CommConstant.STATUS_DELETE);
235
+        taOrgAccountDetailed.setRemark("线下订单退费");
236
+        taOrgAccountDetailed.setOrderId(refundApplication.getOrderId());
237
+        taOrgAccountDetailed.setUserId(userId);
238
+        taOrgAccountDetailed.setUserName(taUser.getUserName());
239
+
240
+        return taOrgAccountDetailed;
241
+    }
242
+
243
+    /**
244
+     * 构造交易凭证信息
245
+     * @param orgId
246
+     * @param taOrgAccount
247
+     * @param accountSerialNo
248
+     * @param orderId
249
+     * @param userId
250
+     * @return
251
+     */
252
+    public List<TaOrgAccountCertificate> assembleAccountCertificate(Integer orgId, TaOrgAccount taOrgAccount, Integer accountSerialNo, String orderId, Integer userId, String consumeType){
253
+        TaUser taUser = selectUserById(userId);
254
+        List<TaOrgAccountCertificate> taOrgAccountCertificateList = new ArrayList<>();
255
+
256
+        taOrgAccount.getCertificateList().forEach(e -> {
257
+            TaOrgAccountCertificate taOrgAccountCertificate = new TaOrgAccountCertificate();
258
+            taOrgAccountCertificate.setOrgId(orgId);
259
+            taOrgAccountCertificate.setAccountId(taOrgAccount.getAccountId());
260
+            taOrgAccountCertificate.setAccountSerialNo(accountSerialNo);
261
+            taOrgAccountCertificate.setOrderId(orderId);
262
+            taOrgAccountCertificate.setConsumptionType(CommConstant.ITEM_TYPE_RECHARGE.equals(consumeType) ? CommConstant.ITEM_TYPE_RECHARGE : CommConstant.ITEM_TYPE_REFUND);
263
+            taOrgAccountCertificate.setRemark(CommConstant.ITEM_TYPE_RECHARGE.equals(consumeType) ? "线下缴费" : "线下退费");
264
+            taOrgAccountCertificate.setUrl(e);
265
+            taOrgAccountCertificate.setCreateDate(LocalDateTime.now());
266
+            taOrgAccountCertificate.setUserId(userId);
267
+            taOrgAccountCertificate.setUserName(taUser.getUserName());
268
+            taOrgAccountCertificateList.add(taOrgAccountCertificate);
269
+        });
270
+
271
+        return taOrgAccountCertificateList;
272
+    }
273
+
274
+    /**
275
+     * 构造订单退款申请
276
+     * @param userId
277
+     * @return
278
+     */
279
+    private TaOrgRefundApplication assembleRefundApplication(Integer userId, String operateType, TaOrgRefundApplication refundApplication) {
280
+        TaUser taUser = selectUserById(userId);
281
+        TaOrgRefundApplication taOrgRefundApplication = new TaOrgRefundApplication();
282
+        taOrgRefundApplication.setAuditorId(userId);
283
+        taOrgRefundApplication.setAuditorName(taUser.getUserName());
284
+        taOrgRefundApplication.setAuditResult(CommConstant.ITEM_TYPE_REFUND.equals(operateType) ? "退款成功" : refundApplication.getAuditResult());
285
+        taOrgRefundApplication.setAuditStatus(CommConstant.ITEM_TYPE_REFUND.equals(operateType) ? "同意" : "不同意");
286
+
287
+        return taOrgRefundApplication;
288
+    }
289
+
290
+    private Integer updateOrgAccountBlock(TaOrgRefundApplication refundApplication){
291
+        //更新账户冻结记录
292
+        TaOrgAccountBlocked taOrgAccountBlocked = new TaOrgAccountBlocked();
293
+        taOrgAccountBlocked.setStatus(CommConstant.STATUS_UNACCALIMED);
294
+        QueryWrapper<TaOrgAccountBlocked> taOrgAccountBlockedQueryWrapper = new QueryWrapper<>();
295
+        taOrgAccountBlockedQueryWrapper.eq("org_id", refundApplication.getOrgId());
296
+        return taOrgAccountBlockedMapper.update(taOrgAccountBlocked, taOrgAccountBlockedQueryWrapper);
297
+    }
298
+
299
+    public TaOrgAccount selectTaOrgAccountById(Integer orgId){
300
+        QueryWrapper<TaOrgAccount> selectOneQuery = new QueryWrapper<>();
301
+        selectOneQuery.eq("org_id", orgId);
302
+        TaOrgAccount selectOneAccount = taOrgAccountMapper.selectOne(selectOneQuery);
303
+        return selectOneAccount;
304
+    }
305
+
306
+    /**
307
+     * 获取操作人
308
+     * @param userId
309
+     * @return
310
+     */
311
+    public TaUser selectUserById(Integer userId){
312
+        //获取操作人
313
+        QueryWrapper<TaUser> taUserQueryWrapper = new QueryWrapper<>();
314
+        taUserQueryWrapper.eq("user_id", userId);
315
+        TaUser taUser = taUserMapper.selectOne(taUserQueryWrapper);
316
+        return taUser;
317
+    }
318
+
21 319
 }