Browse Source

Merge remote-tracking branch 'origin/feature/0721-tenant' into feature/0721-tenant

zouxuan 1 year ago
parent
commit
14f82aeaa8

+ 0 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -439,13 +439,6 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             if (!subjectNames.contains(student.getSubjectName())) {
                 errMsg.add(String.format("第%s行声部不支持", msgRowNo));
             }
-            try {
-                if(!StringUtils.isEmpty(student.getBirthday())){
-                    LocalDate.parse(student.getBirthday(), DateTimeFormatter.ISO_LOCAL_DATE);
-                }
-            }catch (Exception e) {
-                errMsg.add(String.format("第%s行生日格式错误", msgRowNo));
-            }
 
             if (errMsg.size() > 100) {
                 break;

+ 10 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -464,6 +464,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                 userAccountService.save(userAccount);
             }
         } else {
+            // 如果机构解绑,更新机构ID为-1
+            if (Boolean.TRUE.equals(teacherSubmitReq.getBindTenant())) {
+                teacherSubmitReq.setTenantId(-1L);
+            }
             if (!teacher.getTenantId().equals(teacherSubmitReq.getTenantId())) {
                 TeacherWrapper.UpdateTenant updateTenant = new TeacherWrapper.UpdateTenant();
                 updateTenant.setTeacherId(teacher.getUserId());
@@ -949,10 +953,15 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                 }
             });
             imUserFriendService.delFriendByTenantId(teacher.getTenantId(), teacher.getUserId());
+        }else {
+            if (ESettlementFrom.TENANT.equals(teacher.getSettlementFrom())) {
+                // 解绑后,结算方式如果是机构,默认调整为老师
+                teacher.setSettlementFrom(ESettlementFrom.TEACHER);
+                teacher.setIsSettlement(true);
+            }
         }
 
         teacher.setTenantId(updateTenant.getTenantId());
-        teacher.setSettlementFrom(ESettlementFrom.TENANT);
         this.updateById(teacher);
 
         Optional<TenantUnbindRecord> first = tenantUnbindRecordMapper.getRecord(oldTenantId,

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantActivationCodeServiceImpl.java

@@ -320,7 +320,7 @@ public class TenantActivationCodeServiceImpl extends ServiceImpl<TenantActivatio
     public void importActiveCode(List<ExcelDataReaderProperty<TenantActivationCodeWrapper.ImportTemplate>> dataList,
                                  Long tenantId, Long userId, Long tenantAlbumPurchaseId) {
         if (dataList.isEmpty()) {
-            return;
+            throw new BizException("未解析到数据");
         }
         dataList.sort(Comparator.comparingInt(ExcelDataReaderProperty::getRowIndex));
 

+ 14 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -413,7 +413,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         for (UserOrderVo record : records) {
             if (record.getPaymentVersion().equals(EPaymentVersion.V2)) {
                 // 查询用户下单配置
-                String ret = redisCacheService.getUserOrderConfig(record.getUserId().toString(), record.getOrderType().name());
+                String ret = redisCacheService.getUserOrderConfig(record.getUserId().toString(), record.getOrderNo());
                 if (!StringUtils.isEmpty(ret) ) {
                     UserPaymentOrderWrapper.PaymentOrderReqConfig config = UserPaymentOrderWrapper.PaymentOrderReqConfig
                             .from(ret);
@@ -688,19 +688,20 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         UserOrderVo userOrderVo = baseMapper.getPendingOrder(query);
         if (null != userOrderVo) {
             userOrderVo.setOrderDetailList(orderDetailService.getOrderDetilListByOrderNo(userOrderVo.getOrderNo()));
-        }
 
-        // 查询用户下单配置
-        String ret = redisCacheService.getUserOrderConfig(query.getUserId().toString(), query.getGoodType());
-        if (!StringUtils.isEmpty(ret) && userOrderVo != null) {
-            UserPaymentOrderWrapper.PaymentOrderReqConfig config = UserPaymentOrderWrapper.PaymentOrderReqConfig
-                    .from(ret);
-            UserPaymentOrderWrapper.PaymentConfig build = UserPaymentOrderWrapper.PaymentConfig.builder()
-                    .orderNo(userOrderVo.getOrderNo())
-                    .paymentConfig(config)
-                    .paymentType(userOrderVo.getPaymentVendor())
-                    .build();
-            userOrderVo.setPaymentConfig(build);
+
+            // 查询用户下单配置
+            String ret = redisCacheService.getUserOrderConfig(query.getUserId().toString(), userOrderVo.getOrderNo());
+            if (!StringUtils.isEmpty(ret)) {
+                UserPaymentOrderWrapper.PaymentOrderReqConfig config = UserPaymentOrderWrapper.PaymentOrderReqConfig
+                        .from(ret);
+                UserPaymentOrderWrapper.PaymentConfig build = UserPaymentOrderWrapper.PaymentConfig.builder()
+                        .orderNo(userOrderVo.getOrderNo())
+                        .paymentConfig(config)
+                        .paymentType(userOrderVo.getPaymentVendor())
+                        .build();
+                userOrderVo.setPaymentConfig(build);
+            }
         }
         return HttpResponseResult.succeed(userOrderVo);
     }

+ 13 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -640,18 +640,21 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
             .build();
 
         // 缓存用户下单配置
-        redisCacheService.saveUserOrderConfig(String.valueOf(orderReq.getUserId()), orderReq.getOrderType().getCode(), reqConfig.jsonString());
+        redisCacheService.saveUserOrderConfig(String.valueOf(orderReq.getUserId()), reqConfig.getMerOrderNo(), reqConfig.jsonString());
+
+        UserPaymentOrderWrapper.PaymentConfig build = UserPaymentOrderWrapper.PaymentConfig.builder()
+                .orderNo(orderReq.getOrderNo())
+                .paymentConfig(reqConfig)
+                .status(EPaymentStatus.WAIT_PAY.getCode())
+                .paymentType(paymentServiceContext.getPaymentService(orderReq.getPaymentVendor()).venderName())
+                .build();
 
         // 若订单无需支付,直接完成订单,VIP购买
         if (BigDecimal.ZERO.compareTo(orderReq.getPaymentCashAmount()) == 0) {
             executePaymentSuccess(orderReq, null);
+            build.setStatus(PAID.getCode());
         }
-
-        return UserPaymentOrderWrapper.PaymentConfig.builder()
-            .orderNo(orderReq.getOrderNo())
-            .paymentConfig(reqConfig)
-            .paymentType(paymentServiceContext.getPaymentService(orderReq.getPaymentVendor()).venderName())
-            .build();
+        return build;
     }
 
     /**
@@ -772,7 +775,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
             if (StringUtils.isNotBlank(userPaymentOrder.getTransNo())) {
 
                 // 获取缓存配置信息
-                String paymentConfig = redisCacheService.getUserPaymentConfig(reqConfig.getUserId(), userPaymentOrder.getOrderType().getCode());
+                String paymentConfig = redisCacheService.getUserPaymentConfig(reqConfig.getUserId(), userPaymentOrder.getOrderNo());
                 if (StringUtils.isBlank(paymentConfig)) {
 
                     // 支付配置已失效,待支付订单状态调整为已关闭,提醒用户重新购买
@@ -830,6 +833,8 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 .build();
             userPaymentOrderService.updateById(update);
 
+            // 缓存用户下单配置
+            redisCacheService.saveUserOrderConfig(String.valueOf(reqConfig.getUserId()), reqConfig.getMerOrderNo(), config.jsonString());
             // 缓存用户支付配置信息
             redisCacheService.saveUserPaymentConfig(reqConfig.getUserId(), userPaymentOrder.getOrderType().getCode(),
                 JSON.toJSONString(paymentReq));

+ 2 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java

@@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Pattern;
@@ -144,8 +145,6 @@ public class StudentWrapper {
 
         private static final String PHONE_REG = "^1\\d{10}$";
 
-        private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
-
         public List<String> checkValid() {
             ArrayList<String> errMsg = new ArrayList<>();
             if (StringUtils.isEmpty(userName)) {
@@ -166,7 +165,7 @@ public class StudentWrapper {
                     birthday = birthday.replaceAll("/", "-");
                 }
                 try {
-                    SDF.parse(birthday);
+                    LocalDate.parse(birthday, DateTimeFormatter.ISO_LOCAL_DATE);
                 } catch (Exception e) {
                     errMsg.add("出生日期格式错误");
                 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/UserPaymentOrderWrapper.java

@@ -528,6 +528,9 @@ public class UserPaymentOrderWrapper {
         @ApiModelProperty("支付类型: adapay, wxpay")
         private String paymentType;
 
+        @ApiModelProperty("支付状态")
+        private String status;
+
         @ApiModelProperty("支付配置参数: 透传")
         private PaymentOrderReqConfig paymentConfig;
     }

+ 4 - 2
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -32,6 +32,7 @@ import com.yonge.toolset.utils.easyexcel.ExcelException;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -53,6 +54,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+@Slf4j
 @RestController
 @RequestMapping("/student")
 @Api(value = "学生表", tags = "学生表")
@@ -188,8 +190,8 @@ public class StudentController extends BaseController {
             studentService.importStudentExcel(reader.getDataList(), user.getTenantId(), user.getId());
             return HttpResponseResult.succeed();
         } catch (ExcelException e) {
-            return HttpResponseResult.failed(BizHttpStatus.IMPORT.getCode(), e.getErrMsgList(),
-                    BizHttpStatus.IMPORT.getMsg());
+            log.error("导入学生失败:" + JSON.toJSONString(e.getErrMsgList()));
+            return HttpResponseResult.failed("文件解析失败");
         }
     }
 

+ 3 - 2
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java

@@ -183,6 +183,7 @@ public class TenantActivationCodeController extends BaseController {
         query.setActivationStatus(false);
         query.setTenantAlbumPurchaseId(Long.valueOf(orderNo));
         query.setSendStatus(EActivationCode.WAIT);
+        query.setActivationStatus(false);
         query.setPage(1);
         query.setRows(9999);
         IPage<TenantActivationCodeWrapper.TenantActivationCode> queryInfo =
@@ -293,8 +294,8 @@ public class TenantActivationCodeController extends BaseController {
                     tenantAlbumPurchaseId);
             return HttpResponseResult.succeed();
         } catch (ExcelException e) {
-            return HttpResponseResult.failed(BizHttpStatus.IMPORT.getCode(), e.getErrMsgList(),
-                    BizHttpStatus.IMPORT.getMsg());
+            log.error("导入激活码失败:"+JSON.toJSONString(e.getErrMsgList()));
+            return HttpResponseResult.failed("文件解析错误");
         }
     }