zoujiajian 2 лет назад
Родитель
Сommit
9c3f9374ff

+ 35 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeSub.java

@@ -1,8 +1,16 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 项目名: yhlxj
  * 文件名: UserDistributeSub
@@ -11,13 +19,39 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class UserDistributeSub extends BaseEntity{
+@SearchBean(tables = "user_distribute_sub us inner join user u on u.id = us.user_id")
+public class UserDistributeSub{
+	@TableId(value = "id",type = IdType.AUTO)
+	@DbField("us.id")
+	private Long id;
+
+	@DbField("us.distribute_id")
 	private Long distributeId;
 
+	@DbField("us.user_id")
 	private Long userId;
 
+	@DbField("u.nickname")
+	@TableField(exist = false)
+	private String nickname;
+
 	/**
 	 *下级渠道用户id
 	 */
+	@DbField("us.sub_user_id")
 	private Long subUserId;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@DbField("us.created_time")
+	private Date createdTime;
+
+	/**
+	 * 修改时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@DbField("us.update_time")
+	private Date updateTime;
 }

+ 2 - 2
netflix-dao/src/main/java/com/cyksj/model/request/UserDistributeReq.java

@@ -60,7 +60,7 @@ public class UserDistributeReq {
 	private UserDistributeEquipment epRate;
 
 	/**
-	 * 级渠道
+	 * 级渠道
 	 */
-	private List<UserDistributeSub> userDistributeSubs;
+	private UserDistributeSub userDistributeSub;
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeRateDetailView.java

@@ -1,6 +1,7 @@
 package com.cyksj.model.views;
 
 import com.cyksj.model.entity.UserDistributeEquipment;
+import com.cyksj.model.entity.UserDistributeSub;
 import com.cyksj.model.entity.UserDistributeTargetAlert;
 import lombok.Getter;
 import lombok.Setter;
@@ -35,4 +36,9 @@ public class UserDistributeRateDetailView {
 	 * 设备分销
 	 */
 	private UserDistributeEquipment epRate;
+
+	/**
+	 * 上级渠道
+	 */
+	private UserDistributeSub userDistributeSub;
 }

+ 30 - 15
netflix-service/src/main/java/com/cyksj/service/distribute/impl/DistributeServiceImpl.java

@@ -296,7 +296,7 @@ public class DistributeServiceImpl implements DistributeService {
 		handlerSpecialEquipmentRate(userDistributeReq.getEpRate(), userDistribute);
 
 		//下级渠道绑定
-		handlerDistributeSub(userDistributeReq.getUserDistributeSubs(), userDistribute);
+		handlerDistributeSub(userDistributeReq.getUserDistributeSub(), userDistribute);
 	}
 
 	@Override
@@ -545,21 +545,36 @@ public class DistributeServiceImpl implements DistributeService {
 	/**
 	 * 下级渠道
 	 */
-	private void handlerDistributeSub(List<UserDistributeSub> userDistributeSubs, UserDistribute userDistribute) {
-		if (CollUtil.isNotEmpty(userDistributeSubs)) {
-			Long distributeId = userDistribute.getId();
-			userDistributeSubs.forEach(sub -> {
-				sub.setDistributeId(distributeId);
-				sub.setUserId(userDistribute.getUserId());
-				if (sub.getId() == null) {
-					try {
-						userDistributeSubMapper.insert(sub);
-					} catch (DuplicateKeyException e) {
-					}
-				} else {
-					userDistributeSubMapper.updateById(sub);
+	private void handlerDistributeSub(UserDistributeSub userDistributeSub, UserDistribute userDistribute) {
+		if (userDistributeSub != null) {
+			userDistributeSub.setSubUserId(userDistribute.getUserId());
+			if (userDistributeSub.getUserId() == null) {
+				throw BusinessRuntimeException.getInstance("请选择对应的上级渠道..");
+			}
+			if (userDistributeSub.getUserId().equals(userDistribute.getUserId())) {
+				throw BusinessRuntimeException.getInstance("不能选择自己作为上级渠道");
+			}
+			UserDistribute superUser = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class)
+					.eq(UserDistribute::getUserId, userDistributeSub.getUserId())
+					.eq(UserDistribute::getDeleted, 1));
+			if (superUser == null) {
+				throw BusinessRuntimeException.getInstance("上级渠道不存在");
+			}
+			userDistributeSub.setDistributeId(superUser.getId());
+			if (userDistributeSub.getId() == null) {
+				try {
+					userDistributeSubMapper.insert(userDistributeSub);
+				} catch (DuplicateKeyException e) {
 				}
-			});
+			} else {
+				userDistributeSubMapper.updateById(userDistributeSub);
+			}
+		}else {
+			if (userDistributeSubMapper.selectCount(Wrappers.lambdaQuery(UserDistributeSub.class)
+					.eq(UserDistributeSub::getSubUserId, userDistribute.getUserId()))>0) {
+				userDistributeSubMapper.delete(Wrappers.lambdaQuery(UserDistributeSub.class)
+						.eq(UserDistributeSub::getSubUserId, userDistribute.getUserId()));
+			}
 		}
 	}
 }