Ver Fonte

feat:会员看课逻辑调整

caoliqin há 2 meses atrás
pai
commit
7cc414c186

+ 10 - 0
fs-service-system/src/main/java/com/fs/company/domain/CompanyUser.java

@@ -136,6 +136,9 @@ public class CompanyUser extends BaseEntity
     /** 微信小程序OPENID(如果有小程序授权) */
     private String  maOpenId;
 
+    /** 是否需要单独注册会员,1-是,0-否(用于个微销售分享看课) */
+    private Integer isNeedRegisterMember;
+
     public Integer getIsAudit() {
         return isAudit;
     }
@@ -473,4 +476,11 @@ public class CompanyUser extends BaseEntity
         this.maOpenId = maOpenId;
     }
 
+    public Integer getIsNeedRegisterMember() {
+        return isNeedRegisterMember;
+    }
+
+    public void setIsNeedRegisterMember(Integer isNeedRegisterMember) {
+        this.isNeedRegisterMember = isNeedRegisterMember;
+    }
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -292,6 +292,6 @@ public interface CompanyUserMapper
 
     String selectCompanyUserNameUserById(@Param("userId") Long userId);
 
-    int setIsRegisterMember(boolean status, List<Long> userIds);
+    int setIsRegisterMember(@Param("status") boolean status, @Param("userIds")List<Long> userIds);
 
 }

+ 8 - 2
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -935,14 +935,18 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             return ResponseResult.fail(405,"当前销售不存在");
         }
 
-        //判断:1、如果没有绑定销售,就提示;
+        //判断:1、如果没有绑定销售,就返回给客服的微信图片;
         //2、如果只绑定了当前销售,需要添加看课记录(正常流程);
         //3、以上都不是,则标识重粉,需要加入关系表,并打上重粉标签
         if(fsUser.getCompanyUserId() == null) {
             return ResponseResult.fail(503, "暂时未绑定销售,请联系管理员");
         }
 
-        //添加判断:该用户是否已经存在此课程的看课记录,并且看课记录的销售id不是传入的销售id
+        // 如果开启了黑名单审核,需要提示
+        if(fsUser.getStatus() == 0) {
+            return ResponseResult.fail(505, "管理开启了会员审核,请等待审核");
+        }
+
         //查询看课记录
         FsCourseWatchLog log = new FsCourseWatchLog();
         log.setUserId(param.getUserId());
@@ -956,6 +960,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         if(fsUserCourse != null){
             courseProject = fsUserCourse.getProject();
         }
+
+        //添加判断:该用户是否已经存在此课程的看课记录,并且看课记录的销售id不是传入的销售id
         if(watchCourseVideo != null){
             if(!watchCourseVideo.getCompanyUserId().equals(param.getCompanyUserId())) {
                 //提示

+ 1 - 1
fs-service-system/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -468,7 +468,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update company_user
         set is_need_register_member = #{status} where user_id in
         <foreach item="userId" collection="userIds" open="(" separator="," close=")">
-            #{userIds}
+            #{userId}
         </foreach>
     </update>
 

+ 20 - 1
fs-user-app/src/main/java/com/fs/app/controller/WxCompanyUserController.java

@@ -12,8 +12,10 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.utils.IpUtil;
 import com.fs.common.utils.ServletUtils;
+import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyDeptService;
+import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.store.domain.FsUser;
 import com.fs.store.service.IFsUserService;
@@ -57,6 +59,9 @@ public class WxCompanyUserController extends AppBaseController {
     @Autowired
     private IFsUserService userService;
 
+    @Autowired
+    ICompanyService companyService;
+
     @ApiOperation("小程序-授权登录")
     @PostMapping("/loginByMa")
     public R login(@RequestBody LoginMaWxParam param) {
@@ -126,6 +131,16 @@ public class WxCompanyUserController extends AppBaseController {
 //                companyUserMp.setLoginIp(ip);
 //                companyUserService.updateUserProfile(companyUser);
 //            }
+
+            // 特殊(需求设计:需要根据公司是否开启黑名单来设置会员初始化的状态)
+            Company company = null;
+            if(param.getCompanyId() != null){
+                company = companyService.selectCompanyById(param.getCompanyId());
+            }
+
+            // 根据销售后台设置的  是否需要单独注册会员 来判断是否需要设置销售的值
+            CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
+
             String ip = IpUtil.getRequestIp();
             if (user == null) {
                 user = userService.selectFsUserByMaOpenId(session.getOpenid());
@@ -146,11 +161,15 @@ public class WxCompanyUserController extends AppBaseController {
                     user = new FsUser();
                     user.setNickname(userInfo.getNickName() != null ? userInfo.getNickName() : "微信用户");
                     user.setAvatar(userInfo.getAvatarUrl() != null ? userInfo.getAvatarUrl() : null);
-                    user.setStatus(1);
+                    user.setStatus((company != null ? company.getFsUserIsDefaultBlack() : 0) == 1 ? 0 : 1);
                     user.setMaOpenId(session.getOpenid());
                     user.setUnionId(session.getUnionid());
                     user.setCreateTime(new Date());
                     user.setPhone(phoneNoInfo.getPhoneNumber());
+                    if(companyUser.getIsNeedRegisterMember() != 1){
+                        user.setCompanyId(param.getCompanyId());
+                        user.setCompanyUserId(param.getCompanyUserId());
+                    }
                     userService.insertFsUser(user);
                 }
             } else {

+ 12 - 4
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -6,7 +6,9 @@ import com.fs.app.utils.JwtUtils;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.company.domain.Company;
+import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyService;
+import com.fs.company.service.ICompanyUserService;
 import com.fs.course.mapper.FsCourseSopLogsMapper;
 import com.fs.course.mapper.FsCourseWatchLogMapper;
 import com.fs.qw.mapper.QwExternalContactMapper;
@@ -56,6 +58,8 @@ public class WxH5MpController {
     QwExternalContactMapper qwExternalContactMapper;
     @Autowired
     ICompanyService companyService;
+    @Autowired
+    ICompanyUserService companyUserService;
 
 
     @ApiOperation("课程分享链接公众号登录")
@@ -66,12 +70,14 @@ public class WxH5MpController {
             WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
             WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
             //1、特殊(需求设计:需要根据公司是否开启黑名单来设置会员初始化的状态)
-            //2、获取公司信息
             Company company = null;
             if(param.getCompanyId() != null){
                 company = companyService.selectCompanyById(param.getCompanyId());
             }
-            FsUser user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
+            // 根据销售后台设置的  是否需要单独注册会员 来判断是否需要设置销售的值
+            CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
+
+        FsUser user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
             if (user != null) {
                 //修改
                 FsUser userMap = new FsUser();
@@ -90,8 +96,10 @@ public class WxH5MpController {
                 user.setMpOpenId(wxMpUser.getOpenid());
                 user.setUnionId(wxMpUser.getUnionId());
                 user.setCreateTime(new Date());
-                user.setCompanyId(param.getCompanyId());
-                user.setCompanyUserId(param.getCompanyUserId());
+                if(companyUser.getIsNeedRegisterMember() != 1){
+                    user.setCompanyId(param.getCompanyId());
+                    user.setCompanyUserId(param.getCompanyUserId());
+                }
                 userService.insertFsUser(user);
             }
             log.error("用户信息user: {}, 用户id: {}", user, user.getUserId());

+ 9 - 0
fs-user-app/src/main/java/com/fs/app/param/LoginMaWxParam.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 @Data
@@ -19,6 +20,14 @@ public class LoginMaWxParam implements Serializable {
     @ApiModelProperty(value = "小程序加密算法的初始向量")
     private String iv;
 
+    @NotNull(message = "公司id不能为空")
+    @ApiModelProperty(value = "公司id")
+    private Long companyId;
+
+    @NotNull(message = "销售id不能为空")
+    @ApiModelProperty(value = "销售id")
+    private Long companyUserId;
+
 //    @ApiModelProperty(value = "公司id,如果不是第一位销售,都需要传")
 //    private Long companyId;