Browse Source

批量导入待解除用户分销绑定关系

zoujiajian 2 years ago
parent
commit
ca5e8a839b

+ 17 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserDistributeSharedRelateUnbindMapper.java

@@ -0,0 +1,17 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserDistributeSharedRelateUnbind;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserDistributeSharedRelateUnbindMapper
+ * 创建者: JavaZou
+ * 创建时间:2023/12/6 15:38
+ */
+public interface UserDistributeSharedRelateUnbindMapper extends BaseMapper<UserDistributeSharedRelateUnbind> {
+	void batchInsert(@Param("list") List<Long> userBind);
+}

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeSharedRelateUnbind.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserDistributeSharedRelateUnbind
+ * 创建者: JavaZou
+ * 创建时间:2023/12/6 15:37
+ */
+@Getter
+@Setter
+public class UserDistributeSharedRelateUnbind {
+	/**
+	 * 被分销用户id
+	 */
+	private Long userId;
+
+	/**
+	 * 是否解绑 false
+	 */
+	private Boolean isUnbind;
+}

+ 13 - 0
netflix-dao/src/main/resources/mapper/UserDistributeSharedRelateUnbindMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.cyksj.mapper.UserDistributeSharedRelateUnbindMapper">
+
+
+    <insert id="batchInsert">
+        insert ignore into user_distribute_shared_relate_unbind(`user_id`,`created_time`,`update_time`)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item},now(),now())
+        </foreach>
+    </insert>
+</mapper>

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/distribute/DistributeService.java

@@ -2,6 +2,8 @@ package com.cyksj.service.distribute;
 
 import com.cyksj.model.request.UserDistributeReq;
 
+import java.util.List;
+
 /*
  *项目名: netflix
  *文件名: DistributeService
@@ -25,4 +27,6 @@ public interface DistributeService {
 	 * 普通推广者绑定优惠推广码
 	 */
 	void bindPopularizeCode(Long userId, String code);
+
+	void unbindUserDistributeShared(List<Object> userBind) throws Exception;
 }

+ 24 - 0
netflix-service/src/main/java/com/cyksj/service/distribute/impl/DistributeServiceImpl.java

@@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.constant.TaskTypeEnum;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.mapper.GoodsDonMapper;
+import com.cyksj.mapper.UserDistributeSharedRelateUnbindMapper;
 import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.mapper.manage.distribute.*;
@@ -71,6 +73,7 @@ public class DistributeServiceImpl implements DistributeService {
 
 	private final UserDistributeTargetAlertMapper targetAlertMapper;
 
+	private final UserDistributeSharedRelateUnbindMapper userDistributeSharedRelateUnbindMapper;
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void insertDistribute(UserDistributeReq userDistributeReq) {
@@ -339,6 +342,27 @@ public class DistributeServiceImpl implements DistributeService {
 		couponDistributePopularizeMapper.insert(couponDistributePopularize);
 	}
 
+	@Override
+	public void unbindUserDistributeShared(List<Object> userBind) throws Exception {
+		List<Long> save_userIds = new ArrayList<>(500);
+		userBind.forEach(e -> {
+			Map<String, Object> map = Jsons.toMap(e);
+			Object value0 = map.get("0");
+			if (value0 != null) {
+				Long userId = Long.parseLong(value0.toString());
+				save_userIds.add(userId);
+				if (save_userIds.size() == 500) {
+					userDistributeSharedRelateUnbindMapper.batchInsert(save_userIds);
+					save_userIds.clear();
+				}
+			}
+		});
+		if (save_userIds.size() > 0) {
+			userDistributeSharedRelateUnbindMapper.batchInsert(save_userIds);
+			save_userIds.clear();
+		}
+	}
+
 	public void checkDistributorAndBusinessRate(Integer distributeGoodsRate, Long goodsId, String goodsName) {
 		UserBusinessDefaultRateConfig defaultGoodsRateConfig = defaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(UserBusinessDefaultRateConfig.class)
 				.eq(UserBusinessDefaultRateConfig::getGoodsId, goodsId)

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/mange/account/CmsAccountServiceImpl.java

@@ -14,6 +14,7 @@ import com.cyksj.common.util.StringUtil;
 import com.cyksj.mapper.AccountMapper;
 import com.cyksj.mapper.AccountUpdatePasswordRecordMapper;
 import com.cyksj.mapper.SysEmailMapper;
+import com.cyksj.mapper.UserDistributeSharedRelateUnbindMapper;
 import com.cyksj.mapper.manage.AutoUpdateAccountPwdLogMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.*;

+ 15 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -8,6 +8,7 @@ import cn.hutool.core.date.BetweenFormater;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.constant.Constant;
@@ -42,6 +43,7 @@ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.constraints.NotNull;
@@ -1150,4 +1152,17 @@ public class DistributeController {
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 批量待解绑的用户渠道关联关系记录
+	 */
+	@PostMapping("/import/unbind/distribute/shared")
+	public Result<String> unbindUserDistributeShared(MultipartFile file) throws Exception {
+		if (!file.getOriginalFilename().contains(".xls")) {
+			throw BusinessRuntimeException.getInstance("请导入excel文件");
+		}
+		List<Object> userBind = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(0).doReadSync();
+		distributeService.unbindUserDistributeShared(userBind);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }