Bladeren bron

商务实物分销提成

zoujiajian 3 jaren geleden
bovenliggende
commit
5240abe877

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeOrdersDetailView.java

@@ -17,7 +17,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.sku_id,o.money,o.refund_money,o.coupon_money,o.created_time from order_don o inner join (select user_id from user_distribute_shared where :sharedId:) us on us.user_id = o.user_id where o.is_fixed_distribute is true and o.relation_id != 0 and o.status not in ('close','noPayment') :time:) od" +
+@SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.sku_id,o.money,o.refund_money,o.coupon_money,o.created_time from order_don o inner join (select user_id from user_distribute_shared where :sharedId:) us on us.user_id = o.user_id where o.is_fixed_distribute is true and o.status not in ('close','noPayment') :time:) od" +
 		" left join goods_don g on g.id = od.goods_id" +
 		" inner join distribute_waiting_send_points dp on dp.order_id = od.id")
 public class UserDistributeOrdersDetailView {

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeOrdersStatisticsView.java

@@ -15,7 +15,7 @@ import java.math.BigDecimal;
  */
 @Getter
 @Setter
-@SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.money,o.refund_money,o.status from order_don o inner join (select user_id from user_distribute_shared where :sharedId:) us on us.user_id = o.user_id where o.is_fixed_distribute is true and o.relation_id != 0 and o.status not in ('close','noPayment') :time:) od left join goods_don g on g.id = od.goods_id" +
+@SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.money,o.refund_money,o.status from order_don o inner join (select user_id from user_distribute_shared where :sharedId:) us on us.user_id = o.user_id where o.is_fixed_distribute is true and o.status not in ('close','noPayment') :time:) od left join goods_don g on g.id = od.goods_id" +
 		" inner join distribute_waiting_send_points dp on dp.order_id = od.id",
 		groupBy = "od.goods_id,g.title")
 public class UserDistributeOrdersStatisticsView {

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeViews.java

@@ -18,7 +18,7 @@ import java.util.Date;
 @Getter
 @Setter
 @SearchBean(tables = "user_distribute ud left join user_distribute_shared us on ud.user_id = us.shared_id" +
-		" left join order_don od on od.user_id = us.user_id and od.is_fixed_distribute = 1 and od.status not in ('noPayment', 'close') and od.relation_id != 0 :time:",
+		" left join order_don od on od.user_id = us.user_id and od.is_fixed_distribute = 1 and od.status not in ('noPayment', 'close') :time:",
 		where = "ud.deleted is true",
 		groupBy = "ud.id,ud.user_id,ud.business_id,ud.remark,ud.created_time,ud.update_time,ud.business_bind_time")
 public class UserDistributeViews {

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/distribute/UserBusinessFrontService.java

@@ -15,5 +15,5 @@ public interface UserBusinessFrontService {
 	 * @param order      订单
 	 * @param distributeRate      平台分销比例
 	 */
-	void taskDistributeRateBenefits(Long sharedId, Long businessId, OrderDon order, Integer distributeRate);
+	void taskDistributeRateBenefits(Long sharedId, Long businessId, Integer goodsType, OrderDon order, Integer distributeRate);
 }

+ 19 - 4
netflix-service/src/main/java/com/cyksj/service/distribute/impl/UserBusinessFrontServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.distribute.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.mapper.OrderDonMapper;
@@ -43,14 +44,28 @@ public class UserBusinessFrontServiceImpl implements UserBusinessFrontService {
 	private final UserBusinessDefaultRateConfigMapper defaultRateConfigMapper;
 
 	@Override
-	public void taskDistributeRateBenefits(Long sharedId, Long businessId, OrderDon order, Integer distributeRate) {
-		UserDistributeBusinessRate businessRate = userDistributeBusinessRateMapper.selectOne(Wrappers.lambdaQuery(UserDistributeBusinessRate.class)
+	public void taskDistributeRateBenefits(Long sharedId, Long businessId, Integer goodsType, OrderDon order, Integer distributeRate) {
+		LambdaQueryWrapper<UserDistributeBusinessRate> wrapper = Wrappers.lambdaQuery(UserDistributeBusinessRate.class)
 				.eq(UserDistributeBusinessRate::getBusinessId, businessId)
 				.eq(UserDistributeBusinessRate::getGoodsId, order.getGoodsId())
-				.eq(UserDistributeBusinessRate::getSkuId, order.getSkuId()).last("limit 1"));
+				.last("limit 1");
+		if (goodsType == 1) {
+			wrapper.eq(UserDistributeBusinessRate::getSkuId, order.getSkuId());
+		}
+		UserDistributeBusinessRate businessRate = userDistributeBusinessRateMapper.selectOne(wrapper);
 		if (businessRate != null) {
-			//首单
 			if (order.getOrderType() == 1) {
+				//实物商务分销提成 无首单
+				if (goodsType != 1) {
+					UserDistributeBusinessOrderDonRecord record = saveBusinessTakeMoneyRecord(order, businessId, sharedId, businessRate.getFirstOrderRate(), null, distributeRate);
+					if (record == null) {
+						return;
+					}
+					businessOrderDonRecordMapper.insert(record);
+					log.info("开始给商务人员:{}分配分销人:{}分销的用户:{}实物:{}提成", businessId, sharedId, order.getUserId(), order.getId());
+					return;
+				}
+				//首单
 				log.info("商务首单orderId:{}分销分配提成开始", order.getId());
 				//用户之前是否下过单
 				Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)

+ 10 - 0
netflix-service/src/main/java/com/cyksj/service/mange/group/CmsGroupServiceImpl.java

@@ -67,6 +67,8 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
 
     private final DelGroupsTripsRecordMapper delGroupsTripsRecordMapper;
 
+    private final GroupsMapper groupsMapper;
+
     private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 
@@ -260,6 +262,14 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
         //清除gpt token
         redisService.del(RedisKey.CHATGPT_ACCESS_TOKEN + groupsAccountView.getAccount());
 
+        //时间有效
+        if (afterExpiryTime != null && afterExpiryTime.after(DateTime.now())) {
+            groupsMapper.update(null, Wrappers.lambdaUpdate(GroupsTrips.class)
+                    .set(GroupsTrips::getStatus, GroupsTrips.Status.validity)
+                    .eq(GroupsTrips::getAccountId, accountId)
+                    .eq(GroupsTrips::getStatus, GroupsTrips.Status.down));
+        }
+
         //保存替换记录
         GroupsTripsAccountReplaceRecord replaceRecord = new GroupsTripsAccountReplaceRecord();
         replaceRecord.setGroupsId(groupsId);

+ 2 - 2
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1234,9 +1234,9 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					distributeWaitingSendPoints.setSendTime(DateUtil.offsetDay(order.getPayTime(), 3));
 					distributeWaitingSendPointsMapper.insert(distributeWaitingSendPoints);
 					//暂定虚物 商务可首单提成
-					if (businessId != null && goodsDon.getType() == 1) {
+					if (businessId != null) {
 						//给商务人员 分配提成权益
-						userBusinessFrontService.taskDistributeRateBenefits(userDistributeShared.getSharedId(), businessId, order, rate);
+						userBusinessFrontService.taskDistributeRateBenefits(userDistributeShared.getSharedId(), businessId, goodsDon.getType(), order, rate);
 					}
 				}
 			}

+ 7 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsAccountController.java

@@ -456,6 +456,13 @@ public class CmsAccountController {
 		    //清除gpt token
 		    redisService.del(RedisKey.CHATGPT_ACCESS_TOKEN + dbAccount);
 	    }
+	    //时间有效
+	    if (account.getExpiryTime() != null && account.getExpiryTime().after(DateTime.now())) {
+		    groupsMapper.update(null, Wrappers.lambdaUpdate(GroupsTrips.class)
+				    .set(GroupsTrips::getStatus, GroupsTrips.Status.validity)
+				    .eq(GroupsTrips::getAccountId, account.getId())
+				    .eq(GroupsTrips::getStatus, GroupsTrips.Status.down));
+	    }
 	    accountService.updateById(account);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }