Procházet zdrojové kódy

导出会员openId

wangxy před 1 týdnem
rodič
revize
7a93c6776c

+ 11 - 4
fs-admin/src/main/java/com/fs/his/controller/FsUserController.java

@@ -13,6 +13,7 @@ import com.fs.common.utils.StringUtils;
 import com.fs.course.service.IFsUserCompanyUserService;
 import com.fs.his.domain.FsUserAddress;
 import com.fs.his.domain.FsUserCompanyUserTransferTask;
+import com.fs.his.dto.FsUserBindSalesParamDTO;
 import com.fs.his.dto.FsUserDTO;
 import com.fs.his.enums.FsUserIntegralLogTypeEnum;
 import com.fs.his.param.FsUserAddIntegralTemplateParam;
@@ -22,10 +23,7 @@ import com.fs.his.dto.FsUserTransferImportDTO;
 import com.fs.his.service.IFsUserCompanyUserTransferTaskService;
 import com.fs.his.service.IFsUserIntegralLogsService;
 import com.fs.his.utils.PhoneUtil;
-import com.fs.his.vo.FsUserCompanyUserTransferTaskDetailVO;
-import com.fs.his.vo.FsUserCompanyUserTransferTaskVO;
-import com.fs.his.vo.FsUserVO;
-import com.fs.his.vo.UserVo;
+import com.fs.his.vo.*;
 import com.fs.qw.dto.UserProjectDTO;
 import com.fs.store.param.h5.FsUserPageListParam;
 import com.fs.store.vo.h5.FsUserPageListVO;
@@ -158,6 +156,15 @@ public class FsUserController extends BaseController
         return util.exportExcel(listDTO, "用户数据");
     }
 
+    @PreAuthorize("@ss.hasPermi('his:user:exportOpenId')")
+    @GetMapping("/exportOpenId")
+    public  AjaxResult exportOpenIdList(){
+        List<UserOpenIdVO> list = fsUserService.selectOpenIdList();
+        ExcelUtil<UserOpenIdVO> util = new ExcelUtil<UserOpenIdVO>(UserOpenIdVO.class);
+        return util.exportExcel(list, "用户openId数据");
+    }
+
+
     @Autowired
     private ISysRoleService sysRoleService;
     private SysRole isCheckPermission() {

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

@@ -159,6 +159,11 @@ public class FsUser extends BaseEntity
      * 企微销售ID
      * **/
     private Long qwUserId;
+
+    /**
+     * 邀请该用户app下载的销售人员ID
+     */
+    private  Long invitedBySalesId;
     public void setNickName(String nickname)
     {
         if(StringUtils.isNotEmpty(nickname)){
@@ -199,6 +204,7 @@ public class FsUser extends BaseEntity
     @TableField(exist = false)
     private String nickname;
 
+
     public String getNickname() {
         return nickname;
     }

+ 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 Long salesId;
+}

+ 4 - 0
fs-service/src/main/java/com/fs/his/mapper/FsUserMapper.java

@@ -15,6 +15,7 @@ import com.fs.his.param.FsUserParam;
 import com.fs.his.vo.FsUserVO;
 import com.fs.his.vo.FsUserExportListVO;
 import com.fs.his.vo.OptionsVO;
+import com.fs.his.vo.UserOpenIdVO;
 import com.fs.hisStore.vo.FsCompanyUserListQueryVO;
 import com.fs.qw.dto.FsUserTransferParamDTO;
 import com.fs.qw.param.QwFsUserParam;
@@ -255,6 +256,9 @@ public interface FsUserMapper
             "</script>"})
     Long selectFsUserExportListVOCount(FsUserParam fsUser);
 
+    @Select("SELECT ma_open_id as openId FROM fs_user WHERE ma_open_id is not null")
+    List<UserOpenIdVO> selectOpenIdList();
+
     @Select("select * from fs_user where phone=#{phone}")
     FsUser selectFsUserByMpOpenId(@Param("phone") String phone);
 

+ 12 - 4
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -17,10 +17,7 @@ import com.fs.his.domain.FsUserAddress;
 import com.fs.his.dto.FindUsersByDTO;
 import com.fs.his.param.FindUserByParam;
 import com.fs.his.param.FsUserParam;
-import com.fs.his.vo.FsUserVO;
-import com.fs.his.vo.FsUserExportListVO;
-import com.fs.his.vo.FsUserFollowDoctorVO;
-import com.fs.his.vo.UserVo;
+import com.fs.his.vo.*;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.vo.FsCompanyUserListQueryVO;
 import com.fs.live.vo.HisFsUserVO;
@@ -140,6 +137,12 @@ public interface IFsUserService
 
     Long selectFsUserExportListVOCount(FsUserParam fsUser);
 
+    /**
+     * 获取所有用户openId
+     * @return
+     */
+    List<UserOpenIdVO> selectOpenIdList();
+
     FsUser selectFsUserByMpOpenId(String openId);
 
     void setRepeatFansTag(FsUserCourseBeMemberParam param);
@@ -242,4 +245,9 @@ public interface IFsUserService
     void increaseIntegral(List<Long> longs, Long integral);
 
     HisFsUserVO getHisUserIntegralWithLogs(FsUser fsUser);
+
+    /**
+     * 销售分享app下载链接给用户
+     */
+    Boolean  bindUserToSales(Long userId, Long salesId);
 }

+ 25 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -62,10 +62,7 @@ import com.fs.his.service.IFsUserIntegralLogsService;
 import com.fs.his.service.IFsUserProjectTagService;
 import com.fs.his.service.IFsUserWxService;
 import com.fs.his.utils.PhoneUtil;
-import com.fs.his.vo.FsUserVO;
-import com.fs.his.vo.FsUserExportListVO;
-import com.fs.his.vo.FsUserFollowDoctorVO;
-import com.fs.his.vo.UserVo;
+import com.fs.his.vo.*;
 import com.fs.im.config.ImTypeConfig;
 import com.fs.im.service.OpenIMService;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
@@ -566,6 +563,12 @@ public class FsUserServiceImpl implements IFsUserService {
         return fsUserMapper.selectFsUserExportListVOCount(fsUser);
     }
 
+    @Override
+    public List<UserOpenIdVO> selectOpenIdList() {
+        return fsUserMapper.selectOpenIdList();
+    }
+
+
     @Override
     public FsUser selectFsUserByMpOpenId(String openId) {
         return fsUserMapper.selectFsUserByMpOpenId(openId);
@@ -1658,4 +1661,22 @@ public class FsUserServiceImpl implements IFsUserService {
         return new HisFsUserVO();
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean bindUserToSales(Long userId, Long salesId) {
+        FsUser fsUser = fsUserMapper.selectFsUserById(userId);
+        if (fsUser == null) {
+            throw new CustomException("用户不存在");
+        }
+        if(fsUser.getInvitedBySalesId() != null){
+            if(!fsUser.getInvitedBySalesId().equals(salesId)){
+                throw new CustomException("该用户已从其他销售的链接下载");
+            }else {
+                throw new CustomException("已发送给app下载链接给该用户");
+            }
+        }
+        fsUser.setInvitedBySalesId(salesId);
+        return fsUserMapper.updateFsUser(fsUser)>0;
+    }
+
 }

+ 11 - 0
fs-service/src/main/java/com/fs/his/vo/UserOpenIdVO.java

@@ -0,0 +1,11 @@
+package com.fs.his.vo;
+
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class UserOpenIdVO {
+
+    @Excel(name = "openId")
+    private String openId;
+}

+ 8 - 1
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectFsUserVo">
-        select user_id,qw_ext_id,sex,is_buy,`level`,course_ma_open_id,is_push,is_add_qw,source,login_device,is_individuation_push,store_open_id,password,jpush_id, is_vip,vip_start_date,vip_end_date,vip_level,vip_status,nick_name,integral_status, avatar, phone, integral,sign_num, status, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, create_time, update_time, last_ip, balance,is_weixin_auth,parent_id,qw_user_id,company_id,company_user_id from fs_user
+        select user_id,qw_ext_id,sex,is_buy,`level`,course_ma_open_id,is_push,is_add_qw,source,login_device,is_individuation_push,store_open_id,password,jpush_id, is_vip,vip_start_date,vip_end_date,vip_level,vip_status,nick_name,integral_status, avatar, phone, integral,sign_num, status, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, create_time, update_time, last_ip, balance,is_weixin_auth,parent_id,qw_user_id,company_id,company_user_id,invited_by_sales_id from fs_user
     </sql>
 
     <select id="selectFsUserList" parameterType="FsUser" resultMap="FsUserResult">
@@ -106,6 +106,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="videoId != null and videoId != ''">
                 AND fwl.video_id = #{videoId}
             </if>
+            <if test="typeFlag != null">
+                AND fwl.watch_type = #{typeFlag}
+            </if>
             <if test="videoIdList != null and videoIdList.size > 0 ">
                 AND fwl.video_id in
                 <foreach collection="videoIdList" open="(" close=")" separator="," item="videoId">
@@ -681,6 +684,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="companyId != null">company_id = #{companyId},</if>
             <if test="orderCount != null">order_count = #{orderCount},</if>
             <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="invitedBySalesId != null">invited_by_sales_id = #{invitedBySalesId},</if>
         </trim>
         where user_id = #{userId}
     </update>
@@ -2356,6 +2360,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="periodId != null">
                 AND period_id = #{periodId}
             </if>
+            <if test="typeFlag != null">
+                AND watch_type = #{typeFlag}
+            </if>
             <if test="companyUserIds != null and companyUserIds.size > 0">
                 AND company_user_id in
                 <foreach collection="companyUserIds" open="(" close=")" separator="," item="companyUserId">

+ 14 - 0
fs-user-app/src/main/java/com/fs/app/controller/course/CourseFsUserController.java

@@ -22,7 +22,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;
@@ -56,6 +58,8 @@ public class CourseFsUserController extends AppBaseController {
 
     @Autowired
     private  IFsSalesUserPeriodRelationService salesUserPeriodRelationService;
+    @Autowired
+    private IFsUserService fsUserService;
 
 
 
@@ -182,4 +186,14 @@ 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.getSalesId());
+        if (r) {
+            return R.ok();
+        }
+        return R.error();
+    }
+
 }