فهرست منبع

训练营限制用户只能参加一个训练营

mac 2 سال پیش
والد
کامیت
025e545433

+ 9 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsCampMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.system.api.model.KxsCamp;
+import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -25,5 +26,13 @@ public interface KxsCampMapper extends BaseMapper<KxsCamp> {
      * @return {@link IPage}<{@link CampPageVO}>
      */
     IPage<CampPageVO> getByPage(Page<CampPageVO> page, @Param("userId") Long userId);
+
+    /**
+     * 判断创客是否已在其他训练营
+     *
+     * @param userId 用户 ID
+     * @return {@link KxsCampUser}
+     */
+    KxsCampUser selectByUserId(Integer userId);
 }
 

+ 5 - 3
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -136,9 +136,11 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
                 errorMsg.add(excel.getUserCode() + "创客未找到!");
             }
             //判断创客是否加入
-            KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
-                    .eq(KxsCampUser::getCampId, excel.getCampId())
-                    .eq(KxsCampUser::getUserId, user.getId()));
+//            KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
+//                    .eq(KxsCampUser::getCampId, excel.getCampId())
+//                    .eq(KxsCampUser::getUserId, user.getId()));
+            //判断创客是否已在其他训练营
+            KxsCampUser kxsCampUser = baseMapper.selectByUserId(user.getId());
             if(kxsCampUser != null){
                 errorMsg.add(excel.getUserCode() + "已在训练营!");
             }

+ 10 - 0
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampMapper.xml

@@ -33,7 +33,17 @@
         left join kxs_camp_user b on a.id = b.camp_id
         <where>
             a.del_flag = 0
+            and (b.user_id =  #{userId} or a.create_user_id = #{userId})
+        </where>
+    </select>
+    <select id="selectByUserId" resultType="com.kxs.system.api.model.KxsCampUser">
+        SELECT a.id, a.status, a.camp_num, a.camp_type, a.pic_url, a.title
+        from kxs_camp a
+        left join kxs_camp_user b on a.id = b.camp_id
+        <where>
+            and a.del_flag = 0
             and b.user_id =  #{userId}
+            and a.status in (0,1)
         </where>
     </select>