Przeglądaj źródła

首页配置管理

zoujiajian 3 lat temu
rodzic
commit
0c460777e3
16 zmienionych plików z 564 dodań i 1 usunięć
  1. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/manage/home/HomeManagementConfigMapper.java
  2. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/manage/home/HomeManagementConfigUserClickRecordMapper.java
  3. 46 0
      netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfig.java
  4. 18 0
      netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfigUserClickRecord.java
  5. 36 0
      netflix-dao/src/main/java/com/cyksj/model/request/HomeManageConfigReq.java
  6. 18 0
      netflix-dao/src/main/java/com/cyksj/model/request/HomeManagementClickRecordReq.java
  7. 30 0
      netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementAvailableGoodsView.java
  8. 55 0
      netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementConfigView.java
  9. 44 0
      netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementFrontView.java
  10. 15 0
      netflix-service/src/main/java/com/cyksj/service/home/HomeManagementConfigService.java
  11. 11 0
      netflix-service/src/main/java/com/cyksj/service/home/HomeManagementFrontService.java
  12. 67 0
      netflix-service/src/main/java/com/cyksj/service/home/impl/HomeManagementConfigServiceImpl.java
  13. 38 0
      netflix-service/src/main/java/com/cyksj/service/home/impl/HomeManagementFrontServiceImpl.java
  14. 32 1
      netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java
  15. 4 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java
  16. 124 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/home/HomeManageConfigController.java

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/home/HomeManagementConfigMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.home;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.HomeManagementConfig;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigMapper
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:44
+ */
+public interface HomeManagementConfigMapper extends BaseMapper<HomeManagementConfig> {
+}

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/home/HomeManagementConfigUserClickRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.home;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.HomeManagementConfigUserClickRecord;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigUserClickRecordMapper
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:45
+ */
+public interface HomeManagementConfigUserClickRecordMapper extends BaseMapper<HomeManagementConfigUserClickRecord> {
+}

+ 46 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfig.java

@@ -0,0 +1,46 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfig
+ *创建者: JavaZou
+ *创建时间:2023/8/17 15:49
+ */
+@Getter
+@Setter
+public class HomeManagementConfig extends BaseEntity{
+	private String title;
+
+	private String pic;
+
+	private String url;
+
+	private Long goodsId;
+
+	private Type type;
+
+	private Integer sorted;
+
+	private String tag;
+
+	private Boolean status;
+
+	private Boolean deleted;
+
+	@Getter
+	public enum Type {
+		ad("广告"),
+		vg("虚拟平台推荐"),
+		rg("实物平台推荐"),
+		ex("精彩推荐"),
+		;
+		String desc;
+
+		Type(String desc) {
+			this.desc = desc;
+		}
+	}
+}

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfigUserClickRecord.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigUserClickRecord
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:44
+ */
+@Getter
+@Setter
+public class HomeManagementConfigUserClickRecord extends BaseEntity{
+	private Long userId;
+
+	private Long configId;
+}

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

@@ -0,0 +1,36 @@
+package com.cyksj.model.request;
+
+import com.cyksj.model.entity.HomeManagementConfig;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManageConfigReq
+ *创建者: JavaZou
+ *创建时间:2023/8/17 17:17
+ */
+@Getter
+@Setter
+public class HomeManageConfigReq {
+	private Long id;
+
+	private String title;
+
+	private String pic;
+
+	private String url;
+
+	/**
+	 * 可以多选
+	 */
+	private List<Long> goodsId;
+
+	private HomeManagementConfig.Type type;
+
+	private Integer sorted;
+
+	private String tag;
+}

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/request/HomeManagementClickRecordReq.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.request;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementClickRecordReq
+ *创建者: JavaZou
+ *创建时间:2023/8/17 18:13
+ */
+@Getter
+@Setter
+public class HomeManagementClickRecordReq {
+	private Boolean isLogin;
+
+	private Long configId;
+}

+ 30 - 0
netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementAvailableGoodsView.java

@@ -0,0 +1,30 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementAvailableGoodsView
+ *创建者: JavaZou
+ *创建时间:2023/8/17 18:23
+ */
+@Getter
+@Setter
+@SearchBean(tables = "goods_don g left join (select * from home_management_config where :type: deleted is true) hc on hc.goods_id = g.id"
+		, where = "g.deleted is true and hc.id is null")
+public class HomeManagementAvailableGoodsView {
+	@DbField("g.id")
+	private Long goodsId;
+
+	@DbField("g.type")
+	private Long goodsType;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("g.status")
+	private Boolean status;
+}

+ 55 - 0
netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementConfigView.java

@@ -0,0 +1,55 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigView
+ *创建者: JavaZou
+ *创建时间:2023/8/17 17:53
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select * from home_management_config where deleted is true)hc" +
+		" left join goods_don g on g.id = hc.goods_id")
+public class HomeManagementConfigView {
+	@DbField("hc.id")
+	private Long id;
+
+	@DbField("hc.title")
+	private String title;
+
+	@DbField("hc.pic")
+	private String pic;
+
+	@DbField("hc.goods_id")
+	private Long goodsId;
+
+	@DbField("g.title")
+	private String goodsTitle;
+
+	@DbField("hc.type")
+	private HomeManagementConfig.Type type;
+
+	@DbField("hc.tag")
+	private String tag;
+
+	@DbField("hc.sorted")
+	private Integer sorted;
+
+	@DbField("hc.status")
+	private Boolean status;
+
+	@DbIgnore
+	private Integer click;
+
+	@DbField("hc.created_time")
+	private Date createdTime;
+}

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

@@ -0,0 +1,44 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementFrontView
+ *创建者: JavaZou
+ *创建时间:2023/8/18 9:36
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select * from home_management_config where status is true and deleted is true) hc left join goods_don g on g.id = hc.goods_id",
+		where = "g.deleted is true and g.status is true",
+		orderBy = "hc.sorted desc")
+public class HomeManagementFrontView {
+	@DbField("hc.id")
+	private Long id;
+
+	@DbField("hc.title")
+	private String title;
+
+	@DbField("hc.goods_id")
+	private Long goodsId;
+
+	@DbField("g.title")
+	private String goodsTitle;
+
+	@DbField("hc.url")
+	private String url;
+
+	@DbField("hc.type")
+	private HomeManagementConfig.Type type;
+
+	@DbField("hc.pic")
+	private String pic;
+
+	@DbField("hc.tag")
+	private String tag;
+}

+ 15 - 0
netflix-service/src/main/java/com/cyksj/service/home/HomeManagementConfigService.java

@@ -0,0 +1,15 @@
+package com.cyksj.service.home;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.cyksj.model.request.HomeManageConfigReq;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigService
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:48
+ */
+public interface HomeManagementConfigService extends IService<HomeManagementConfig> {
+	void saveOrUpdateConfig(HomeManageConfigReq config);
+}

+ 11 - 0
netflix-service/src/main/java/com/cyksj/service/home/HomeManagementFrontService.java

@@ -0,0 +1,11 @@
+package com.cyksj.service.home;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementFrontService
+ *创建者: JavaZou
+ *创建时间:2023/8/17 18:07
+ */
+public interface HomeManagementFrontService {
+	void click(Long userId, Long configId);
+}

+ 67 - 0
netflix-service/src/main/java/com/cyksj/service/home/impl/HomeManagementConfigServiceImpl.java

@@ -0,0 +1,67 @@
+package com.cyksj.service.home.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cyksj.mapper.GoodsDonMapper;
+import com.cyksj.mapper.manage.home.HomeManagementConfigMapper;
+import com.cyksj.model.entity.GoodsDon;
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.cyksj.model.request.HomeManageConfigReq;
+import com.cyksj.service.home.HomeManagementConfigService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementConfigServiceImpl
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:48
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class HomeManagementConfigServiceImpl extends ServiceImpl<HomeManagementConfigMapper, HomeManagementConfig> implements HomeManagementConfigService {
+	private final GoodsDonMapper goodsDonMapper;
+
+	@Override
+	public void saveOrUpdateConfig(HomeManageConfigReq config) {
+		if (isSpecialType(config.getType())) {
+			Assert.notEmpty(config.getTitle(), "标题不为空");
+			HomeManagementConfig homeManagementConfig = new HomeManagementConfig();
+			BeanUtil.copyProperties(config, homeManagementConfig);
+			this.saveOrUpdate(homeManagementConfig);
+			return;
+		}
+
+		//首页平台推荐、首页精彩推荐
+		List<Long> goodsIds = config.getGoodsId();
+		goodsIds.forEach(goodsId -> {
+			GoodsDon goodsDon = goodsDonMapper.selectById(goodsId);
+			if (goodsDon == null || !goodsDon.getStatus()) {
+				return;
+			}
+			HomeManagementConfig homeManagementConfig = this.getOne(Wrappers.lambdaQuery(HomeManagementConfig.class)
+					.eq(HomeManagementConfig::getGoodsId, goodsId)
+					.eq(HomeManagementConfig::getType, config.getType())
+					.eq(HomeManagementConfig::getDeleted, true));
+			if (homeManagementConfig == null) {
+				homeManagementConfig = new HomeManagementConfig();
+				homeManagementConfig.setGoodsId(goodsId);
+				this.save(homeManagementConfig);
+			}
+		});
+	}
+
+
+	public Boolean isSpecialType(HomeManagementConfig.Type type) {
+		if (type == HomeManagementConfig.Type.rg || type == HomeManagementConfig.Type.ad) {
+			return true;
+		}
+		return false;
+	}
+}

+ 38 - 0
netflix-service/src/main/java/com/cyksj/service/home/impl/HomeManagementFrontServiceImpl.java

@@ -0,0 +1,38 @@
+package com.cyksj.service.home.impl;
+
+import com.cyksj.mapper.manage.home.HomeManagementConfigMapper;
+import com.cyksj.mapper.manage.home.HomeManagementConfigUserClickRecordMapper;
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.cyksj.model.entity.HomeManagementConfigUserClickRecord;
+import com.cyksj.service.home.HomeManagementFrontService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/*
+ *项目名: netflix
+ *文件名: HomeManagementFrontServiceImpl
+ *创建者: JavaZou
+ *创建时间:2023/8/17 18:08
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class HomeManagementFrontServiceImpl implements HomeManagementFrontService {
+
+	private final HomeManagementConfigMapper homeManagementConfigMapper;
+
+	private final HomeManagementConfigUserClickRecordMapper homeManagementConfigUserClickRecordMapper;
+
+	@Override
+	public void click(Long userId, Long configId) {
+		HomeManagementConfig homeManagementConfig = homeManagementConfigMapper.selectById(configId);
+		if (homeManagementConfig == null) {
+			return;
+		}
+		HomeManagementConfigUserClickRecord clickRecord = new HomeManagementConfigUserClickRecord();
+		clickRecord.setConfigId(configId);
+		clickRecord.setUserId(userId);
+		homeManagementConfigUserClickRecordMapper.insert(clickRecord);
+	}
+}

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

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.servlet.ServletUtil;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.util.Jsons;
@@ -15,11 +16,14 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.OrderDonMapper;
-import com.cyksj.mapper.SysConfigMapper;
 import com.cyksj.mapper.RegisterOrderDonMapper;
+import com.cyksj.mapper.SysConfigMapper;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.request.HomeManagementClickRecordReq;
 import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
+import com.cyksj.service.home.HomeManagementFrontService;
+import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
@@ -58,6 +62,8 @@ public class GoodsDonController {
 
     private final SysConfigMapper sysConfigMapper;
 
+    private final HomeManagementFrontService homeManagementFrontService;
+
     /**
      * 获取商品列表
      */
@@ -418,4 +424,29 @@ public class GoodsDonController {
 	    notifyMsg.append("前有人购买");
 	    return notifyMsg.toString();
     }
+
+    /**
+     * 获取首页配置列表
+     */
+    @GetMapping("/get/homeManage")
+    public Result<List<HomeManagementFrontView>> getHomeManagementFrontPage() {
+        List<HomeManagementFrontView> views = beanSearcher.searchAll(HomeManagementFrontView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(views);
+    }
+
+    /**
+     * 记录首页配置 用户点击记录
+     */
+    @PostMapping("/homeManage/click")
+    public Result<String> homeManageClick(@RequestBody HomeManagementClickRecordReq request) {
+        Long userId = null;
+        Boolean isLogin = request.getIsLogin();
+        Long configId = request.getConfigId();
+        Assert.notNull(configId, "参数错误");
+        if (isLogin != null && isLogin) {
+            userId = StpUserUtil.getLoginIdAsLong();
+        }
+        homeManagementFrontService.click(userId, configId);
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
 }

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

@@ -2,6 +2,7 @@ package com.cyksj.web.controller.manage;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
@@ -14,10 +15,13 @@ import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.corp.CorpUserFollowRelationMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.UserView;
+import com.cyksj.model.request.HomeManagementClickRecordReq;
 import com.cyksj.model.request.UserFuncPropertyReq;
 import com.cyksj.model.views.*;
+import com.cyksj.service.home.HomeManagementFrontService;
 import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.user.UserBindRelationService;
+import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;

+ 124 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/home/HomeManageConfigController.java

@@ -0,0 +1,124 @@
+package com.cyksj.web.controller.manage.home;
+
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.HomeManagementConfig;
+import com.cyksj.model.entity.HomeManagementConfigUserClickRecord;
+import com.cyksj.model.request.HomeManageConfigReq;
+import com.cyksj.model.views.HomeManagementAvailableGoodsView;
+import com.cyksj.model.views.HomeManagementConfigView;
+import com.cyksj.service.home.HomeManagementConfigService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/* 首页配置管理
+ *项目名: netflix
+ *文件名: HomeManageConfigController
+ *创建者: JavaZou
+ *创建时间:2023/8/17 16:46
+ */
+@RestController
+@RequestMapping("/manage/homeManage/config")
+@RequiredArgsConstructor
+public class HomeManageConfigController {
+	private final HomeManagementConfigService homeManagementConfigService;
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	/**
+	 * 新增首页配置
+	 */
+	@PostMapping("/post")
+	public Result<String> saveConfig(@RequestBody HomeManageConfigReq config) {
+		homeManagementConfigService.saveOrUpdateConfig(config);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 更新首页配置
+	 */
+	@PutMapping("/put")
+	public Result<String> updateConfig(@RequestBody HomeManageConfigReq config) {
+		homeManagementConfigService.saveOrUpdateConfig(config);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+
+	/**
+	 * 上下架配置
+	 */
+	@PutMapping("/update/status/{id}")
+	public Result<String> updateStatusById(@PathVariable Long id) {
+		HomeManagementConfig byId = homeManagementConfigService.getById(id);
+		Assert.notNull(byId, "配置不存在");
+		byId.setStatus(!byId.getStatus());
+		homeManagementConfigService.updateById(byId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 配置排序
+	 */
+	@PutMapping("/sort")
+	public Result<String> sortConfig(@RequestBody HomeManageConfigReq config) {
+		Long id = config.getId();
+		HomeManagementConfig byId = homeManagementConfigService.getById(id);
+		Assert.notNull(byId, "配置不存在");
+		Integer sorted = config.getSorted();
+		byId.setSorted(sorted);
+		homeManagementConfigService.updateById(byId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 删除首页配置
+	 */
+	@DeleteMapping("/del/{id}")
+	public Result<String> delById(@PathVariable Long id) {
+		homeManagementConfigService.update(null, Wrappers.lambdaUpdate(HomeManagementConfig.class)
+						.set(HomeManagementConfig::getDeleted, true)
+						.eq(HomeManagementConfig::getId, id)
+						.eq(HomeManagementConfig::getDeleted, false));
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 首页配置列表
+	 */
+	@GetMapping("/get")
+	public Result<SearchResult<HomeManagementConfigView>> get(@RequestParam(defaultValue = "ad") HomeManagementConfig.Type type) {
+		SearchResult<HomeManagementConfigView> search = beanSearcher.search(HomeManagementConfigView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(HomeManagementConfigView::getType, type.name())
+				.build());
+		search.getDataList().forEach(data -> {
+			Number number = beanSearcher.searchCount(HomeManagementConfigUserClickRecord.class, MapUtils.builder()
+					.field(HomeManagementConfigUserClickRecord::getConfigId, data.getId()).build());
+			data.setClick(number.intValue());
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 首页配置 可选平台
+	 */
+	@GetMapping("/get/goods")
+	public Result<List<HomeManagementAvailableGoodsView>> getAvailableGoodsDon(HomeManagementConfig.Type type) {
+		Assert.notNull(type, "首页配置类型为空");
+		List<HomeManagementAvailableGoodsView> views = beanSearcher.searchAll(HomeManagementAvailableGoodsView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.put("type", String.format("type = '%s' and ", type.name()))
+				.field(HomeManagementAvailableGoodsView::getGoodsType, 1)
+				.field(HomeManagementAvailableGoodsView::getStatus, true)
+				.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(views);
+	}
+}