Sfoglia il codice sorgente

添加接口有效创客校验,修改创建团队校验,不再校验团名,修改后台团队列表接口返回page

Pota1ovO 2 anni fa
parent
commit
3456510ac5

+ 8 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java

@@ -91,6 +91,14 @@ public interface RemoteKxsProductService {
 	@GetExchange("/machineCirculationLog/loadCirculationLogByMachineId")
 	R<KxsMachineCirculationLog> loadCirculationLogByMachineId(@RequestParam("machineId") Integer machineId, @RequestHeader(SecurityConstants.FROM) String from);
 
+	/**
+	 * 校验用户名下劵大于等于3或下单过指定商品或激活数大于等于3
+	 * @param userId
+	 * @param from
+	 * @return
+	 */
+	@GetExchange("/ticket/verifyUserTickteCountAndShopAndActivite")
+	Boolean verifyUserTickteCountAndShopAndActivite(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
 	/**
 	 * 可回收机具数量
 	 *

+ 8 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/TicketController.java

@@ -32,8 +32,15 @@ public class TicketController {
      */
     private final KxsTicketService kxsTicketService;
     private final KxsTicketTransferService kxsTicketTransferService;
+    /**
+     * 校验用户名下劵大于等于3或下单过指定商品
+     */
+    @Inner
+    @GetMapping("/verifyUserTickteCountAndShopAndActivite")
+    public Boolean verifyUserTickteCountAndShopAndActivite(@RequestParam("userId") Long userId) {
 
-
+        return kxsTicketService.verifyUserTickteCountAndShopAndActivite(userId);
+    }
 
     /**
      * 兑换券列表

+ 7 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsShopOrderMapper.java

@@ -38,5 +38,12 @@ public interface KxsShopOrderMapper extends BaseMapper<KxsShopOrder> {
      * @return {@link List}<{@link ShopOrderGoodsUserVO}>
      */
     List<ShopOrderGoodsUserVO> getDateBetweenOrders(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    /**
+     * 查询用户购买指定商品的全部订单
+     * @param userId
+     * @return
+     */
+    List<KxsShopOrder> verifyUserTickteCountAndShopAndActivite(@Param("userId") Long userId,@Param("shopIds")List<Long> shopIds);
 }
 

+ 4 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsTicketService.java

@@ -22,5 +22,9 @@ public interface KxsTicketService extends IService<KxsTicket> {
      * @return {@link IPage}<{@link TicketListVO}>
      */
     IPage<TicketListVO> getByPage(Page<TicketListVO> page, Integer ticketType);
+    /**
+     * 校验用户名下劵大于等于3或下单过指定商品
+     */
+    Boolean verifyUserTickteCountAndShopAndActivite(Long userId);
 }
 

+ 29 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsTicketServiceImpl.java

@@ -6,14 +6,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.model.KxsBrand;
+import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsShopOrder;
 import com.kxs.product.api.vo.kxsapp.ticket.TicketListVO;
 import com.kxs.product.biz.mapper.KxsBrandMapper;
+import com.kxs.product.biz.mapper.KxsMachineMapper;
+import com.kxs.product.biz.mapper.KxsShopOrderMapper;
 import com.kxs.product.biz.mapper.KxsTicketMapper;
 import com.kxs.product.api.model.KxsTicket;
 import com.kxs.product.biz.service.KxsTicketService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -27,7 +32,8 @@ import java.util.List;
 public class KxsTicketServiceImpl extends ServiceImpl<KxsTicketMapper, KxsTicket> implements KxsTicketService {
 
     private final KxsBrandMapper kxsBrandMapper;
-
+    private final KxsShopOrderMapper kxsShopOrderMapper;
+    private final KxsMachineMapper kxsMachineMapper;
     @Override
     public IPage<TicketListVO> getByPage(Page<TicketListVO> page, Integer ticketType) {
 
@@ -44,5 +50,27 @@ public class KxsTicketServiceImpl extends ServiceImpl<KxsTicketMapper, KxsTicket
         return byPage;
 
     }
+
+    @Override
+    public Boolean verifyUserTickteCountAndShopAndActivite(Long userId) {
+        //券码数量
+        Long ticketCount = baseMapper.selectCount(Wrappers.<KxsTicket>query().lambda().eq(KxsTicket::getUserId, userId).eq(KxsTicket::getStatus, 0));
+        if (ticketCount >= 3){
+            return true;
+        }
+        //指定商品id  (10-电签机具/广电卡通兑券,11-大POS兑换券,77-来客吧产品组合包A.78-来客吧产品组合包B.79-来客产品组合包C)
+        List<Long> shopIds = Arrays.asList(10L,11L,77L,78L,79L);
+        //校验是否下单过指定商品
+        List<KxsShopOrder> kxsShopOrderList = kxsShopOrderMapper.verifyUserTickteCountAndShopAndActivite(userId,shopIds);
+        if (!kxsShopOrderList.isEmpty()){
+            return true;
+        }
+        //查询激活数 条件为用户名下已激活已绑定的机具
+        Long aLong = kxsMachineMapper.selectCount(Wrappers.<KxsMachine>query().lambda().eq(KxsMachine::getUserId, userId).eq(KxsMachine::getIsAct, 1).eq(KxsMachine::getBindTime,1));
+        if (aLong >= 3){
+            return true;
+        }
+        return false;
+    }
 }
 

+ 42 - 0
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml

@@ -83,5 +83,47 @@
         </where>
 
     </select>
+    <select id="verifyUserTickteCountAndShopAndActivite" resultType="com.kxs.product.api.model.KxsShopOrder">
+        select kso.* from kxs_shop_order kso
+        left join kxs_shop_order_info ksoi on kso.id = ksoi.order_id
+        where kso.del_flag != 1
+        and kso.user_id = #{userId}
+        and ksoi.goods_id in
+        <foreach collection="shopIds" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 </mapper>

+ 0 - 5
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/kxsapp/camp/CampAddBcqtTeamDTO.java

@@ -26,10 +26,5 @@ public class CampAddBcqtTeamDTO {
      * 队长id
      */
     @Schema(description = "队长id")
-    @NotNull(message = "用户id不能为空")
     private Long captainId;
-
-
-
-
 }

+ 2 - 2
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/CampController.java

@@ -123,11 +123,11 @@ public class CampController {
     /**
      * 百城千团-创建团队校验
      *
-     * @param param 实体对象
      * @return 百城千团-创建团队
      */
     @PostMapping("/verifyAddTeam")
-    public R verifyAddTeam(@Valid @RequestBody CampAddBcqtTeamDTO param) {
+    public R verifyAddTeam() {
+        CampAddBcqtTeamDTO param = new CampAddBcqtTeamDTO();
         Long id = SecurityUtils.getUser().getId();
         param.setCaptainId(id);
         return kxsBcqtTeamService.verifyAddTeam(param);

+ 26 - 9
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsBcqtTeamServiceImpl.java

@@ -3,6 +3,7 @@ package com.kxs.system.biz.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -88,6 +89,9 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
         if (param.getTeamName().isEmpty()){
             return R.failed("团队名不能为空");
         }
+        if (param.getCaptainId() == null){
+            return R.failed("队长id不能为空");
+        }
         Long captainId = param.getCaptainId();
         R r = verifyAddTeam(param);
         if (r.getStatus() == 0) {
@@ -130,8 +134,6 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     public R verifyAddTeam(CampAddBcqtTeamDTO param) {
 
         Long captainId = param.getCaptainId();
-
-
         //不存在未结束的团队
         KxsBcqtTeamDetail kxsBcqtTeamDetail = kxsBcqtTeamDetailMapper.selectOne(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getUserId, captainId).eq(KxsBcqtTeamDetail::getEndFlag, 0));
         if (kxsBcqtTeamDetail != null) {
@@ -144,9 +146,14 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
         }
         //用户状态正常且已实名
         if (!kxsUserR.getData().getStatus().equals(1) || !kxsUserR.getData().getRealStatus().equals(1)){
-            R.failed("用户状态异常或用户未实名");
+            return R.failed("用户状态异常或用户未实名");
+        }
+        //有效创客创客校验
+        boolean b = remoteKxsUserService.validUserVerify(captainId, SecurityConstants.FROM_IN);
+        if (!b){
+            return R.failed("该用户非有效创客");
+
         }
-        //todo 有效创客
         return R.ok();
     }
 
@@ -357,8 +364,10 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     @Override
     public R getByBcqtPage(Page<KxsBcqtTeam> page, GetByBcqtPageDTO param) {
         ArrayList<Long> teamIds = new ArrayList<>();
+        //当传入的用户编码不为null时先行查询用户
         if (param.getUserCode() != null && !param.getUserCode().equals("")){
             List<KxsBcqtTeamDetail> kxsBcqtTeamDetails = kxsBcqtTeamDetailMapper.selectList(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getUserCode, param.getUserCode()));
+            //当用户未查询到时直接返回空
             if (kxsBcqtTeamDetails.size() == 0){
                 return R.ok();
             }
@@ -366,17 +375,21 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 teamIds.add(kxsBcqtTeamDetail.getTeamId());
             }
         }
-
-        Page<KxsBcqtTeam> page1 = page(page, Wrappers.<KxsBcqtTeam>query().lambda()
+        //查询团队列表
+        Page<KxsBcqtTeam> kxsBcqtTeamPage = page(page, Wrappers.<KxsBcqtTeam>query().lambda()
                 .eq(param.getStatus() != null, KxsBcqtTeam::getStatus, param.getStatus())
                 .eq(param.getReachStatus() != null, KxsBcqtTeam::getReachStatus, param.getReachStatus())
                 .like(param.getTeamName() != null && !param.getTeamName().equals(""),KxsBcqtTeam::getTeamName,param.getTeamName())
                 .in(teamIds.size() != 0, KxsBcqtTeam::getId, teamIds));
+        //构造返回列表VO集合
         ArrayList<GetByBcqtPageVO> getByBcqtPageVOS = new ArrayList<>();
-        for (KxsBcqtTeam record : page1.getRecords()) {
+        for (KxsBcqtTeam record : kxsBcqtTeamPage.getRecords()) {
+            //构造返回实体
             GetByBcqtPageVO getByBcqtPageVO = new GetByBcqtPageVO();
             BeanUtil.copyProperties(record,getByBcqtPageVO);
+            //查询团体详情数据 构造总激活数
             List<KxsBcqtTeamDetail> kxsBcqtTeamDetails = kxsBcqtTeamDetailMapper.selectList(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getTeamId, record.getId()));
+            //总激活数
             int activityTotal = 0;
             for (KxsBcqtTeamDetail kxsBcqtTeamDetail : kxsBcqtTeamDetails) {
                 if (kxsBcqtTeamDetail.getGdActivateNumber() != null){
@@ -401,8 +414,11 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
             getByBcqtPageVO.setActivityTotal(activityTotal);
             getByBcqtPageVOS.add(getByBcqtPageVO);
         }
-
-        return R.ok(getByBcqtPageVOS);
+        //构造返回page
+        Page<GetByBcqtPageVO> kxsBcqtTeamDetailPage = new Page<>();
+        kxsBcqtTeamDetailPage.setTotal(kxsBcqtTeamPage.getTotal());
+        kxsBcqtTeamDetailPage.setRecords(getByBcqtPageVOS);
+        return R.ok(kxsBcqtTeamDetailPage);
     }
 
     @Override
@@ -439,6 +455,7 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
         }
         if (kxsBcqtTeam.getStatus() != 0){
             return R.failed("只能加入未开始的团队");
+
         }
         R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(Math.toIntExact(userId),SecurityConstants.FROM_IN);
         KxsUser kxsUser = kxsUserR.getData();

+ 8 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java

@@ -31,6 +31,14 @@ public interface RemoteKxsUserService {
 	@GetExchange("/app/checkMobileCode")
 	R<Boolean> checkMobileCode(@RequestParam("phone") String phone, @RequestParam("code") String code, @RequestHeader(SecurityConstants.FROM) String from);
 
+	/**
+	 * 有效创客校验
+	 * @param userId 用户id
+	 * @param from
+	 * @return
+	 */
+	@GetExchange("/user/validUserVerify")
+	boolean validUserVerify(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
 	/**
 	 * 通过手机号码查询用户信息
 	 * @param phone 电话信息

+ 8 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java

@@ -63,7 +63,15 @@ public class KxsUserController {
                 .eq(KxsUser::getUserCode, userCode));
         return R.ok(user);
     }
+    /**
+     * 有效创客校验
+     */
+    @Inner
+    @GetMapping(value = { "/validUserVerify" })
+    public boolean validUserVerify(@RequestParam("userId") Long userId) {
 
+        return kxsUserService.validUserVerify(userId);
+    }
     /**
      * 检查用户是否在自己伞下
      * 内部调用

+ 35 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -201,7 +201,11 @@ public interface KxsUserService extends IService<KxsUser> {
      */
     LevelDetailVO levelDetail();
 
-
+    /**
+     * 验证验证码
+     *
+     * @param mobile 手机号
+     */
     void checkValidateCode(String mobile, String code);
 
     /**
@@ -211,13 +215,41 @@ public interface KxsUserService extends IService<KxsUser> {
      * @return {@link R}
      */
     R forgetPayPwd(ForgetPayPwdDTO param);
-
+    /**
+     * 创客列表
+     *
+     * @param page 分页对象
+     * @param param 查询实体
+     * @return 创客列表
+     */
     Object myUserList(Page<KxsUser> page, UserMyUserListDTO param);
-
+    /**
+     * 用户统计
+     *
+     * @return 用户统计
+     */
     Object myUserStatistics();
 
+    /**
+     * 用户详情
+     *
+     * @param id 主键ID
+     * @return 用户详情
+     */
     R myUserDetail(Integer id);
 
+    /**
+     * 校验推荐码
+     * @param userCode
+     * @return
+     */
     Object verifyUserCode(String userCode);
+
+    /**
+     * 有效创客校验
+     * @param userId
+     * @return
+     */
+    boolean validUserVerify(Long userId);
 }
 

+ 25 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -21,6 +21,7 @@ import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.vo.kxsapp.excel.ExistPayPwdVO;
 import com.kxs.store.api.feign.RemoteKxsStoreService;
 import com.kxs.store.api.model.KxsWarehouseLimit;
@@ -96,7 +97,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     private final KxsPartnerMapper kxsPartnerMapper;
 
     private final KxsUserPresetLogMapper kxsUserPresetLogMapper;
-
+    private final RemoteKxsProductService remoteKxsProductService;
 
     private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
     
@@ -430,6 +431,29 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return R.ok(one.getUsername());
     }
 
+    @Override
+    public boolean validUserVerify(Long userId) {
+        //校验有效创客
+        LocalDateTime now = LocalDateTime.now();
+        //运营中心校验
+        //查询自己当前未过期的运营中心数据
+        KxsPartner kxsPartner = kxsPartnerMapper.selectOne(Wrappers.<KxsPartner>query().lambda().eq(KxsPartner::getUserId, userId).gt(KxsPartner::getExpiredDate, now));
+        if (kxsPartner != null){
+            return true;
+        }
+        //查询盟主
+        KxsLeader kxsLeader = kxsLeaderMapper.selectOne(Wrappers.<KxsLeader>query().lambda().eq(KxsLeader::getUserId, userId).gt(KxsLeader::getExpiredDate, now));
+        if (kxsLeader != null){
+            return true;
+        }
+        //查询个人名下电签兑换劵+大机兑换券>=3 或 激活POS机数量+激活来客吧商户数量+激活广电卡数量 >3 或 商城下单过指定商品(10-电签机具/广电卡通兑券,11-大POS兑换券,77-来客吧产品组合包A.78-来客吧产品组合包B.79-来客产品组合包C)
+        return remoteKxsProductService.verifyUserTickteCountAndShopAndActivite(userId, SecurityConstants.FROM_IN);
+
+    }
+
+
+
+
 
     @Override
     public R updatePwd(UserUpdatePwdDTO param) {