|
@@ -3,7 +3,6 @@ package com.yohoufo.order.service.impl; |
|
@@ -3,7 +3,6 @@ package com.yohoufo.order.service.impl; |
3
|
import com.yohobuy.ufo.model.enums.StoredSellerStatusEnum;
|
3
|
import com.yohobuy.ufo.model.enums.StoredSellerStatusEnum;
|
4
|
import com.yohobuy.ufo.model.order.bo.SellerBo;
|
4
|
import com.yohobuy.ufo.model.order.bo.SellerBo;
|
5
|
import com.yohobuy.ufo.model.order.bo.SellerLevelFuncBo;
|
5
|
import com.yohobuy.ufo.model.order.bo.SellerLevelFuncBo;
|
6
|
-import com.yohobuy.ufo.model.order.common.CommonEnterStageLevel;
|
|
|
7
|
import com.yohobuy.ufo.model.order.common.EntrySellerType;
|
6
|
import com.yohobuy.ufo.model.order.common.EntrySellerType;
|
8
|
import com.yohobuy.ufo.model.order.common.SellerEnterApplyStatus;
|
7
|
import com.yohobuy.ufo.model.order.common.SellerEnterApplyStatus;
|
9
|
import com.yohobuy.ufo.model.order.common.SuperEnterStageLevel;
|
8
|
import com.yohobuy.ufo.model.order.common.SuperEnterStageLevel;
|
|
@@ -166,19 +165,12 @@ public class SellerEnterApplyService { |
|
@@ -166,19 +165,12 @@ public class SellerEnterApplyService { |
166
|
seac.setUid(uid);
|
165
|
seac.setUid(uid);
|
167
|
seac.setOrderCode(orderCode);
|
166
|
seac.setOrderCode(orderCode);
|
168
|
List<SellerEnterApply> seaList = sellerEnterApplyMapper.selectByUOCET(seac);
|
167
|
List<SellerEnterApply> seaList = sellerEnterApplyMapper.selectByUOCET(seac);
|
169
|
- upgradeLevel(uid, orderCode, left, seaList);
|
168
|
+ doAudit(uid, orderCode, left, seaList);
|
170
|
}
|
169
|
}
|
171
|
|
170
|
|
172
|
|
171
|
|
173
|
- public void upgradeLevel(int uid, Long orderCode, BigDecimal left, List<SellerEnterApply> seaList){
|
|
|
174
|
- if (CollectionUtils.isEmpty(seaList)){
|
|
|
175
|
- logger.warn("in upgradeLevel no record so that it's only charge order, uid {} orderCode {}",
|
|
|
176
|
- uid, orderCode);
|
|
|
177
|
- // return;
|
|
|
178
|
- }
|
|
|
179
|
- if (seaList.size()>1){
|
|
|
180
|
- logger.warn("in upgradeLevel one orderCode mapped multiple apply,uid {} orderCode {}", uid, orderCode);
|
|
|
181
|
- }
|
172
|
+ public void doAudit(int uid, Long orderCode, BigDecimal left, List<SellerEnterApply> seaList){
|
|
|
173
|
+
|
182
|
//卖家包装类
|
174
|
//卖家包装类
|
183
|
SellerWrapper sellerWrapper = new SellerWrapper(uid,logger)
|
175
|
SellerWrapper sellerWrapper = new SellerWrapper(uid,logger)
|
184
|
.storedSellerDataSource(storedSellerMapper::selectByUid)
|
176
|
.storedSellerDataSource(storedSellerMapper::selectByUid)
|
|
@@ -190,10 +182,39 @@ public class SellerEnterApplyService { |
|
@@ -190,10 +182,39 @@ public class SellerEnterApplyService { |
190
|
public void upgradeLevel(SellerWrapper sellerWrapper,
|
182
|
public void upgradeLevel(SellerWrapper sellerWrapper,
|
191
|
Long orderCode, BigDecimal left, List<SellerEnterApply> seaList){
|
183
|
Long orderCode, BigDecimal left, List<SellerEnterApply> seaList){
|
192
|
int uid = sellerWrapper.getUid();
|
184
|
int uid = sellerWrapper.getUid();
|
193
|
- logger.info("in upgradeLevel uid {} orderCode {} left wallet {}",
|
|
|
194
|
- uid, orderCode, left );
|
185
|
+ //是否有申请记录
|
|
|
186
|
+ //有两种:
|
|
|
187
|
+ // 1. 充值有订单号,根据订单号查询,
|
|
|
188
|
+ // 1.1 升级时充值有申请记录
|
|
|
189
|
+ // 1.2 普通充值没有申请记录
|
|
|
190
|
+ // 2. client 直接升级,根据请求的目标身份
|
|
|
191
|
+ //existApply 为false 只会是普通充值订单
|
|
|
192
|
+ boolean existApply = CollectionUtils.isNotEmpty(seaList);
|
|
|
193
|
+ logger.info("in upgradeLevel uid {} orderCode {} left wallet {} existApply {}",
|
|
|
194
|
+ uid, orderCode, left, existApply );
|
|
|
195
|
+ if (existApply){
|
|
|
196
|
+ processApplyOrder(sellerWrapper, left, orderCode, seaList);
|
|
|
197
|
+ }else {
|
|
|
198
|
+ processCommonChargeOrder(sellerWrapper, orderCode);
|
|
|
199
|
+ }
|
|
|
200
|
+ }
|
|
|
201
|
+
|
|
|
202
|
+ /**
|
|
|
203
|
+ * 充值订单处理
|
|
|
204
|
+ * @param sellerWrapper
|
|
|
205
|
+ * @param left
|
|
|
206
|
+ * @param orderCode
|
|
|
207
|
+ * @param seaList
|
|
|
208
|
+ */
|
|
|
209
|
+ private void processApplyOrder(SellerWrapper sellerWrapper,BigDecimal left,
|
|
|
210
|
+ Long orderCode, List<SellerEnterApply> seaList){
|
|
|
211
|
+ int uid = sellerWrapper.getUid();
|
|
|
212
|
+ if (seaList.size() > 1) {
|
|
|
213
|
+ logger.warn("in upgradeLevel one orderCode mapped multiple apply,uid {} orderCode {}", uid, orderCode);
|
|
|
214
|
+ }
|
195
|
//持久化的入驻信息
|
215
|
//持久化的入驻信息
|
196
|
StoredSeller pss = sellerWrapper.getStoredSeller();
|
216
|
StoredSeller pss = sellerWrapper.getStoredSeller();
|
|
|
217
|
+ boolean noStoredSeller = Objects.isNull(pss);
|
197
|
SellerBo sellerBo = sellerWrapper.build();
|
218
|
SellerBo sellerBo = sellerWrapper.build();
|
198
|
//当前身份
|
219
|
//当前身份
|
199
|
EntrySellerType currentEST = sellerBo.getEntrySellerType();
|
220
|
EntrySellerType currentEST = sellerBo.getEntrySellerType();
|
|
@@ -211,8 +232,6 @@ public class SellerEnterApplyService { |
|
@@ -211,8 +232,6 @@ public class SellerEnterApplyService { |
211
|
//当前身份和申请时身份是否一致
|
232
|
//当前身份和申请时身份是否一致
|
212
|
Integer preEnterType;
|
233
|
Integer preEnterType;
|
213
|
boolean isMatchedET = Objects.equals(preEnterType=msea.getPreEnterType(), currentEnterType);
|
234
|
boolean isMatchedET = Objects.equals(preEnterType=msea.getPreEnterType(), currentEnterType);
|
214
|
- boolean noStoredSeller = Objects.isNull(pss);
|
|
|
215
|
-
|
|
|
216
|
logger.info("in upgradeLevel ready pass apply and add StoredSeller, uid {} orderCode {} currentEnterType {} PreEnterType {} noStoredSeller {} target Level {} isMatchedET {}",
|
235
|
logger.info("in upgradeLevel ready pass apply and add StoredSeller, uid {} orderCode {} currentEnterType {} PreEnterType {} noStoredSeller {} target Level {} isMatchedET {}",
|
217
|
uid, orderCode, currentEnterType,preEnterType, noStoredSeller, level, isMatchedET);
|
236
|
uid, orderCode, currentEnterType,preEnterType, noStoredSeller, level, isMatchedET);
|
218
|
if(Objects.equals(currentEnterType, EntrySellerType.NOT_ENTRY.getCode())){
|
237
|
if(Objects.equals(currentEnterType, EntrySellerType.NOT_ENTRY.getCode())){
|
|
@@ -221,7 +240,6 @@ public class SellerEnterApplyService { |
|
@@ -221,7 +240,6 @@ public class SellerEnterApplyService { |
221
|
if (!isPassedApply){
|
240
|
if (!isPassedApply){
|
222
|
passApply(msea);
|
241
|
passApply(msea);
|
223
|
}
|
242
|
}
|
224
|
-
|
|
|
225
|
if (noStoredSeller && isMatchedET){
|
243
|
if (noStoredSeller && isMatchedET){
|
226
|
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
|
244
|
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
|
227
|
storedSellerService.addUserAsStoredSeller(uid, targetEst, slfb);
|
245
|
storedSellerService.addUserAsStoredSeller(uid, targetEst, slfb);
|
|
@@ -230,10 +248,10 @@ public class SellerEnterApplyService { |
|
@@ -230,10 +248,10 @@ public class SellerEnterApplyService { |
230
|
uid, orderCode);
|
248
|
uid, orderCode);
|
231
|
}
|
249
|
}
|
232
|
|
250
|
|
233
|
- }else if (Objects.equals(currentEnterType, EntrySellerType.COMMON.getCode())) {
|
251
|
+ }else if (Objects.equals(currentEnterType, EntrySellerType.COMMON.getCode())) {
|
234
|
//普通入驻 -> 超级 ,1. apply 状态 ,2. enter_seller 修改type & func list
|
252
|
//普通入驻 -> 超级 ,1. apply 状态 ,2. enter_seller 修改type & func list
|
235
|
passApply(msea);
|
253
|
passApply(msea);
|
236
|
-
|
254
|
+ //
|
237
|
if (!noStoredSeller && isMatchedET){
|
255
|
if (!noStoredSeller && isMatchedET){
|
238
|
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
|
256
|
SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
|
239
|
storedSellerService.updateEnterSeller(uid, targetEst, slfb);
|
257
|
storedSellerService.updateEnterSeller(uid, targetEst, slfb);
|
|
@@ -241,7 +259,6 @@ public class SellerEnterApplyService { |
|
@@ -241,7 +259,6 @@ public class SellerEnterApplyService { |
241
|
logger.warn("in upgradeLevel add StoredSeller fail, uid {} orderCode {}",
|
259
|
logger.warn("in upgradeLevel add StoredSeller fail, uid {} orderCode {}",
|
242
|
uid, orderCode);
|
260
|
uid, orderCode);
|
243
|
}
|
261
|
}
|
244
|
-
|
|
|
245
|
}else if (Objects.equals(currentEnterType, EntrySellerType.SPECIAL_SUPER.getCode())){
|
262
|
}else if (Objects.equals(currentEnterType, EntrySellerType.SPECIAL_SUPER.getCode())){
|
246
|
//白名单超级卖家
|
263
|
//白名单超级卖家
|
247
|
logger.warn("in upgradeLevel SPECIAL_SUPER no need any action, uid {} orderCode {}",
|
264
|
logger.warn("in upgradeLevel SPECIAL_SUPER no need any action, uid {} orderCode {}",
|
|
@@ -252,6 +269,48 @@ public class SellerEnterApplyService { |
|
@@ -252,6 +269,48 @@ public class SellerEnterApplyService { |
252
|
}
|
269
|
}
|
253
|
}
|
270
|
}
|
254
|
|
271
|
|
|
|
272
|
+ /**
|
|
|
273
|
+ * 普通充值订单处理
|
|
|
274
|
+ * @param sellerWrapper
|
|
|
275
|
+ * @param orderCode
|
|
|
276
|
+ */
|
|
|
277
|
+ private void processCommonChargeOrder(SellerWrapper sellerWrapper,
|
|
|
278
|
+ Long orderCode){
|
|
|
279
|
+ int uid = sellerWrapper.getUid();
|
|
|
280
|
+
|
|
|
281
|
+ SellerBo sellerBo = sellerWrapper.build();
|
|
|
282
|
+ //当前身份
|
|
|
283
|
+ EntrySellerType currentEST = sellerBo.getEntrySellerType();
|
|
|
284
|
+ Integer currentEnterType = currentEST.getCode();
|
|
|
285
|
+ logger.warn("in upgradeLevel no record so that it's only common charge order, uid {} orderCode {}",
|
|
|
286
|
+ uid, orderCode);
|
|
|
287
|
+
|
|
|
288
|
+ if(Objects.equals(currentEnterType, EntrySellerType.NOT_ENTRY.getCode())){
|
|
|
289
|
+ //普通卖家 no way
|
|
|
290
|
+ logger.warn("in upgradeLevel no need any action, uid {} orderCode {} currentEnterType {}",
|
|
|
291
|
+ uid, orderCode, currentEnterType);
|
|
|
292
|
+
|
|
|
293
|
+ }else if (Objects.equals(currentEnterType, EntrySellerType.COMMON.getCode())) {
|
|
|
294
|
+ //普通入驻 -> 超级 ,1. apply 状态 ,2. enter_seller 修改type & func list
|
|
|
295
|
+ logger.warn("in upgradeLevel no need any action, uid {} orderCode {} currentEnterType {}",
|
|
|
296
|
+ uid, orderCode, currentEnterType);
|
|
|
297
|
+
|
|
|
298
|
+ }else if (Objects.equals(currentEnterType, EntrySellerType.SPECIAL_SUPER.getCode())){
|
|
|
299
|
+ //白名单超级卖家
|
|
|
300
|
+ logger.warn("in upgradeLevel no need any action, uid {} orderCode {} currentEnterType {}",
|
|
|
301
|
+ uid, orderCode, currentEnterType);
|
|
|
302
|
+ }else if (Objects.equals(currentEnterType, EntrySellerType.SUPER_ENTRY.getCode())){
|
|
|
303
|
+ //持久化的入驻信息
|
|
|
304
|
+ StoredSeller pss = sellerWrapper.getStoredSeller();
|
|
|
305
|
+ boolean isValid = Objects.equals(pss.getValidStatus(), StoredSellerStatusEnum.entered.getId());
|
|
|
306
|
+ if (isValid) {//身份等级配置
|
|
|
307
|
+ SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFuncWithWallet(sellerWrapper);
|
|
|
308
|
+ //超级卖家
|
|
|
309
|
+ upgradeSuperLevel(sellerWrapper, slfb.getLevel(), orderCode, currentEST, true);
|
|
|
310
|
+ }
|
|
|
311
|
+ }
|
|
|
312
|
+ }
|
|
|
313
|
+
|
255
|
private int upgradeSuperLevel(SellerWrapper sellerWrapper,Integer level, Long orderCode,
|
314
|
private int upgradeSuperLevel(SellerWrapper sellerWrapper,Integer level, Long orderCode,
|
256
|
EntrySellerType targetEst, boolean isMatchedET){
|
315
|
EntrySellerType targetEst, boolean isMatchedET){
|
257
|
|
316
|
|