zoujiajian 2 năm trước cách đây
mục cha
commit
69dd4c200f

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsWholesaleUserRequirementRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.GoodsWholesaleUserRequirementRecord;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GoodsWholesaleUserRequirementRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/8/28 13:55
+ */
+public interface GoodsWholesaleUserRequirementRecordMapper extends BaseMapper<GoodsWholesaleUserRequirementRecord> {
+}

+ 36 - 0
netflix-dao/src/main/java/com/cyksj/model/GoodsWholesaleUserRequirementRecord.java

@@ -0,0 +1,36 @@
+package com.cyksj.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GoodsWholesaleUserRequirementRecord
+ * 创建者: JavaZou
+ * 创建时间:2024/8/28 13:54
+ */
+@Getter
+@Setter
+public class GoodsWholesaleUserRequirementRecord extends BaseEntity{
+	@NotNull
+	private String source;
+
+	private Long userId;
+
+	/**
+	 * 每月需求量
+	 */
+	@NotNull
+	private Integer num;
+
+	/**
+	 * 累计批发
+	 */
+	@DbIgnore
+	@TableField(exist = false)
+	private Integer total;
+}

+ 8 - 2
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsWholesale.java

@@ -1,9 +1,12 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 项目名: yhlxj
@@ -18,7 +21,11 @@ public class GoodsWholesale extends BaseEntity{
 
 	private Long skuId;
 
-	private String Config;
+	private String config;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private List<GoodsWholesaleConfig> wholesaleConfig;
 
 	/**
 	 * 单价
@@ -53,5 +60,4 @@ public class GoodsWholesale extends BaseEntity{
 		 */
 		private BigDecimal single;
 	}
-
 }

+ 3 - 4
netflix-service/src/main/java/com/cyksj/service/goods/impl/GoodsWholesaleServiceImpl.java

@@ -147,10 +147,9 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
 
 	@Override
 	public void saveOrUpdateWholesale(GoodsWholesale wholesale) throws Exception {
-		String config = wholesale.getConfig();
-		List<GoodsWholesale.GoodsWholesaleConfig> configs = Jsons.parseList(config, GoodsWholesale.GoodsWholesaleConfig.class);
-		String wholesaleConfig = Jsons.toJson(configs);
-		wholesale.setConfig(wholesaleConfig);
+		List<GoodsWholesale.GoodsWholesaleConfig> wholesaleConfig = wholesale.getWholesaleConfig();
+		String config = Jsons.toJson(wholesaleConfig);
+		wholesale.setConfig(config);
 		this.saveOrUpdate(wholesale);
 	}
 }

+ 35 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/GoodsDonWholeSaleController.java

@@ -5,10 +5,12 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.IoKit;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.Xmls;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsWholesaleOrderDonMapper;
+import com.cyksj.model.GoodsWholesaleUserRequirementRecord;
 import com.cyksj.model.entity.GoodsWholesale;
 import com.cyksj.model.entity.GoodsWholesaleUserDeposit;
 import com.cyksj.model.views.GoodsWholesaleOrderView;
@@ -89,6 +91,39 @@ public class GoodsDonWholeSaleController {
 	@GetMapping("/get")
 	public Result<SearchResult<GoodsWholesale>> getWholesale() {
 		SearchResult<GoodsWholesale> search = beanSearcher.search(GoodsWholesale.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		search.getDataList().forEach(data->{
+			try {
+				data.setWholesaleConfig(Jsons.parseList(data.getConfig(), GoodsWholesale.GoodsWholesaleConfig.class));
+			} catch (Exception e) {
+			}
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 批发平台上下架
+	 */
+	@PutMapping("/updata/status/{id}")
+	public Result<String> updateStatusById(@PathVariable Long id) {
+		GoodsWholesale byId = goodsWholesaleService.getById(id);
+		if (byId != null) {
+			byId.setStatus(!byId.getStatus());
+			goodsWholesaleService.updateById(byId);
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 用户批发情况
+	 */
+	@GetMapping("/get/user/requirement/info")
+	public Result<SearchResult<GoodsWholesaleUserRequirementRecord>> userRequirementInfo() {
+		SearchResult<GoodsWholesaleUserRequirementRecord> search = beanSearcher.search(GoodsWholesaleUserRequirementRecord.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		search.getDataList().forEach(data->{
+			List<Long> userIdList = userBindRelationService.getRelationUserIdList(data.getUserId(), null);
+			Integer total = goodsWholesaleOrderDonMapper.getUserWholesaleNumByUserIds(userIdList);
+			data.setTotal(total);
+		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 

+ 42 - 0
netflix-web/src/main/java/com/cyksj/web/controller/wholesale/GoodsWholesaleWebController.java

@@ -1,12 +1,15 @@
 package com.cyksj.web.controller.wholesale;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.config.zfb.BaseZfbConfig;
 import com.cyksj.config.zfb.ZfbProductCode;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsWholesaleOrderDonMapper;
 import com.cyksj.mapper.GoodsWholesaleUserDepositMapper;
+import com.cyksj.mapper.GoodsWholesaleUserRequirementRecordMapper;
+import com.cyksj.model.GoodsWholesaleUserRequirementRecord;
 import com.cyksj.model.dto.AliPayParams;
 import com.cyksj.model.entity.GoodsWholesaleOrderDon;
 import com.cyksj.model.entity.GoodsWholesaleUserDeposit;
@@ -22,6 +25,7 @@ import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -59,6 +63,7 @@ public class GoodsWholesaleWebController {
 
 	private final GoodsWholesaleOrderDonMapper goodsWholesaleOrderDonMapper;
 
+	private final GoodsWholesaleUserRequirementRecordMapper requirementRecordMapper;
 
 	/**
 	 * 平台批发列表
@@ -118,6 +123,43 @@ public class GoodsWholesaleWebController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult(orderDon);
 	}
 
+	/**
+	 * 用户渠道需求来源详情
+	 */
+	@GetMapping("/get/user/requirement")
+	public Result<GoodsWholesaleUserRequirementRecord> getUserRequirement() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		GoodsWholesaleUserRequirementRecord goodsWholesaleUserRequirementRecord = requirementRecordMapper.selectOne(Wrappers.lambdaQuery(GoodsWholesaleUserRequirementRecord.class)
+				.in(GoodsWholesaleUserRequirementRecord::getUserId, userIdList)
+				.last("limit 1"));
+		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsWholesaleUserRequirementRecord);
+	}
+
+	/**
+	 * 记录用户渠道需求来源
+	 */
+	@PostMapping("/user/requirement/record")
+	public Result<String> recordUserRequirement(@RequestBody @Validated GoodsWholesaleUserRequirementRecord requirementRecord) {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		int length = requirementRecord.getSource().length();
+		if (length > 128) {
+			throw BusinessRuntimeException.getInstance("自定义来源过长");
+		}
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		GoodsWholesaleUserRequirementRecord goodsWholesaleUserRequirementRecord = requirementRecordMapper.selectOne(Wrappers.lambdaQuery(GoodsWholesaleUserRequirementRecord.class)
+				.in(GoodsWholesaleUserRequirementRecord::getUserId, userIdList)
+				.last("limit 1"));
+		if (goodsWholesaleUserRequirementRecord == null) {
+			requirementRecord.setUserId(userId);
+			try {
+				requirementRecordMapper.insert(requirementRecord);
+			} catch (DuplicateKeyException e) {
+			}
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
 	/**
 	 * 取消批发订单
 	 */