فهرست منبع

1、销售公司管理员可生成邀请码/扫公司码绑定,客户端“填写邀请码”方式进行直播用户归属关联

yys 1 هفته پیش
والد
کامیت
506a269d74

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

@@ -194,6 +194,13 @@ public class CompanyUser extends BaseEntity
     /** 绑定的公司用户ID */
     private Long bindCompanyUserId;
 
+    /** 邀请码 */
+    private String invitationCode;
+
+    /** 邀请人名称 */
+    @TableField(exist = false)
+    private String invitationName;
+
     @TableField(exist = false)
     private List<Long> deptList;
 

+ 6 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -38,6 +38,9 @@ public interface CompanyUserMapper
      */
     public CompanyUser selectCompanyUserById(Long userId);
 
+    @Select("select * from company_user where user_id=#{invitedSalesId} and del_flag=0")
+     CompanyUser getInviteCodeByCompanyUserIdAndUserId(@Param("invitedSalesId") Long invitedSalesId);
+
     /**
      * 查询物业公司管理员信息列表
      *
@@ -62,6 +65,9 @@ public interface CompanyUserMapper
      */
     public int updateCompanyUser(CompanyUser companyUser);
 
+    @Select("select user_id from company_user where invitation_code=#{inviteCode} and del_flag=0")
+    Long selectCompanyUserIdByInviteCode(@Param("inviteCode") String inviteCode);
+
     @Update("UPDATE company_user SET qw_user_id = NULL,qw_status=0 where user_id=#{userId}")
     public int updateCompanyUserByNullQwUserID(@Param("userId") Long companyUserId);
 

+ 2 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -282,4 +282,6 @@ public interface ICompanyUserService {
     FsUserSalesBindCheckVO checkFsUserSalesBind(Long userId, Long companyUserId);
 
     int unBind(String userId);
+
+    CompanyUser getInviteCodeByCompanyUserIdAndUserId(Long invitedBySalesId);
 }

+ 9 - 2
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -1037,7 +1037,7 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     }
 
 
-    private final static String bindBaseUrl = "https://userapp.jnmyunl.com/bindcompanyuser?companyUserId=";
+    private final static String bindBaseUrl = "https://userapp.cqtyt.com/bindcompanyuser?companyUserId=";
     /**
      * @param companyUserId
      * @return
@@ -1105,7 +1105,14 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     public List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(Long companyUserId) {
         return companyUserMapper.selectBoundFsUsersByCompanyUserId(companyUserId);
     }
-
+    @Override
+    public CompanyUser getInviteCodeByCompanyUserIdAndUserId(Long userId) {
+        CompanyUser companyUser = companyUserMapper.getInviteCodeByCompanyUserIdAndUserId(userId);
+        if (companyUser != null) {
+            return companyUser;
+        }
+        return null;
+    }
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void bindFsUserAndImportFriend(Long userId, Long companyUserId) {

+ 2 - 0
fs-service/src/main/java/com/fs/his/domain/FsUser.java

@@ -189,6 +189,8 @@ public class FsUser extends BaseEntity
     /** app登录后不为null(表示是否下载app) */
     private String historyApp;
 
+    private  Long invitedBySalesId;//邀请人销售id
+
     private String appOpenId;
 
     private String appleKey; // 苹果key登陆验证

+ 15 - 0
fs-service/src/main/java/com/fs/his/dto/FsUserBindSalesParamDTO.java

@@ -0,0 +1,15 @@
+package com.fs.his.dto;
+
+import lombok.Data;
+
+@Data
+public class FsUserBindSalesParamDTO {
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 销售id
+     */
+    private String inviteCode;
+}

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -252,4 +252,9 @@ public interface IFsUserService
     R exchangDetail(Map<String, Object> params);
 
     R withdrawal(FsIntegralWithdrawalParam param);
+
+    /**
+     * 销售分享app下载链接给用户
+     */
+    Boolean  bindUserToSales(Long userId, String inviteCode);
 }

+ 20 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -1670,6 +1670,26 @@ public class FsUserServiceImpl implements IFsUserService {
         return fsUserMapper.deleteFsUserByUserId(userId);
     }
 
+
+    @Override
+    public Boolean bindUserToSales(Long userId, String inviteCode) {
+        FsUser fsUser = fsUserMapper.selectFsUserById(userId);
+        if (fsUser == null) {
+            throw new CustomException("用户不存在");
+        }
+        Long salesId = companyUserMapper.selectCompanyUserIdByInviteCode(inviteCode);
+        if (salesId == null) {
+            throw new CustomException("邀请码不存在");
+        }
+        if(fsUser.getInvitedBySalesId() != null){
+            if(fsUser.getInvitedBySalesId().equals(salesId)){
+                throw new CustomException("已发送给app下载链接给该用户");
+            }
+        }
+        fsUser.setInvitedBySalesId(salesId);
+        return fsUserMapper.updateFsUser(fsUser)>0;
+    }
+
     @Override
     public R checkIsSales(FsUser fsUser) {
         Long userId = fsUser.getUserId();

+ 13 - 0
fs-user-app/src/main/java/com/fs/app/controller/UserController.java

@@ -11,6 +11,8 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.sign.Md5Utils;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
 import com.fs.course.service.IFsUserCourseVideoService;
 import com.fs.his.domain.FsDoctor;
 import com.fs.his.domain.FsUser;
@@ -89,6 +91,8 @@ public class UserController extends  AppBaseController {
     @Autowired
     private FsUserMapper userMapper;
 
+    @Autowired
+    private ICompanyUserService companyUserService;
 
     @Autowired
     private IFsUserService fsUserService;
@@ -135,8 +139,17 @@ public class UserController extends  AppBaseController {
             if (mayWithdraw!=null&&mayWithdraw.compareTo(BigDecimal.ZERO)>0){
                user.setMayWithdraw(mayWithdraw.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN));
             }
+            CompanyUser companyUser =new CompanyUser();
+            if(user.getInvitedBySalesId()!=null){
+                companyUser = companyUserService.getInviteCodeByCompanyUserIdAndUserId(user.getInvitedBySalesId());
+                if(companyUser!=null){
+                    companyUser.setInvitationName(StringUtils.isNotEmpty(companyUser.getNickName())?companyUser.getNickName():"");
+                }
+            }
+
             Map<String,Object> map=new HashMap<>();
             map.put("user",user);
+            map.put("inviteInfo",companyUser);
             return R.ok(map);
         } catch (Exception e){
             return R.error("操作异常");

+ 15 - 1
fs-user-app/src/main/java/com/fs/app/controller/course/CourseFsUserController.java

@@ -26,7 +26,9 @@ import com.fs.course.service.*;
 import com.fs.course.vo.FsUserCourseVideoH5VO;
 import com.fs.course.vo.newfs.FsUserCourseVideoLinkDetailsVO;
 import com.fs.his.domain.FsUser;
+import com.fs.his.dto.FsUserBindSalesParamDTO;
 import com.fs.his.enums.FsUserOperationEnum;
+import com.fs.his.service.IFsUserService;
 import com.fs.im.dto.OpenImResponseDTO;
 import com.fs.im.service.OpenIMService;
 import io.swagger.annotations.Api;
@@ -67,7 +69,8 @@ public class CourseFsUserController extends AppBaseController {
     @Autowired
     private RedisTemplate redisTemplate;
 
-
+    @Autowired
+    private IFsUserService fsUserService;
 
     @Login
     @ApiOperation("判断是否添加客服(是否关联销售)")
@@ -182,6 +185,17 @@ public class CourseFsUserController extends AppBaseController {
         logger.error("zyp \n【h5看课中途报错】:{}",msg);
     }
 
+    @PostMapping("/bindSales")
+    @ApiOperation("销售分享app下载链接给用户")
+    public R bindSalesToUser(@RequestBody FsUserBindSalesParamDTO param) {
+        Boolean r = fsUserService.bindUserToSales(param.getUserId(), param.getInviteCode());
+        if (r) {
+            return R.ok();
+        }
+        return R.error();
+    }
+
+
     @Login
     @ApiOperation("发送红包(以积分提现的形式)")
     @PostMapping("/withdrawal")