Explorar o código

fix 开店审核

zoujiajian %!s(int64=2) %!d(string=hai) anos
pai
achega
a1678b6eb5

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

@@ -2,7 +2,7 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.YhShopGeneralGoodsRate;
-import com.cyksj.model.request.ShopGeneralGoodsRate;
+import com.cyksj.model.request.ShopGeneralGoodsRateReq;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,5 +14,5 @@ import java.util.List;
  *创建时间:2023/9/15 17:35
  */
 public interface YhShopGeneralGoodsRateMapper extends BaseMapper<YhShopGeneralGoodsRate> {
-	void saveOrUpdateBatch(@Param("list") List<ShopGeneralGoodsRate> saveShopGoodsRate);
+	void saveOrUpdateBatch(@Param("list") List<ShopGeneralGoodsRateReq> saveShopGoodsRate);
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/YhShopGoodsSku.java

@@ -11,8 +11,11 @@ import java.math.BigDecimal;
 @Data
 public class YhShopGoodsSku extends BaseEntity{
     private Long goodsId;
+
     private Long skuId;
 
+    private Long userId;
+
     /**
      * 价格
      */

+ 13 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/entity/YhShop.java

@@ -36,7 +36,7 @@ public class YhShop extends BaseEntity {
 	/**
 	 * 是否审核通过
 	 */
-	private Boolean isApprove;
+	private Status verifyStatus;
 
 	/**
 	 * 店铺开放状态
@@ -47,5 +47,17 @@ public class YhShop extends BaseEntity {
 	 * 审核失败原因
 	 */
 	private String reason;
+
+	@Getter
+	public enum Status {
+		verify("审核中"),
+		success("审核通过"),
+		fail("审核失败");
+		String desc;
+
+		Status(String desc) {
+			this.desc = desc;
+		}
+	}
 }
 

+ 2 - 2
netflix-dao/src/main/java/com/cyksj/model/request/ShopGeneralGoodsRate.java → netflix-dao/src/main/java/com/cyksj/model/request/ShopGeneralGoodsRateReq.java

@@ -5,13 +5,13 @@ import lombok.Setter;
 
 /*
  *项目名: yhlxj
- *文件名: ShopGeneralGoodsRate
+ *文件名: ShopGeneralGoodsRateReq
  *创建者: JavaZou
  *创建时间:2023/9/15 17:25
  */
 @Getter
 @Setter
-public class ShopGeneralGoodsRate {
+public class ShopGeneralGoodsRateReq {
 	private Long id;
 
 	private Long goodsId;

+ 28 - 0
netflix-dao/src/main/java/com/cyksj/model/request/YhShopVerifyReq.java

@@ -0,0 +1,28 @@
+package com.cyksj.model.request;
+
+import com.cyksj.model.manage.entity.YhShop;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/*
+ *项目名: yhlxj
+ *文件名: YhShopVerifyReq
+ *创建者: JavaZou
+ *创建时间:2023/9/18 10:27
+ */
+@Getter
+@Setter
+public class YhShopVerifyReq {
+	@NotNull
+	private Long id;
+
+	/**
+	 * 是否审核通过
+	 */
+	@NotNull
+	private YhShop.Status verifyStatus;
+
+	private String reason;
+}

+ 26 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ShopGeneralGoodsRateView.java

@@ -0,0 +1,26 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: yhlxj
+ *文件名: ShopGeneralGoodsRateView
+ *创建者: JavaZou
+ *创建时间:2023/9/18 11:09
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select * from goods_don where type = 1) g left join yh_shop_general_goods_rate yr on yr.goods_id = g.id")
+public class ShopGeneralGoodsRateView {
+	@DbField("g.id")
+	private Long goodsId;
+
+	@DbField("g.rate")
+	private String title;
+
+	@DbField("ys.rate")
+	private Integer rate;
+}

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

@@ -28,6 +28,9 @@ public class YhShopGoodsView {
     @DbField("ysgs.status")
     private Boolean status;
 
+    @DbField("ysgs.user_id")
+    private Long userId;
+
     @DbIgnore
     private List<com.cyksj.model.views.YhShopGoodsView.YhShopGoodsSkuView> list;
 

+ 75 - 0
netflix-dao/src/main/java/com/cyksj/model/views/YhShopView.java

@@ -0,0 +1,75 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: yhlxj
+ *文件名: YhShopView
+ *创建者: JavaZou
+ *创建时间:2023/9/18 10:21
+ */
+@Getter
+@Setter
+@SearchBean(tables = "yh_shop ys left user u on u.id = ys.user_id" +
+		" left join cms_user cu on cu.id = u.business_id")
+public class YhShopView {
+	@DbField("ys.id")
+	private Long id;
+
+	@DbField("ys.user_id")
+	private Long userId;
+
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	/**
+	 * 店铺名称
+	 */
+	@DbField("ys.name")
+	private String name;
+
+	/**
+	 * 自定义id
+	 */
+	@DbField("ys.custom_id")
+	private String customId;
+
+	/**
+	 * 商务id
+	 */
+	@DbField("ys.business_id")
+	private Long businessId;
+
+	@DbField("cu.nickname")
+	private String businessName;
+
+	/**
+	 * 是否审核通过
+	 */
+	@DbField("ys.is_approve")
+	private Boolean isApprove;
+
+	/**
+	 * 店铺开放状态
+	 */
+	@DbField("ys.status")
+	private Boolean status;
+
+	/**
+	 * 审核失败原因
+	 */
+	@DbField("ys.reason")
+	private String reason;
+
+	@DbField("yh.created_time")
+	private Date createdTime;
+
+	@DbField("yh.update_time")
+	private Date updateTime;
+}

+ 5 - 2
netflix-service/src/main/java/com/cyksj/service/mange/CmsYhShopCommonService.java

@@ -1,6 +1,7 @@
 package com.cyksj.service.mange;
 
-import com.cyksj.model.request.ShopGeneralGoodsRate;
+import com.cyksj.model.request.ShopGeneralGoodsRateReq;
+import com.cyksj.model.request.YhShopVerifyReq;
 
 import java.util.List;
 
@@ -11,5 +12,7 @@ import java.util.List;
  *创建时间:2023/9/15 17:26
  */
 public interface CmsYhShopCommonService {
-	void setGeneralGoodsRate(List<ShopGeneralGoodsRate> rates);
+	void setGeneralGoodsRate(List<ShopGeneralGoodsRateReq> rates);
+
+	void verifyYhShopApply(YhShopVerifyReq verifyReq);
 }

+ 40 - 3
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsYhShopCommonServiceImpl.java

@@ -1,10 +1,17 @@
 package com.cyksj.service.mange.goods;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.YhShopGeneralGoodsRateMapper;
+import com.cyksj.mapper.shop.YhShopMapper;
 import com.cyksj.model.entity.GoodsDon;
-import com.cyksj.model.request.ShopGeneralGoodsRate;
+import com.cyksj.model.manage.entity.YhShop;
+import com.cyksj.model.request.ShopGeneralGoodsRateReq;
+import com.cyksj.model.request.YhShopVerifyReq;
 import com.cyksj.service.mange.CmsYhShopCommonService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -25,9 +32,11 @@ public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
 
 	private final YhShopGeneralGoodsRateMapper yhShopGeneralGoodsRateMapper;
 
+	private final YhShopMapper yhShopMapper;
+
 	@Override
-	public void setGeneralGoodsRate(List<ShopGeneralGoodsRate> rates) {
-		List<ShopGeneralGoodsRate> saveShopGoodsRate = new ArrayList<>(rates.size());
+	public void setGeneralGoodsRate(List<ShopGeneralGoodsRateReq> rates) {
+		List<ShopGeneralGoodsRateReq> saveShopGoodsRate = new ArrayList<>(rates.size());
 		rates.forEach(data -> {
 			Integer rate = data.getRate();
 			Long goodsId = data.getGoodsId();
@@ -43,4 +52,32 @@ public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
 			yhShopGeneralGoodsRateMapper.saveOrUpdateBatch(saveShopGoodsRate);
 		}
 	}
+
+	@Override
+	public void verifyYhShopApply(YhShopVerifyReq verifyReq) {
+		Long id = verifyReq.getId();
+		YhShop.Status verifyStatus = verifyReq.getVerifyStatus();
+		String reason = verifyReq.getReason();
+		YhShop yhShop = yhShopMapper.selectById(id);
+		Assert.notNull(yhShop, "开店申请不存在");
+		if (yhShop.getVerifyStatus() != YhShop.Status.verify) {
+			throw BusinessRuntimeException.getInstance("该开店申请已审核");
+		}
+		if (verifyStatus == YhShop.Status.verify) {
+			throw BusinessRuntimeException.getInstance("请选择正确的审核状态");
+		}
+		if (verifyStatus == YhShop.Status.fail) {
+			if (StrUtil.isEmpty(reason)) {
+				throw BusinessRuntimeException.getInstance("请输入审核失败原因");
+			}
+			yhShop.setReason(reason);
+		} else {
+			yhShop.setReason(null);
+		}
+		yhShopMapper.update(null, Wrappers.lambdaUpdate(YhShop.class)
+				.set(YhShop::getVerifyStatus, verifyStatus)
+				.set(verifyStatus == YhShop.Status.fail, YhShop::getReason, reason)
+				.set(verifyStatus == YhShop.Status.success, YhShop::getReason, null)
+				.eq(YhShop::getId, id));
+	}
 }

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/shop/YhShopGoodsSkuService.java

@@ -10,7 +10,7 @@ import java.util.List;
  * @date 2023/9/14 17:44
  */
 public interface YhShopGoodsSkuService extends IService<YhShopGoodsSku> {
-    void saveGoods(List<Long> goodsIds);
+    void saveGoods(List<Long> goodsIds, Long userId);
 
 
 }

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/shop/impl/YhShopGoodsSkuServiceImpl.java

@@ -20,8 +20,9 @@ public class YhShopGoodsSkuServiceImpl extends ServiceImpl<YhShopGoodsSkuMapper,
 
     private final GoodsDonSkuMapper goodsDonSkuMapper;
     @Override
-    public void saveGoods(List<Long> goodsIds) {
+    public void saveGoods(List<Long> goodsIds, Long userId) {
         List<YhShopGoodsSku> skuShops = goodsDonSkuMapper.selectSkuShops(goodsIds);
+        skuShops.forEach(skuShop->skuShop.setUserId(userId));
         this.saveOrUpdateBatch(skuShops);
     }
 }

+ 32 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsYhShopGoodsController.java

@@ -5,8 +5,11 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.entity.YhShopGoodsRate;
 import com.cyksj.model.request.GoodsDonShopRateReq;
-import com.cyksj.model.request.ShopGeneralGoodsRate;
+import com.cyksj.model.request.ShopGeneralGoodsRateReq;
+import com.cyksj.model.request.YhShopVerifyReq;
+import com.cyksj.model.views.ShopGeneralGoodsRateView;
 import com.cyksj.model.views.YhShopGoodsRateView;
+import com.cyksj.model.views.YhShopView;
 import com.cyksj.service.mange.CmsYhShopCommonService;
 import com.cyksj.service.mange.CmsYhShopGoodsRateService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -16,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 
@@ -35,6 +39,8 @@ public class CmsYhShopGoodsController {
 
     private final CmsYhShopCommonService cmsYhShopCommonService;
 
+    private final HttpServletRequest request;
+
 
     /**
      * 获取店铺平台价格
@@ -65,19 +71,41 @@ public class CmsYhShopGoodsController {
      * 店铺通用平台分销比例配置
      */
     @PutMapping("/set/general/goods/rate")
-    public Result<String> setGeneralGoodsRate(@RequestBody List<ShopGeneralGoodsRate> rates) {
+    public Result<String> setGeneralGoodsRate(@RequestBody List<ShopGeneralGoodsRateReq> rates) {
         cmsYhShopCommonService.setGeneralGoodsRate(rates);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
     /**
-     * 开店审核列表
+     * 通用平台分销比例展示
      */
+    @GetMapping("/get/general/goods/rate")
+    public Result<List<ShopGeneralGoodsRateView>> getShopGeneralGoodsRate() {
+        List<ShopGeneralGoodsRateView> shopGeneralGoodsRateViews = beanSearcher.searchAll(ShopGeneralGoodsRateView.class, MapUtils.builder()
+                .orderBy(ShopGeneralGoodsRateView::getGoodsId).asc()
+                .build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(shopGeneralGoodsRateViews);
+    }
 
 
     /**
-     * 店铺审核
+     * 店审核列表
      */
+    @GetMapping("/get/apply")
+    public Result<SearchResult<YhShopView>> getUserShopApply() {
+        SearchResult<YhShopView> search = beanSearcher.search(YhShopView.class, MapUtils.flatBuilder(request.getParameterMap())
+                .field(YhShopView::getIsApprove, false)
+                .build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+    }
 
 
+    /**
+     * 店铺审核
+     */
+    @PutMapping("/verify")
+    public Result<String> verifyYhShopApply(@RequestBody YhShopVerifyReq verifyReq) {
+        cmsYhShopCommonService.verifyYhShopApply(verifyReq);
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
 }

+ 9 - 5
netflix-web/src/main/java/com/cyksj/web/controller/shop/ShopController.java

@@ -7,8 +7,8 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.entity.YhShopGoodsSku;
 import com.cyksj.model.views.YhShopGoodsRateView;
 import com.cyksj.model.views.YhShopGoodsView;
-import com.cyksj.service.mange.CmsYhShopGoodsRateService;
 import com.cyksj.service.shop.YhShopGoodsSkuService;
+import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.util.MapUtils;
@@ -37,7 +37,8 @@ public class ShopController {
      */
     @PostMapping("/post/goods")
     public Result<Void> saveGoods(@RequestBody List<Long> goodsIds){
-        yhShopGoodsSkuService.saveGoods(goodsIds);
+        long userId = StpUserUtil.getLoginIdAsLong();
+        yhShopGoodsSkuService.saveGoods(goodsIds, userId);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
@@ -61,7 +62,8 @@ public class ShopController {
      */
     @PutMapping("/put/goodsStatus/{goodsId}")
     public Result<Void> updGoodsStatus(@PathVariable Long goodsId,Boolean status){
-        yhShopGoodsSkuService.update(Wrappers.lambdaUpdate(YhShopGoodsSku.class).eq(YhShopGoodsSku::getGoodsId,goodsId).set(YhShopGoodsSku::getStatus,status));
+        long userId = StpUserUtil.getLoginIdAsLong();
+        yhShopGoodsSkuService.update(Wrappers.lambdaUpdate(YhShopGoodsSku.class).eq(YhShopGoodsSku::getGoodsId, goodsId).eq(YhShopGoodsSku::getUserId, userId).set(YhShopGoodsSku::getStatus, status));
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
@@ -71,7 +73,8 @@ public class ShopController {
      */
     @PutMapping("/del/goods/{goodsId}")
     public Result<Void> updGoodsStatus(@PathVariable Long goodsId){
-        yhShopGoodsSkuService.update(Wrappers.lambdaUpdate(YhShopGoodsSku.class).eq(YhShopGoodsSku::getGoodsId,goodsId).set(YhShopGoodsSku::getDeleted,false));
+        long userId = StpUserUtil.getLoginIdAsLong();
+        yhShopGoodsSkuService.update(Wrappers.lambdaUpdate(YhShopGoodsSku.class).eq(YhShopGoodsSku::getGoodsId, goodsId).eq(YhShopGoodsSku::getUserId, userId).set(YhShopGoodsSku::getDeleted, false));
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
 
@@ -80,7 +83,8 @@ public class ShopController {
      */
     @GetMapping("/get/goods")
     public Result<SearchResult<YhShopGoodsView>> goodsList(){
-        SearchResult<YhShopGoodsView> search = beanSearcher.search(YhShopGoodsView.class, MapUtils.builder().build());
+        long userId = StpUserUtil.getLoginIdAsLong();
+        SearchResult<YhShopGoodsView> search = beanSearcher.search(YhShopGoodsView.class, MapUtils.builder().field(YhShopGoodsView::getUserId, userId).build());
         search.getDataList().forEach(e -> e.setList(beanSearcher.searchList(YhShopGoodsView.YhShopGoodsSkuView.class,MapUtils.builder().field(YhShopGoodsView.YhShopGoodsSkuView::getGoodsId,e.getId()).build())));
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }