From 3d2b51ea4520533de5e78f88dddf5b5c7dce4247 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 06 六月 2024 15:56:18 +0800
Subject: [PATCH] 管理后台添加营销员导入功能

---
 meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java |   90 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 70 insertions(+), 20 deletions(-)

diff --git a/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java b/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java
index d0a8041..64c4935 100644
--- a/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java
+++ b/meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java
@@ -2,15 +2,22 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.google.common.collect.Lists;
+import com.sinata.common.enums.EnumMemberGrade;
 import com.sinata.common.enums.mall.EnumMallGoodsGroupType;
 import com.sinata.common.enums.mall.EnumMallOrderState;
 import com.sinata.common.user.VoUserGradeParent;
 import com.sinata.rest.common.ApiUtils;
+import com.sinata.rest.core.juhe.TelecomUtil;
+import com.sinata.rest.core.util.ToolUtil;
 import com.sinata.rest.modular.mall.controller.body.BodyApplySaleUser;
+import com.sinata.rest.modular.mall.controller.body.BodyUserAuthentication;
 import com.sinata.rest.modular.mall.controller.vo.*;
+import com.sinata.rest.modular.mall.model.MallGoods;
 import com.sinata.rest.modular.mall.model.MallOrder;
 import com.sinata.rest.modular.mall.model.MallVipEquity;
 import com.sinata.rest.modular.mall.model.MyUserSubstanceCoupon;
+import com.sinata.rest.modular.mall.service.IMallGoodsService;
 import com.sinata.rest.modular.mall.service.IMallOrderService;
 import com.sinata.rest.modular.mall.service.IMallVipEquityService;
 import com.sinata.rest.modular.member.model.MemUser;
@@ -20,6 +27,7 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import java.util.Optional;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +47,7 @@
 @RestController
 @RequestMapping("/mall/goodsGroup")
 @Api(tags = "商城-套餐商品")
+@SuppressWarnings("unchecked")
 public class MallGoodsGroupController {
 
     @Autowired
@@ -53,6 +62,33 @@
     @Autowired
     private IMallVipEquityService mallVipEquityService;
 
+    @Autowired
+    private TelecomUtil telecomUtil;
+
+    @Autowired
+    private IMallGoodsService mallGoodsService;
+    @GetMapping(value = "/purchase-auth")
+    @ApiOperation(value = "营销员购买套餐权限校验")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", value = "用户ID", defaultValue = "1", dataType = "Int", paramType = "query", required = true),
+            @ApiImplicitParam(name = "shareUserId", value = "分享套餐用户ID", defaultValue = "1", dataType = "Int", paramType = "query", required = true)
+    })
+    public ApiUtils purchaseAuth(@RequestParam(value = "userId") Integer userId,@RequestParam("shareUserId") Integer shareUserId) {
+        MemUser user = memUserService.getById(userId);
+        MemUser shareUser = memUserService.getById(shareUserId);
+        Integer isLeaveOffice = user.getIsLeaveOffice();
+        Integer memberGradeId = user.getMemberGradeId();
+        if (ToolUtil.isNotEmpty(user) && ToolUtil.isNotEmpty(shareUser)) {
+//            营销员不可购买营销员分享的套餐
+            if (isLeaveOffice == 0  && memberGradeId >= EnumMemberGrade.G_3.index
+                    && shareUser.getIsLeaveOffice() == 0 && shareUser.getMemberGradeId()>= EnumMemberGrade.G_3.index) {
+                if (!userId.equals(shareUserId)) {
+                    return ApiUtils.returnNG("营销员只能购买自己分享的套餐!");
+                }
+            }
+        }
+        return ApiUtils.returnOK();
+    }
     @GetMapping(value = "/myShare")
     @ApiOperation(value = "我的推广")
     @ApiImplicitParams({
@@ -82,46 +118,60 @@
                         .ne(MallOrder::getOrderType, EnumMallGoodsGroupType.GOODS.index)
                         .eq(MallOrder::getUserId, userId)
                         // 订单材料受益人,0未申请入司
-                        .eq(MallOrder::getUseUserId, 0)
+//                        .eq(MallOrder::getUseUserId, 0)
                         .in(MallOrder::getState, Arrays.asList(
                                 EnumMallOrderState.WAIT_CHECK.index,
                                 EnumMallOrderState.USE.index,
                                 EnumMallOrderState.SUCCESS.index
-                        ))
+                        )).orderByAsc(MallOrder::getUseUserId)
         );
 
         // 权益列表
         List<MallVipEquity> vipEquityList = mallVipEquityService.list();
 
         List<VoMallOrderEquity> voList = BeanUtil.copyToList(list, VoMallOrderEquity.class);
-        voList.stream().map(o -> {
-            List<String> contentList = new ArrayList();
-            for (MallVipEquity eq : vipEquityList) {
-                if (o.getOrderType().equals(eq.getGroupType())) {
-                    contentList.add(eq.getContent());
+        voList.stream().map(o -> toVoMallOrderEquity(o, vipEquityList)).collect(Collectors.toList());
+        for (VoMallOrderEquity voMallOrderEquity : voList) {
+            for (MallOrder mallOrder : list) {
+                if (voMallOrderEquity.getOrderNo().equals(mallOrder.getOrderNo())) {
+                    voMallOrderEquity.setPriceSale(mallOrder.getPayMoney());
                 }
             }
-            o.setEquityContent(contentList);
-
-            // 销售人员ID
-            MemUser saleUser = memUserService.getById(o.getSaleUserId());
-            if (saleUser != null) {
-                o.setSaleUserNickName(saleUser.getNickName());
-                o.setSaleUserRealName(saleUser.getRealName());
-            }
-
-            return o;
-        }).collect(Collectors.toList());
-
+        }
         return ApiUtils.returnOK(voList);
     }
+    private VoMallOrderEquity toVoMallOrderEquity(VoMallOrderEquity o,List<MallVipEquity> vipEquityList) {
+        List<String> contentList = new ArrayList();
+        for (MallVipEquity eq : vipEquityList) {
+            if (o.getOrderType().equals(eq.getGroupType())) {
+                contentList.add(eq.getContent());
+            }
+        }
+        o.setEquityContent(contentList);
 
+        // 销售人员ID
+        MemUser saleUser = memUserService.getById(o.getSaleUserId());
+        if (saleUser != null) {
+            o.setSaleUserNickName(saleUser.getNickName());
+            o.setSaleUserRealName(saleUser.getRealName());
+        }
+        MallGoods goods = mallGoodsService.getById(o.getGoodsId());
+        Optional.ofNullable(goods).ifPresent(item ->{
+            o.setGoodsName(item.getGoodsName());
+            o.setGoodsImage(item.getGoodsImage());
+        });
+        return o;
+    }
     @PostMapping(value = "/applySaleUser")
     @ApiOperation(value = "推荐他人入司")
     public ApiUtils applySaleUser(@RequestBody BodyApplySaleUser body) {
         return memUserService.applySaleUser(body);
     }
-
+    @PostMapping(value = "/real-name-authentication")
+    @ApiOperation(value = "三网手机实名认证")
+    public ApiUtils realNameAuthentication(@RequestBody BodyUserAuthentication body) {
+        return ApiUtils.returnOK(telecomUtil.verify(body.getRealName(),body.getIdCard(),body.getPhone()));
+    }
 //    @GetMapping(value = "/directTeam")
 //    @ApiOperation(value = "我的直属团队")
 //    @ApiImplicitParams({

--
Gitblit v1.7.1