Browse Source

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

Eric 1 year ago
parent
commit
79370b02d0

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java

@@ -54,7 +54,7 @@ public interface SysUserFeignService {
 										   @RequestParam("clientId")String clientId,
 										   @RequestParam("clientId")String clientId,
 										   @RequestParam("clientSecret")String clientSecret);
 										   @RequestParam("clientSecret")String clientSecret);
 
 
-	@PostMapping(value = "user/getTenantByClient")
+	@GetMapping(value = "user/getTenantByClient")
 	@ApiOperation(value = "获取机构编号")
 	@ApiOperation(value = "获取机构编号")
 	HttpResponseResult<Long> getTenantByClient(@RequestParam("userId")Long userId,@RequestParam("clientId")String clientId);
 	HttpResponseResult<Long> getTenantByClient(@RequestParam("userId")Long userId,@RequestParam("clientId")String clientId);
 
 

+ 3 - 9
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -40,13 +40,7 @@ import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.text.MessageFormat;
 import java.text.MessageFormat;
@@ -135,8 +129,8 @@ public class UserController extends BaseController {
         return sysUserService.get(userId);
         return sysUserService.get(userId);
     }
     }
 
 
-    @PostMapping(value = "/getTenantByClient", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
-    public HttpResponseResult<Long> getTenantByClient(Long userId,String clientId) {
+    @GetMapping(value = "/getTenantByClient")
+    public HttpResponseResult<Long> getTenantByClient(@RequestParam("userId")Long userId, @RequestParam("clientId")String clientId) {
         return HttpResponseResult.succeed(sysUserService.getTenantByClient(userId,clientId));
         return HttpResponseResult.succeed(sysUserService.getTenantByClient(userId,clientId));
     }
     }
 
 

+ 28 - 39
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java

@@ -6,12 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.beust.jcommander.internal.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
-import com.microsvc.toolkit.middleware.payment.common.api.BasePaymentService;
 import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext;
 import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext;
-import com.microsvc.toolkit.middleware.payment.common.api.entity.DivideReq;
-import com.microsvc.toolkit.middleware.payment.common.api.entity.DivideResp;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao;
@@ -32,7 +28,6 @@ import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.enums.ESettlementFrom;
 import com.yonge.cooleshow.common.enums.EStatus;
 import com.yonge.cooleshow.common.enums.EStatus;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.exception.BizException;
@@ -42,7 +37,6 @@ import org.apache.commons.lang.StringUtils;
 import org.joda.time.DateTime;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -262,13 +256,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         // 计算老师分润数据  平台的真实收益
         // 计算老师分润数据  平台的真实收益
         BigDecimal platformFee = tenantdivMap.getOrDefault(-1L, BigDecimal.ZERO);
         BigDecimal platformFee = tenantdivMap.getOrDefault(-1L, BigDecimal.ZERO);
 
 
-
-        // 计算分润
-        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, platformFee);
-
         tenantAlbumService.orderSuccess(userPaymentOrder);
         tenantAlbumService.orderSuccess(userPaymentOrder);
 
 
-        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap );
+        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap ,platformFee);
 
 
 
 
     }
     }
@@ -354,9 +344,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         }
         }
 
 
 
 
-        // 计算分润
-        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
-        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
     }
     }
 
 
     private boolean checkSendMessage(Long userId, ClientEnum orderClient) {
     private boolean checkSendMessage(Long userId, ClientEnum orderClient) {
@@ -465,10 +453,8 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
                 // 分润给老师
                 // 分润给老师
                 bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
                 bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
             }
             }
-            // 计算分润
-            teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
 
 
-            saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+            saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
         }
         }
 
 
         Set<Long> studentIds = new HashSet();
         Set<Long> studentIds = new HashSet();
@@ -604,10 +590,8 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
                 bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
                 bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
             }
             }
 
 
-            // 计算分润
-            teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
 
 
-            saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+            saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
         }
         }
         log.info("buyLiveCourseSuccess ok");
         log.info("buyLiveCourseSuccess ok");
         //课程购买成功后进行消息推送
         //课程购买成功后进行消息推送
@@ -688,10 +672,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
             bizMap.merge(userPaymentOrder.getBizId(), teacherAmount, BigDecimal::add);
         }
         }
 
 
-        // 计算分润
-        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
-
-        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
 
 
 
 
         // 平台学生 发送推送
         // 平台学生 发送推送
@@ -771,12 +752,9 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         //服务费  原价的平台服务费 ,减去优惠券金额
         //服务费  原价的平台服务费 ,减去优惠券金额
         BigDecimal serviceFeeAmount = userPaymentOrder.getActualPrice();
         BigDecimal serviceFeeAmount = userPaymentOrder.getActualPrice();
 
 
-        // 计算分润
-        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
-
         memberPriceSettingsService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
         memberPriceSettingsService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
 
 
-        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
     }
     }
 
 
     @Override
     @Override
@@ -796,18 +774,15 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         //服务费  原价的平台服务费 ,减去优惠券金额
         //服务费  原价的平台服务费 ,减去优惠券金额
         BigDecimal serviceFeeAmount = userPaymentOrder.getActualPrice();
         BigDecimal serviceFeeAmount = userPaymentOrder.getActualPrice();
 
 
-        // 计算分润
-        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
-
 
 
         activityPlanService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
         activityPlanService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
 
 
-        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
+        saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap, serviceFeeAmount);
     }
     }
 
 
 
 
     // 写入数据库
     // 写入数据库
-    private void saveData(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap, Map<Long, BigDecimal> teacherMap, Map<Long, BigDecimal> bizMap) {
+    private void saveData(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap, Map<Long, BigDecimal> teacherMap, Map<Long, BigDecimal> bizMap, BigDecimal serviceFeeAmount) {
 
 
 
 
         // 判断金额是否和支付金额一致
         // 判断金额是否和支付金额一致
@@ -816,14 +791,23 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             log.error("分账金额不一致 orderNo:{} totalAmount:{} actualPrice:{}", userPaymentOrder.getOrderNo(), totalAmount, userPaymentOrder.getActualPrice());
             log.error("分账金额不一致 orderNo:{} totalAmount:{} actualPrice:{}", userPaymentOrder.getOrderNo(), totalAmount, userPaymentOrder.getActualPrice());
 //            return;
 //            return;
         }
         }
+        // 机构分润
+
+        Map<Long,BigDecimal> tenantShare = new HashMap<>();
+
+        // 计算分润
+        teacherAmount(userPaymentOrder, tenantdivMap, teacherMap,tenantShare, serviceFeeAmount);
 
 
 
 
         // 写入机构收支表
         // 写入机构收支表
-        tenantDivRecord(userPaymentOrder, tenantdivMap);
+        tenantDivRecord(userPaymentOrder, tenantdivMap,false);
 
 
         // 写入平台
         // 写入平台
         platformDivRecord(userPaymentOrder, tenantdivMap);
         platformDivRecord(userPaymentOrder, tenantdivMap);
 
 
+        // 写入机构分润
+        tenantDivRecord(userPaymentOrder, tenantShare,true);
+
         //写入老师收入
         //写入老师收入
         //  老师分润
         //  老师分润
         for (Map.Entry<Long, BigDecimal> e : bizMap.entrySet()) {
         for (Map.Entry<Long, BigDecimal> e : bizMap.entrySet()) {
@@ -959,7 +943,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         platformCashAccountRecordService.save(platformCashAccountRecord);
         platformCashAccountRecordService.save(platformCashAccountRecord);
     }
     }
 
 
-    private void tenantDivRecord(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap) {
+    private void tenantDivRecord(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap,boolean share) {
         // 写入收支表
         // 写入收支表
         List<TenantAccountRecord> tenantAccountRecordList = new ArrayList<>();
         List<TenantAccountRecord> tenantAccountRecordList = new ArrayList<>();
         Date date = new Date();
         Date date = new Date();
@@ -970,13 +954,17 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             if (amount.compareTo(BigDecimal.ZERO) <=0) {
             if (amount.compareTo(BigDecimal.ZERO) <=0) {
                 return;
                 return;
             }
             }
+            String type = userPaymentOrder.getGoodType().getCode() ;
+            if (share) {
+                type = type + "_SHARE";
+            }
 
 
-            AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(userPaymentOrder.getGoodType().getCode());
+            AccountBizTypeEnum bizTypeEnum = AccountBizTypeEnum.valueOf(type);
 
 
 
 
             // 写入平台支出表
             // 写入平台支出表
             PlatformCashAccountRecord platformCashAccountRecord2 = new PlatformCashAccountRecord(userPaymentOrder.getUserId(), amount,
             PlatformCashAccountRecord platformCashAccountRecord2 = new PlatformCashAccountRecord(userPaymentOrder.getUserId(), amount,
-                    InOrOutEnum.OUT, PostStatusEnum.WAIT, AccountBizTypeEnum.valueOf(userPaymentOrder.getOrderType().name()), userPaymentOrder.getBizId(),
+                    InOrOutEnum.OUT, PostStatusEnum.WAIT, bizTypeEnum, userPaymentOrder.getBizId(),
                     userPaymentOrder.getOrderNo(), date);
                     userPaymentOrder.getOrderNo(), date);
             platformCashAccountRecordService.save(platformCashAccountRecord2);
             platformCashAccountRecordService.save(platformCashAccountRecord2);
 
 
@@ -1000,7 +988,8 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
 
 
 
 
     // 计算分润
     // 计算分润
-    private void teacherAmount(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap, Map<Long, BigDecimal> teacherMap, BigDecimal platformFee) {
+    private void teacherAmount(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap, Map<Long, BigDecimal> teacherMap,
+                               Map<Long, BigDecimal> tenantShare, BigDecimal platformFee) {
 
 
         if (platformFee.compareTo(BigDecimal.ZERO) <= 0) {
         if (platformFee.compareTo(BigDecimal.ZERO) <= 0) {
             return;
             return;
@@ -1030,7 +1019,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
 
 
                 } else if (accountTenantTo.getShareTenant() !=null && accountTenantTo.getShareTenant() > 0) {
                 } else if (accountTenantTo.getShareTenant() !=null && accountTenantTo.getShareTenant() > 0) {
                     // 分润给机构
                     // 分润给机构
-                    tenantdivMap.merge(accountTenantTo.getShareTenant(), shareFee, BigDecimal::add);
+                    tenantShare.merge(accountTenantTo.getShareTenant(), shareFee, BigDecimal::add);
                     tenantdivMap.merge(-1L, shareFee, BigDecimal::subtract);
                     tenantdivMap.merge(-1L, shareFee, BigDecimal::subtract);
 
 
                 } else {
                 } else {

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

@@ -378,9 +378,9 @@ public class TenantActivationCodeServiceImpl extends ServiceImpl<TenantActivatio
                                 TenantActivationCode::getActivationStatus));
                                 TenantActivationCode::getActivationStatus));
                 for (String code : codes) {
                 for (String code : codes) {
                     if (!codeStatusMap.containsKey(code)) {
                     if (!codeStatusMap.containsKey(code)) {
-                        errMsg.add(String.format(errTemplate, codeRowMap.get(code), "验证码无效"));
+                        errMsg.add(String.format(errTemplate, codeRowMap.get(code), "激活码无效"));
                     } else if (Boolean.TRUE.equals(codeStatusMap.get(code))) {
                     } else if (Boolean.TRUE.equals(codeStatusMap.get(code))) {
-                        errMsg.add(String.format(errTemplate, codeRowMap.get(code), "验证码已经激活"));
+                        errMsg.add(String.format(errTemplate, codeRowMap.get(code), "激活码已经激活"));
                     }
                     }
                 }
                 }
             }
             }

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

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.template.R;
 import com.microsvc.toolkit.common.response.template.R;
@@ -32,6 +33,7 @@ import com.yonge.toolset.utils.easyexcel.ErrMsg;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReader;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReader;
 import com.yonge.toolset.utils.easyexcel.ExcelException;
 import com.yonge.toolset.utils.easyexcel.ExcelException;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
+import com.yonge.toolset.utils.http.HttpUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -207,7 +209,7 @@ public class TenantActivationCodeController extends BaseController {
         String uploadOssPath = MessageFormat.format("excel-download/{0}", DateTime.now().toString("yyyy-MM"));
         String uploadOssPath = MessageFormat.format("excel-download/{0}", DateTime.now().toString("yyyy-MM"));
 
 
         // 文件上传下载地址
         // 文件上传下载地址
-        String uploadPath = MessageFormat.format("{0}/{1}-{2}.xlsx", uploadOssPath, fileName, DateTime.now().toString("MMddHHmmss"));
+        String uploadPath = MessageFormat.format("{0}/{1}-{2}.xlsx", uploadOssPath, String.valueOf(IdWorker.getId()), DateTime.now().toString("MMddHHmmss"));
 
 
         // 本地文件地址
         // 本地文件地址
         String localPath = DownloadManager.getInstance().path(uploadPath);
         String localPath = DownloadManager.getInstance().path(uploadPath);
@@ -234,7 +236,7 @@ public class TenantActivationCodeController extends BaseController {
         return TenantActivationCodeWrapper.ExportFile
         return TenantActivationCodeWrapper.ExportFile
                 .builder()
                 .builder()
                 .fileName(MessageFormat.format("{0}.xlsx", fileName))
                 .fileName(MessageFormat.format("{0}.xlsx", fileName))
-                .downloadPath(downloadPath)
+                .downloadPath(HttpUtil.getSortUrl(downloadPath))
                 .build();
                 .build();
     }
     }