Przeglądaj źródła

add
平台分类;商务分销推广平台比例默认分配;
chatGPT无会员账号导入平台更换

zoujiajian 3 lat temu
rodzic
commit
6382fda9d3

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/BusinessDistributeDefaultRateConfigMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.distribute;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.BusinessDistributeDefaultRateConfig;
+
+/*
+ *项目名: netflix
+ *文件名: BusinessDistributeDefaultRateConfigMapper
+ *创建者: JavaZou
+ *创建时间:2023/4/19 14:44
+ */
+public interface BusinessDistributeDefaultRateConfigMapper extends BaseMapper<BusinessDistributeDefaultRateConfig> {
+}

+ 29 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/BusinessDistributeDefaultRateConfig.java

@@ -0,0 +1,29 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: BusinessDistributeDefaultRateConfig
+ *创建者: JavaZou
+ *创建时间:2023/4/19 14:40
+ */
+@Getter
+@Setter
+public class BusinessDistributeDefaultRateConfig extends BaseEntity{
+	/**
+	 * 平台id
+	 */
+	private Long goodsId;
+
+	/**
+	 * 分销比例
+	 */
+	private Integer rate;
+
+	/**
+	 * 套餐分销比例
+	 */
+	private Integer secondRate;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java

@@ -66,6 +66,12 @@ public class GoodsDon extends BaseEntity {
 
     private Integer type;
 
+    /**
+     * 分类
+     * 1、AI  2、流媒体
+     */
+    private Integer category;
+
     /**
      * 二级分类
      * 虚物品 1邀请制 2非邀请制

+ 7 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSpuInsert.java

@@ -60,10 +60,16 @@ public class ReqGoodsSpuInsert {
     private Boolean deleted;
 
     /**
-     * 类 1账号 2.实物
+     * 类 1账号 2.实物
      */
     private Integer type;
 
+    /**
+     * 分类
+     * 1、AI  2、流媒体
+     */
+    private Integer category;
+
     /**
      *  轮播图
      */

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/GoodsDonViewer.java

@@ -105,6 +105,13 @@ public class GoodsDonViewer {
     @DbField("g.type")
     private Integer type;
 
+    /**
+     * 分类
+     * 1、AI  2、流媒体
+     */
+    @DbField("g.category")
+    private Integer category;
+
     /**
      * banner
      */

+ 37 - 0
netflix-dao/src/main/java/com/cyksj/model/views/BusinessDistributeRateView.java

@@ -0,0 +1,37 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: BusinessDistributeRateView
+ *创建者: JavaZou
+ *创建时间:2023/4/19 14:21
+ */
+@Getter
+@Setter
+@SearchBean(tables = "goods_don g left join business_distribute_default_rate_config bc on g.id = bc.goods_id",
+		where = "g.deleted is true and g.status is true",
+		orderBy = "g.id")
+public class BusinessDistributeRateView {
+	@DbField("bc.id")
+	private Long id;
+
+	@DbField("g.id")
+	private Long goodsId;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("g.type")
+	private Integer type;
+
+	@DbField("bc.rate")
+	private Integer rate = 0;
+
+	@DbField("bc.second_rate")
+	private Integer secondRate = 0;
+}

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonPopularizeView.java

@@ -59,6 +59,13 @@ public class GoodsDonPopularizeView {
 	@DbField("g.type")
 	private Integer type;
 
+	/**
+	 * 分类
+	 * 1、AI  2、流媒体
+	 */
+	@DbField("g.category")
+	private Integer category;
+
 	@DbField("g.second_type")
 	private Integer secondType;
 

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java

@@ -50,6 +50,19 @@ public class GoodsFrontListView {
 	@DbField("g.img")
 	private String img;
 
+	/**
+	 * 类型
+	 */
+	@DbField("g.type")
+	private Integer type;
+
+	/**
+	 * 分类
+	 * 1、AI  2、流媒体
+	 */
+	@DbField("g.category")
+	private Integer category;
+
 	@DbField("g.second_type")
 	private Integer secondType;
 

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsHomePageView.java

@@ -42,6 +42,19 @@ public class GoodsHomePageView {
 	@DbField("g.logo")
 	private String logo;
 
+	/**
+	 * 类型
+	 */
+	@DbField("g.type")
+	private Integer type;
+
+	/**
+	 * 分类
+	 * 1、AI  2、流媒体
+	 */
+	@DbField("g.category")
+	private Integer category;
+
 	/**
 	 * 最低规格价格
 	 */

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java

@@ -27,6 +27,9 @@ public class RenewalView {
     @DbField("sku.id")
     private Long skuId;
 
+    @DbField("sku.months")
+    private Integer months;
+
     @DbField("sku.price")
     private BigDecimal price;
 

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

@@ -548,12 +548,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			//客服续费订单
 			handleServiceRenewOrder(order);
 		}
-		this.updateById(order);
-
 		//购买Midjourney课程 赠送Midjourney车票
 		if (goodsId != null && goodsId.equals(27l)) {
+			order.setStatus(OrderDon.Status.complete);
 			TASK_POOL.execute(()->sendMidjourneyTicketIfCourse(order.getUserId()));
 		}
+		this.updateById(order);
 		//配置了特定奖池,增加抽奖机会
 		TASK_POOL.execute(() -> {
 			try {
@@ -891,13 +891,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			//客服续费订单
 			handleServiceRenewOrder(orderDon);
 		}
-		this.updateById(orderDon);
-
 		//购买Midjourney课程 赠送Midjourney车票
 		if (goodsId != null && goodsId.equals(27l)) {
+			orderDon.setStatus(OrderDon.Status.complete);
 			TASK_POOL.execute(()->sendMidjourneyTicketIfCourse(orderDon.getUserId()));
 		}
-
+		this.updateById(orderDon);
 		//配置了特定奖池,增加抽奖机会
 		TASK_POOL.execute(() -> {
 			try {

+ 1 - 12
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -84,7 +84,6 @@ public class GoodsDonController {
                 .orderBy(GoodsDonPopularizeView::getId).asc()
                 .build());
         DateTime now = DateTime.now();
-        LinkedList<GoodsDonPopularizeView> collect = new LinkedList<>();
         search.getDataList().forEach(data -> {
             data.setSpecs(beanSearcher.searchFirst(GoodsDonSpec.class, MapUtils.builder().field(GoodsDonSpec::getGoodsId, data.getId()).build()));
             data.setSkuList(beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, data.getId()).field(GoodsDonSku::getStatus, true).orderBy(GoodsDonSku::getPrice).asc().build()));
@@ -103,9 +102,6 @@ public class GoodsDonController {
                     data.setMonths(goodsDonSku.getMonths());
                 }
             });
-            if (data.getPrice() != null && data.getPrice().compareTo(BigDecimal.ZERO) > 0) {
-                collect.add(data);
-            }
             if (orderComments != null) {
                 List<OrderComment> comments = orderComments.getDataList();
                 data.setOrderComments(comments);
@@ -145,8 +141,6 @@ public class GoodsDonController {
             notifyMsg.append("前有人购买");
             data.setNotifyMsg(notifyMsg.toString());
         });
-        search = new SearchResult<>(collect);
-        search.setTotalCount(collect.size());
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
 
@@ -158,7 +152,6 @@ public class GoodsDonController {
         SearchResult<GoodsFrontListView> search = beanSearcher.search(GoodsFrontListView.class, MapUtils.flatBuilder(request.getParameterMap())
                 .build());
         DateTime now = DateTime.now();
-        LinkedList<GoodsFrontListView> collect = new LinkedList<>();
         search.getDataList().forEach(data -> {
             data.setSpecs(beanSearcher.searchFirst(GoodsDonSpec.class, MapUtils.builder().field(GoodsDonSpec::getGoodsId, data.getId()).build()));
             data.setSkuList(beanSearcher.searchAll(GoodsDonFrontSkuView.class, MapUtils.builder().field(GoodsDonFrontSkuView::getGoodsId, data.getId()).field(GoodsDonFrontSkuView::getStatus, true).orderBy(GoodsDonFrontSkuView::getPrice).asc().build()));
@@ -173,9 +166,7 @@ public class GoodsDonController {
                     data.setMonths(donFrontSkuView.getMonths());
                 }
             });
-            if (data.getPrice() != null && data.getPrice().compareTo(BigDecimal.ZERO) > 0) {
-                collect.add(data);
-            }
+
             OrderDon orderDon = orderDonMapper.selectOne(Wrappers.lambdaQuery(OrderDon.class)
                     .eq(OrderDon::getGoodsId, data.getId())
                     .notIn(OrderDon::getStatus, Constant.noOrderStatus).select(OrderDon::getCreatedTime, OrderDon::getPayTime, OrderDon::getId)
@@ -211,8 +202,6 @@ public class GoodsDonController {
             notifyMsg.append("前有人购买");
             data.setNotifyMsg(notifyMsg.toString());
         });
-        search = new SearchResult<>(collect);
-        search.setTotalCount(collect.size());
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
 

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

@@ -236,7 +236,7 @@ public class CmsAccountController {
 	 * 解析chatGpt独立账号excel
 	 */
 	@PostMapping("/analysis/chatGPT/account")
-	public Result<String> analysisChatGPTAccount(@RequestParam(required = false, defaultValue = "18") Long goodsId, @RequestParam(required = false, defaultValue = "176") Long skuId, MultipartFile file) throws IOException {
+	public Result<String> analysisChatGPTAccount(@RequestParam(required = false, defaultValue = "30") Long goodsId, @RequestParam(required = false, defaultValue = "198") Long skuId, MultipartFile file) throws IOException {
 		List<Object> accountList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(0).doReadSync();
 		accountService.analysisChatGPTAccount(goodsId, skuId, accountList);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();

+ 42 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -86,6 +86,8 @@ public class DistributeController {
 
 	private final UserBusinessDefaultRateConfigMapper defaultRateConfigMapper;
 
+	private final BusinessDistributeDefaultRateConfigMapper businessDefaultRateConfigMapper;
+
 	/**
 	 * 添加固定推广者
 	 */
@@ -182,7 +184,7 @@ public class DistributeController {
 	 */
 	@GetMapping("/get/plat")
 	public Result<List<GoodsDon>> getGoodsDistributeRate() {
-		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsDonMapper.selectList(Wrappers.lambdaQuery(GoodsDon.class).in(GoodsDon::getType, Constant.dsGoodsIds).eq(GoodsDon::getDeleted, true).orderByAsc(GoodsDon::getType).orderByAsc(GoodsDon::getId).select(GoodsDon::getId, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getRate, GoodsDon::getSecondRate)));
+		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsDonMapper.selectList(Wrappers.lambdaQuery(GoodsDon.class).in(GoodsDon::getType, Constant.dsGoodsIds).eq(GoodsDon::getDeleted, true).eq(GoodsDon::getStatus, true).orderByAsc(GoodsDon::getType).orderByAsc(GoodsDon::getId).select(GoodsDon::getId, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getRate, GoodsDon::getSecondRate)));
 	}
 
 	/**
@@ -548,4 +550,43 @@ public class DistributeController {
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 商务人员推广平台分销比例默认配置列表
+	 */
+	@GetMapping("/get/business/distribute/rate")
+	public Result<List<BusinessDistributeRateView>> getBusinessDistributeRateConfigList() {
+		List<BusinessDistributeRateView> businessDistributeRateViews = beanSearcher.searchAll(BusinessDistributeRateView.class,
+				MapUtils.flatBuilder(request.getParameterMap())
+						.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(businessDistributeRateViews);
+	}
+
+	/**
+	 * 编辑商务人员推广平台分销比例默认配置列表
+	 */
+	@PutMapping("/put/business/distribute/rate")
+	@Transactional(rollbackFor = Throwable.class)
+	public Result<String> updateBusinessDistributeRate(@RequestBody List<BusinessDistributeDefaultRateConfig> configs) {
+		configs.forEach(config -> {
+			Long id = config.getId();
+			Long goodsId = config.getGoodsId();
+			Integer rate = config.getRate();
+			if (goodsId == null) {
+				throw BusinessRuntimeException.getInstance("平台id为空");
+			}
+			if (rate == null) {
+				throw BusinessRuntimeException.getInstance("分销比列为空");
+			}
+			if (id == null) {
+				try {
+					businessDefaultRateConfigMapper.insert(config);
+				} catch (DuplicateKeyException e) {
+				}
+				return;
+			}
+			businessDefaultRateConfigMapper.updateById(config);
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }