Jelajahi Sumber

营期会员注册开关

wangxy 2 minggu lalu
induk
melakukan
2e7e80dc5f

+ 35 - 0
fs-company/src/main/java/com/fs/company/controller/course/FsUserCoursePeriodController.java

@@ -9,6 +9,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.domain.FsUserCoursePeriodDays;
@@ -30,6 +31,8 @@ import com.fs.framework.service.TokenService;
 import com.fs.his.vo.OptionsVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.hc.openapi.tool.fastjson.JSON;
+import com.hc.openapi.tool.fastjson.JSONObject;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -83,6 +86,19 @@ public class FsUserCoursePeriodController extends BaseController {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         fsUserCoursePeriod.setCompanyIdList(Collections.singletonList(loginUser.getCompany().getCompanyId()));
         List<FsUserCoursePeriodVO> list = fsUserCoursePeriodService.selectFsUserCoursePeriodPage(fsUserCoursePeriod);
+        Long currentCompanyId = loginUser.getCompany().getCompanyId();
+        for (FsUserCoursePeriodVO vo : list) {
+            String isNeedRegisterMember = vo.getIsNeedRegisterMember();
+
+            if (StringUtils.isNotEmpty(isNeedRegisterMember)) {
+                boolean containsCurrentCompany = Arrays.stream(isNeedRegisterMember.split(","))
+                        .map(String::trim)
+                        .anyMatch(id -> id.equals(String.valueOf(currentCompanyId)));
+                vo.setIsNeedRegisterMember(containsCurrentCompany ? "1" : "0");
+            } else {
+                vo.setIsNeedRegisterMember("0");
+            }
+        }
         PageInfo<FsUserCoursePeriodVO> pageInfo = new PageInfo<>(list);
         Map<String, Object> result = new HashMap<>();
         result.put("rows", pageInfo.getList());
@@ -145,6 +161,25 @@ public class FsUserCoursePeriodController extends BaseController {
         return toAjax(fsUserCoursePeriodService.updateFsUserCoursePeriod(fsUserCoursePeriod));
     }
 
+
+    /**
+     * 修改会员营期单独注册状态
+     */
+    @PreAuthorize("@ss.hasPermi('course:period:edit')")
+    @Log(title = "会员营期", businessType = BusinessType.UPDATE)
+    @PutMapping("/editIsNeedRegisterMember")
+    public AjaxResult editIsNeedRegisterMember(@RequestBody FsUserCoursePeriod fsUserCoursePeriod)
+    {
+        FsUserCoursePeriod fsUserCoursePeriod1 = fsUserCoursePeriodService.selectFsUserCoursePeriodById(fsUserCoursePeriod.getPeriodId());
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if (ObjectUtil.isEmpty(fsUserCoursePeriod.getIsNeedRegisterMember())){
+            throw new CustomException("修改失败!");
+        }
+
+        return toAjax(fsUserCoursePeriodService.editIsNeedRegisterMember(fsUserCoursePeriod,loginUser.getCompany().getCompanyId().toString()));
+
+    }
+
     /**
      * 删除会员营期
      */

+ 3 - 0
fs-service/src/main/java/com/fs/course/domain/FsUserCoursePeriod.java

@@ -130,4 +130,7 @@ public class FsUserCoursePeriod
      */
     private Date periodLine;
 
+    /** 是否需要单独注册会员,1-是,0-否(用于个微销售分享看课) */
+    private String isNeedRegisterMember;
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCoursePeriodService.java

@@ -108,4 +108,6 @@ public interface IFsUserCoursePeriodService
 
     List<Long> selectFsUserCoursePeriodListByPeriodId(List<Long> periodIds,Long companyId);
 
+    int editIsNeedRegisterMember(FsUserCoursePeriod fsUserCoursePeriod,String s);
+
 }

+ 27 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodServiceImpl.java

@@ -384,4 +384,31 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
     public List<Long> selectFsUserCoursePeriodListByPeriodId(List<Long> periodIds, Long companyId) {
         return fsUserCoursePeriodMapper.selectFsUserCoursePeriodListByPeriodId(periodIds,companyId);
     }
+    @Override
+    public int editIsNeedRegisterMember(FsUserCoursePeriod fsUserCoursePeriod,String companyId) {
+        String currentValue = fsUserCoursePeriod.getIsNeedRegisterMember();
+
+        if (currentValue.equals("0")) {
+            // 移除指定的 companyId
+            String updatedValue = Arrays.stream(currentValue.split(","))
+                    .map(String::trim)
+                    .filter(id -> !id.equals(companyId))
+                    .collect(Collectors.joining(","));
+            fsUserCoursePeriod.setIsNeedRegisterMember(updatedValue);
+        } else {
+            // 添加 companyId,并过滤掉 "0"
+            String updatedValue = Arrays.stream(currentValue.split(","))
+                    .map(String::trim)
+                    .filter(id -> !id.equals("0")) // 清除 "0"
+                    .collect(Collectors.collectingAndThen(
+                            Collectors.toCollection(LinkedHashSet::new),
+                            set -> {
+                                set.add(companyId);
+                                return String.join(",", set);
+                            }
+                    ));
+            fsUserCoursePeriod.setIsNeedRegisterMember(updatedValue);
+        }
+        return fsUserCoursePeriodMapper.updateFsUserCoursePeriod(fsUserCoursePeriod);
+    }
 }

+ 14 - 1
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2250,7 +2250,20 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
                 if ((companyUser.getIsAllowedAllRegister() != null && companyUser.getIsAllowedAllRegister() != 1)) {
                     return ResponseResult.fail(504, "当前销售禁止绑定会员,请联系销售!");
                 }
-                if (companyUser.getIsNeedRegisterMember() == null || companyUser.getIsNeedRegisterMember() == 1) {
+                // 销售配置:是否需要邀请注册(null或1表示需要邀请)
+                boolean requireInvite = companyUser.getIsNeedRegisterMember() == null
+                        || companyUser.getIsNeedRegisterMember() == 1;
+                // 营期配置:当前公司是否在强制邀请列表中
+                boolean periodForceInvite = false;
+                if (!requireInvite
+                        && period != null
+                        && StringUtils.isNotEmpty(period.getIsNeedRegisterMember())) {
+                    String companyIdStr = String.valueOf(company.getCompanyId());
+                    periodForceInvite = Arrays.stream(period.getIsNeedRegisterMember().split(","))
+                            .map(String::trim)
+                            .anyMatch(id -> id.equals(companyIdStr));
+                }
+                if (requireInvite || periodForceInvite) {
                     return ResponseResult.fail(504, "请联系销售发送邀请链接成为会员!");
                 }
                 int defaultStatus = (company != null ? company.getFsUserIsDefaultBlack() : 0) == 1 ? 0 : 1;

+ 2 - 0
fs-service/src/main/java/com/fs/course/vo/FsUserCoursePeriodVO.java

@@ -88,5 +88,7 @@ public class FsUserCoursePeriodVO implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "营期线", width = 31, dateFormat = "yyyy-MM-dd")
     private Date periodLine;
+    /** 是否需要单独注册会员,1-是,0-否(用于个微销售分享看课) */
+    private String isNeedRegisterMember;
 
 }

+ 5 - 0
fs-service/src/main/resources/mapper/course/FsUserCoursePeriodMapper.xml

@@ -24,6 +24,7 @@
         <result property="appViewEnabled"    column="app_view_enabled"    />
         <result property="miniProgramViewEnabled"    column="mini_program_view_enabled"    />
         <result property="h5ViewEnabled"    column="h5_view_enabled"    />
+        <result property="isNeedRegisterMember"    column="is_need_register_member"    />
     </resultMap>
 
     <sql id="selectFsUserCoursePeriodVo">
@@ -51,6 +52,7 @@
         SELECT
         fs_user_course_period.period_id,
         fs_user_course_period.period_name,
+        fs_user_course_period.is_need_register_member,
         fs_user_course_period.company_id,
         fs_user_course_period.training_camp_id,
         fs_user_course_period.create_time,
@@ -120,6 +122,7 @@
             <if test="appViewEnabled != null">app_view_enabled,</if>
             <if test="miniProgramViewEnabled != null">mini_program_view_enabled,</if>
             <if test="h5ViewEnabled != null">h5_view_enabled,</if>
+            <if test="isNeedRegisterMember != null">is_need_register_member,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="periodId != null">#{periodId},</if>
@@ -145,6 +148,7 @@
             <if test="appViewEnabled != null">#{appViewEnabled},</if>
             <if test="miniProgramViewEnabled != null">#{miniProgramViewEnabled},</if>
             <if test="h5ViewEnabled != null">#{h5ViewEnabled},</if>
+            <if test="isNeedRegisterMember != null">#{isNeedRegisterMember},</if>
         </trim>
     </insert>
 
@@ -173,6 +177,7 @@
             <if test="appViewEnabled != null">app_view_enabled = #{appViewEnabled},</if>
             <if test="miniProgramViewEnabled != null">mini_program_view_enabled = #{miniProgramViewEnabled},</if>
             <if test="h5ViewEnabled != null">h5_view_enabled = #{h5ViewEnabled},</if>
+            <if test="isNeedRegisterMember != null">is_need_register_member = #{isNeedRegisterMember},</if>
         </trim>
         where period_id = #{periodId}
     </update>