Browse Source

平台规格给特定渠道展示

zoujiajian 2 years ago
parent
commit
fb727b2b42
17 changed files with 223 additions and 48 deletions
  1. 19 0
      netflix-common/src/main/java/com/cyksj/dto/UserSharedDto.java
  2. 2 0
      netflix-dao/src/main/java/com/cyksj/mapper/GoodsDonSkuMapper.java
  3. 5 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java
  4. 6 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java
  5. 5 0
      netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java
  6. 21 0
      netflix-dao/src/main/java/com/cyksj/model/views/DistributeSearchView.java
  7. 5 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java
  8. 4 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListCategoryView.java
  9. 3 0
      netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementFrontView.java
  10. 11 0
      netflix-dao/src/main/resources/mapper/GoodsDonSkuMapper.xml
  11. 24 5
      netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonServiceImpl.java
  12. 4 0
      netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonSpecServiceImpl.java
  13. 3 0
      netflix-service/src/main/java/com/cyksj/service/user/UserService.java
  14. 29 15
      netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java
  15. 69 28
      netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java
  16. 9 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java
  17. 4 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonSkuController.java

+ 19 - 0
netflix-common/src/main/java/com/cyksj/dto/UserSharedDto.java

@@ -0,0 +1,19 @@
+package com.cyksj.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserSharedDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/2 15:41
+ */
+@Getter
+@Setter
+public class UserSharedDto {
+
+	private Long sharedId;
+
+	private Long dsPopularizeId;
+}

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsDonSkuMapper.java

@@ -22,4 +22,6 @@ public interface GoodsDonSkuMapper  extends BaseMapper<GoodsDonSku> {
 	List<YhShopGoodsSku> selectSkuShops(@Param("list") List<Long> goodsIds);
 
 	List<Long> selectSingleSkuIdsByGoodsId(Long goodsId);
+
+	Long checkUserOwnsSku(@Param("goodsId") Long goodsId, @Param("dsUserId") Long dsUserId);
 }

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

@@ -204,6 +204,11 @@ public class GoodsDon extends BaseEntity {
      */
     private Boolean isSp;
 
+    /**
+     * 是否有专属用户规格属性
+     */
+    private Boolean isOwns;
+
     /**
      * 是否参与分销 默认参与
      */

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

@@ -107,6 +107,12 @@ public class GoodsDonSku extends BaseEntity {
      */
     private BigDecimal price;
 
+    /**
+     * 专属用户规格
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String userOwns;
+
     /**
      * 是否开启实物车票时长权益
      */

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -66,6 +66,11 @@ public class ReqGoodsSkuInsert {
 
         private BigDecimal price;
 
+        /**
+         * 专属用户规格
+         */
+        private String userOwns;
+
         /**
          * 数量
          */

+ 21 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeSearchView.java

@@ -0,0 +1,21 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: DistributeSearchView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/2 15:34
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute ud inner join user u on u.id = ud.user_id and ud.deleted is true")
+public class DistributeSearchView {
+
+	private Long distributeId;
+
+	private Long userId;
+}

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java

@@ -90,6 +90,11 @@ public class GoodsDonSkuFrontView {
 	 */
 	private BigDecimal price;
 
+	/**
+	 * 专属用户规格
+	 */
+	private String userOwns;
+
 	/**
 	 * 月数
 	 */

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListCategoryView.java

@@ -109,6 +109,10 @@ public class GoodsFrontListCategoryView {
 	@DbField("g.is_sp")
 	private Boolean isSp;
 
+
+	@DbField("g.is_owns")
+	private Boolean isOwns;
+
 	@DbField("g.video")
 	private String video;
 

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

@@ -41,6 +41,9 @@ public class HomeManagementFrontView {
 	@DbField("g.logo")
 	private String logo;
 
+	@DbField("g.is_owns")
+	private Boolean isOwns;
+
 	@DbField("hc.url")
 	private String url;
 

+ 11 - 0
netflix-dao/src/main/resources/mapper/GoodsDonSkuMapper.xml

@@ -37,4 +37,15 @@
     <select id="selectSingleSkuIdsByGoodsId" resultType="java.lang.Long">
         select id from goods_don_sku where goods_id = #{goodsId} and num = 1
     </select>
+
+    <select id="checkUserOwnsSku" resultType="java.lang.Long">
+        select id
+        from goods_don_sku
+        where goods_id = #{goodsId}
+        and status is true
+        and (user_owns is null
+        <if test="dsUserId != null">
+            or JSONS_CONTAIN(user_owns, '${dsUserId}')
+        </if>) limit 1
+    </select>
 </mapper>

+ 24 - 5
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonServiceImpl.java

@@ -1,6 +1,7 @@
 package com.cyksj.service.mange.goods;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.mapper.GoodsDonMapper;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * @author chan
@@ -36,15 +38,32 @@ public class CmsGoodsDonServiceImpl extends ServiceImpl<GoodsDonMapper, GoodsDon
 				.eq(GoodsDonSku::getGoodsId, goodsId)
 				.eq(GoodsDonSku::getStatus, true)
 				.orderByAsc(GoodsDonSku::getPrice));
-		//是否有特定价格规格
-		if (goods.getIsSp() && CollUtil.isEmpty(skuViews)) {
-			goods.setIsSp(false);
+		//是否有特殊属性
+		if (CollUtil.isEmpty(skuViews)) {
+			if (goods.getIsSp()) {
+				goods.setIsSp(false);
+			}
+			if (goods.getIsOwns()) {
+				goods.setIsOwns(false);
+			}
 			goodsDonMapper.updateById(goods);
 		}
 		if (!skuViews.isEmpty()) {
 			//是否有特定价格规格
-			Optional<GoodsDonSku> specificSkuAny = skuViews.stream().filter(sku -> sku.getSpecificPrice().compareTo(BigDecimal.ZERO) > 0).findAny();
-			goods.setIsSp(specificSkuAny.isPresent() ? true : false);
+			if (goods.getIsSp() || goods.getIsOwns()) {
+				AtomicBoolean isSp = new AtomicBoolean(false);
+				AtomicBoolean isOwns = new AtomicBoolean(false);
+				skuViews.stream().forEach(sku->{
+					if (sku.getSpecificPrice().compareTo(BigDecimal.ZERO) > 0) {
+						isSp.set(true);
+					}
+					if (StrUtil.isNotBlank(sku.getUserOwns())) {
+						isOwns.set(true);
+					}
+				});
+				goods.setIsSp(isSp.get());
+				goods.setIsOwns(isOwns.get());
+			}
 
 			GoodsDonSku min = skuViews.get(0);
 			goods.setMinPrice(min.getPrice());

+ 4 - 0
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonSpecServiceImpl.java

@@ -257,6 +257,10 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
 					throw BusinessRuntimeException.getInstance("请输入正确的特定价格");
 				}
 			}
+			if (StrUtil.isNotEmpty(goodsDonSku.getUserOwns())) {
+				List<Long> userOwnsList = Jsons.parseList(goodsDonSku.getUserOwns(), Long.class);
+				goodsDonSku.setUserOwns(userOwnsList.toString());
+			}
 			goodsDonSkuMapper.insert(goodsDonSku);
 
 			DistributeGoodsSkuAlert distributeGoodsSkuAlert = new DistributeGoodsSkuAlert();

+ 3 - 0
netflix-service/src/main/java/com/cyksj/service/user/UserService.java

@@ -1,6 +1,7 @@
 package com.cyksj.service.user;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.cyksj.dto.UserSharedDto;
 import com.cyksj.model.dto.GzhOAuth2UserInfo;
 import com.cyksj.model.dto.UserWhoami;
 import com.cyksj.model.entity.User;
@@ -51,4 +52,6 @@ public interface UserService extends IService<User> {
 	 * 领取礼品卡
 	 */
 	void receiveGiftCardByRc(Long userId, String code, Long relationId);
+
+	UserSharedDto getUserShredDtoByDsCode(String dsCode);
 }

+ 29 - 15
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -16,6 +16,7 @@ import com.cyksj.common.util.Codec;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.config.wxlogin.WxOpenPlatYHLXLoginConfig;
+import com.cyksj.dto.UserSharedDto;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.channel.ChannelPopularizeMapper;
 import com.cyksj.mapper.corp.CorpCustomerAcquisitionLinkMapper;
@@ -174,21 +175,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 		}
 		Long dsPopularizeId = null;
 		if (StrUtil.isNotBlank(dsCode)) {
-			dsCode = dsCode.trim();
-			User sharedUser = getOne(Wrappers.lambdaQuery(User.class)
-					.eq(User::getShowId, dsCode).last("limit 1"));
-			if (sharedUser != null) {
-				sharedId = sharedUser.getId();
-			} else {
-				UserDistributePopularize distributePopularize = distributePopularizeMapper.selectOne(Wrappers.lambdaQuery(UserDistributePopularize.class)
-						.eq(UserDistributePopularize::getCode, dsCode)
-						.select(UserDistributePopularize::getUserId, UserDistributePopularize::getId).last("limit 1"));
-				if (distributePopularize != null) {
-					log.info("渠道sharedId:{}设置固定推广链接用户分销", distributePopularize.getUserId());
-					sharedId = distributePopularize.getUserId();
-					dsPopularizeId = distributePopularize.getId();
-				}
-			}
+			UserSharedDto userSharedDto = getUserShredDtoByDsCode(dsCode);
+			sharedId = userSharedDto.getSharedId();
+			dsPopularizeId = userSharedDto.getDsPopularizeId();
 		}
 		if (sharedId != null && isNewUser) {
 			if (dsType == null || dsType == 1) {
@@ -710,4 +699,29 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 			}
 		}
 	}
+
+	@Override
+	public UserSharedDto getUserShredDtoByDsCode(String dsCode) {
+		Long sharedId = null;
+		Long dsPopularizeId = null;
+		dsCode = dsCode.trim();
+		User sharedUser = getOne(Wrappers.lambdaQuery(User.class)
+				.eq(User::getShowId, dsCode).last("limit 1"));
+		if (sharedUser != null) {
+			sharedId = sharedUser.getId();
+		} else {
+			UserDistributePopularize distributePopularize = distributePopularizeMapper.selectOne(Wrappers.lambdaQuery(UserDistributePopularize.class)
+					.eq(UserDistributePopularize::getCode, dsCode)
+					.select(UserDistributePopularize::getUserId, UserDistributePopularize::getId).last("limit 1"));
+			if (distributePopularize != null) {
+				log.info("渠道sharedId:{}设置固定推广链接用户分销", distributePopularize.getUserId());
+				sharedId = distributePopularize.getUserId();
+				dsPopularizeId = distributePopularize.getId();
+			}
+		}
+		UserSharedDto sharedDto = new UserSharedDto();
+		sharedDto.setSharedId(sharedId);
+		sharedDto.setDsPopularizeId(dsPopularizeId);
+		return sharedDto;
+	}
 }

+ 69 - 28
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -13,6 +13,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.dto.Result;
+import com.cyksj.dto.UserSharedDto;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.OrderDonMapper;
@@ -24,6 +25,7 @@ import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.home.ClickRecordFrontService;
 import com.cyksj.service.shop.YhShopFrontService;
+import com.cyksj.service.user.UserService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
@@ -69,6 +71,8 @@ public class GoodsDonController {
 
 	private final YhShopFrontService yhShopFrontService;
 
+	private final UserService userService;
+
 	/**
      * 获取平台商品分类
      */
@@ -326,16 +330,15 @@ public class GoodsDonController {
 	 * 获取商品详情
 	 */
 	@GetMapping("/get/{id}")
-	public Result<? extends Object> getDetail(@PathVariable Long id, String customId) {
+	public Result<? extends Object> getDetail(@PathVariable Long id, String customId, String dsCode) {
 		if (StrUtil.isNotBlank(customId) && id != 15) {
 			Result<YhShopGoodsFrontView> yhShopGoodsDetail = getGoodsDetailByYhsId(yhShopFrontService.getYhsIdByCustomId(customId), id);
 			return yhShopGoodsDetail;
 		}
 		String goodsDetailKey = RedisService.key.YH_HOME_PAGHE_CACHE.getEnvName() + "goods_detail:" + id;
 		Object o = redisService.get(goodsDetailKey);
-		GoodsFrontListView views = null;
 		if (o == null) {
-			views = beanSearcher.searchFirst(GoodsFrontListView.class, MapUtils.builder().field(GoodsFrontListView::getId, id)
+			GoodsFrontListView views = beanSearcher.searchFirst(GoodsFrontListView.class, MapUtils.builder().field(GoodsFrontListView::getId, id)
 					.build());
 
 			views.setSpecs(beanSearcher.searchFirst(GoodsDonSpecFrontView.class, MapUtils.builder().field(GoodsDonSpecFrontView::getGoodsId, views.getId()).build()));
@@ -349,10 +352,19 @@ public class GoodsDonController {
 			o = redisService.get(goodsDetailKey);
 		}
 		Long fUid = StpUserUtil.getUserIdAfterLogin();
-		if (views == null) {
-			views = Jsons.parseObject(o, GoodsFrontListView.class);
+		GoodsFrontListView views = Jsons.parseObject(o, GoodsFrontListView.class);
+		Long sharedId = null;
+		if (StrUtil.isNotBlank(dsCode)) {
+			UserSharedDto userSharedDto = userService.getUserShredDtoByDsCode(dsCode);
+			sharedId = userSharedDto.getSharedId();
 		}
-		for (GoodsDonSkuFrontView sku : views.getSkuList()) {
+		final Long dsUserId = sharedId;
+		views.setSkuList(views.getSkuList().stream().filter(sku -> {
+			if (StrUtil.isNotBlank(sku.getUserOwns())) {
+				if (StrUtil.isEmpty(dsCode) || (dsUserId == null || !sku.getUserOwns().contains(dsUserId.toString()))) {
+					return false;
+				}
+			}
 			if (sku.getIsDp()) {
 				sku.setDpSkuViews(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder()
 						.field(GoodsDiscountPlusPurchaseRelationFrontView::getSkuId, sku.getId())
@@ -362,27 +374,28 @@ public class GoodsDonController {
 				if (fUid == null) {
 					sku.setSpecificPrice(null);
 					sku.setSpecificGoodsIds(null);
-					continue;
-				}
-				//设置特定价格
-				if (!isPaySpecificGoodsIds(sku.getSpecificGoodsIds(), fUid)) {
-					sku.setSpecificGoodsIds(null);
-					sku.setSpecificPrice(null);
-				} else {
-					BigDecimal specificPrice = views.getSpecificPrice();
-
-					BigDecimal skuSpecificPrice = sku.getSpecificPrice();
-					Long specificSkuId = sku.getId();
-					if (specificPrice == null) {
-						views.setSpecificPrice(skuSpecificPrice);
-						views.setSpecificSkuId(specificSkuId);
-					} else if (specificPrice.compareTo(skuSpecificPrice) > 0) {
-						views.setSpecificPrice(skuSpecificPrice);
-						views.setSpecificSkuId(specificSkuId);
+				}else {
+					//设置特定价格
+					if (!isPaySpecificGoodsIds(sku.getSpecificGoodsIds(), fUid)) {
+						sku.setSpecificGoodsIds(null);
+						sku.setSpecificPrice(null);
+					} else {
+						BigDecimal specificPrice = views.getSpecificPrice();
+
+						BigDecimal skuSpecificPrice = sku.getSpecificPrice();
+						Long specificSkuId = sku.getId();
+						if (specificPrice == null) {
+							views.setSpecificPrice(skuSpecificPrice);
+							views.setSpecificSkuId(specificSkuId);
+						} else if (specificPrice.compareTo(skuSpecificPrice) > 0) {
+							views.setSpecificPrice(skuSpecificPrice);
+							views.setSpecificSkuId(specificSkuId);
+						}
 					}
 				}
 			}
-		}
+			return true;
+		}).collect(Collectors.toList()));
 		Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
 				.eq(OrderDon::getGoodsId, views.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
 		views.setSold(sold + views.getSold());
@@ -482,7 +495,7 @@ public class GoodsDonController {
 	 * 获取首页配置列表
 	 */
 	@GetMapping("/get/homeManage")
-	public Result<Map<String, List<HomeManagementFrontView>>> getHomeManagementFrontPage(String customId) {
+	public Result<Map<String, List<HomeManagementFrontView>>> getHomeManagementFrontPage(String customId, String dsCode) {
 		String key = RedisService.key.YH_HOME_PAGHE_CACHE.getEnvName() + "homeManage";
 		Long yhsId = null;
 		if (StrUtil.isNotBlank(customId)) {
@@ -511,18 +524,36 @@ public class GoodsDonController {
 			redisService.setNx(key, map, 50 * 60l);
 			o = redisService.get(key);
 		}
+		Long sharedId = null;
+		if (StrUtil.isNotBlank(dsCode)) {
+			UserSharedDto userSharedDto = userService.getUserShredDtoByDsCode(dsCode);
+			sharedId = userSharedDto.getSharedId();
+		}
+		final Long dsUserId = sharedId;
 		Map<String, List<HomeManagementFrontView>> map = Jsons.parseObject(o, Map.class);
 		if (map.containsKey(HomeManagementConfig.Type.ex.name()) || map.containsKey(HomeManagementConfig.Type.vg.name())) {
 			try {
 				//设置特定价格
 				List<HomeManagementFrontView> exList = Jsons.parseList(Jsons.toJson(map.get(HomeManagementConfig.Type.ex.name())), HomeManagementFrontView.class);
 				if (CollUtil.isNotEmpty(exList)) {
+					exList = exList.stream().filter(data -> {
+						if (data.getIsOwns() && goodsDonSkuMapper.checkUserOwnsSku(data.getGoodsId(), dsUserId) == null) {
+							return false;
+						}
+						return true;
+					}).collect(Collectors.toList());
 					setHomeManageSpecific(exList, fUid);
 					map.put(HomeManagementConfig.Type.ex.name(), exList);
 				}
 				//设置特定价格
 				List<HomeManagementFrontView> vgList = Jsons.parseList(Jsons.toJson(map.get(HomeManagementConfig.Type.vg.name())), HomeManagementFrontView.class);
 				if (CollUtil.isNotEmpty(vgList)) {
+					vgList = vgList.stream().filter(data -> {
+						if (data.getIsOwns() && goodsDonSkuMapper.checkUserOwnsSku(data.getGoodsId(), dsUserId) == null) {
+							return false;
+						}
+						return true;
+					}).collect(Collectors.toList());
 					setHomeManageSpecific(vgList, fUid);
 					map.put(HomeManagementConfig.Type.vg.name(), vgList);
 				}
@@ -843,7 +874,7 @@ public class GoodsDonController {
 	 * 根据分类获取对应平台
 	 */
 	@GetMapping("/get/categoryGoods")
-	public Result<? extends Object> getGoodsByCategory(Long cgy, String customId) {
+	public Result<? extends Object> getGoodsByCategory(Long cgy, String customId, String dsCode) {
 		if (StrUtil.isNotBlank(customId)) {
 			Result<List<YhShopGoodsFrontCategoryView>> shopGoods = getShopCategoryGoods(yhShopFrontService.getYhsIdByCustomId(customId), cgy);
 			return shopGoods;
@@ -866,14 +897,24 @@ public class GoodsDonController {
 		}
 		List<GoodsFrontListCategoryView> goodsFrontListViews = Jsons.parseList(o, GoodsFrontListCategoryView.class);
 		DateTime now = DateTime.now();
-		goodsFrontListViews.forEach(data -> {
+		Long sharedId = null;
+		if (StrUtil.isNotBlank(dsCode)) {
+			UserSharedDto userSharedDto = userService.getUserShredDtoByDsCode(dsCode);
+			sharedId = userSharedDto.getSharedId();
+		}
+		final Long dsUserId = sharedId;
+		goodsFrontListViews = goodsFrontListViews.stream().filter(data -> {
+			if (data.getIsOwns() && goodsDonSkuMapper.checkUserOwnsSku(data.getId(), dsUserId) == null) {
+				return false;
+			}
 			Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
 					.eq(OrderDon::getGoodsId, data.getId()).notIn(OrderDon::getStatus, Constant.noOrderStatus));
 			data.setSold(sold + data.getSold());
 			data.setNotifyMsg(getPayMsgTime(data.getId(), now, 1, null));
 			//设置特定价格
 			setGcSpecificPrice(data, fUid);
-		});
+			return true;
+		}).collect(Collectors.toList());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsFrontListViews);
 	}
 

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

@@ -282,6 +282,15 @@ public class DistributeController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 
+	/**
+	 * 渠道推广者查询列表
+	 */
+	@GetMapping("/search")
+	public Result<SearchResult<DistributeSearchView>> searchDistribute() {
+		SearchResult<DistributeSearchView> search = beanSearcher.search(DistributeSearchView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
 	/**
 	 * 所有固定推广者列表
 	 */

+ 4 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonSkuController.java

@@ -134,6 +134,10 @@ public class CmsGoodsDonSkuController {
                 throw BusinessRuntimeException.getInstance("请输入正确的特定价格");
             }
         }
+        if (StrUtil.isNotEmpty(sku.getUserOwns())) {
+            List<Long> userOwnsList = Jsons.parseList(sku.getUserOwns(), Long.class);
+            sku.setUserOwns(userOwnsList.toString());
+        }
         //优惠加购
         goodsDonSkuService.handleDiscountPurchaseGoods(sku, sku.getDpSku());