Переглянути джерело

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_scrm_java

caoliqin 1 день тому
батько
коміт
3fa391a916

+ 25 - 8
fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -13,10 +13,8 @@ import com.fs.common.core.domain.R;
 import com.fs.common.exception.ServiceException;
 import com.fs.common.utils.PatternUtils;
 import com.fs.common.utils.bean.BeanUtils;
-import com.fs.company.domain.Company;
-import com.fs.company.domain.CompanyDept;
-import com.fs.company.domain.CompanyUser;
-import com.fs.company.domain.CompanyUserChangeApply;
+import com.fs.company.domain.*;
+import com.fs.company.mapper.CompanyRoleMapper;
 import com.fs.company.service.ICompanyDeptService;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserChangeApplyService;
@@ -54,15 +52,34 @@ public class CompanyUserController extends AppBaseController {
     private final IFsCourseWatchLogService courseWatchLogService;
     private final IFsCourseRedPacketLogService courseRedPacketLogService;
     private final ICompanyUserChangeApplyService companyUserChangeApplyService;
+    private final CompanyRoleMapper companyRoleMapper;
 
     @Login
-    @ApiOperation("下级用户列表")
+    @ApiOperation("查询用户列表")
     @GetMapping("/getCompanyUserList")
     public R getCompanyUserList(@RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                 @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
-        log.debug("下级用户列表 pageNum: {}, pageSize: {}", pageNum, pageSize);
-        PageHelper.startPage(pageNum, pageSize);
-        List<CompanyUser> companyUsers = companyUserService.selectCompanySubUserList(Long.parseLong(getUserId()));
+        log.debug("查询用户列表 pageNum: {}, pageSize: {}", pageNum, pageSize);
+
+        Long userId = Long.parseLong(getUserId());
+        CompanyUser companyUser = companyUserService.selectCompanyUserById(userId);
+        List<CompanyRole> companyRoles = companyRoleMapper.selectRolePermissionByUserId(userId);
+        List<CompanyUser> companyUsers;
+
+        // 判断是否管理员 或者包含 1:全部数据权限
+        if (companyUser.isAdmin() || companyRoles.stream().anyMatch(r -> "1".equals(r.getDataScope()))) {
+            PageHelper.startPage(pageNum, pageSize);
+            companyUsers = companyUserService.getCompanyUserListByDeptId(null);
+        }
+        // 判断是否包含 3:本部门数据权限 4:本部门及以下数据权限
+        else if (companyRoles.stream().anyMatch(r -> "3".equals(r.getDataScope()) || "4".equals(r.getDataScope()))) {
+            PageHelper.startPage(pageNum, pageSize);
+            companyUsers = companyUserService.getCompanyUserListByDeptId(companyUser.getDeptId());
+        }
+        // 默认空 -- 判断是否包含 5:仅可查看本人
+        else {
+            companyUsers = new ArrayList<>();
+        }
         PageInfo<CompanyUser> page = new PageInfo<>(companyUsers);
 
         // 转换对象

+ 8 - 2
fs-company-app/src/main/java/com/fs/app/controller/UserController.java

@@ -271,12 +271,16 @@ public class UserController extends AppBaseController {
         List<UserVO> users = new ArrayList<>();
         for (CompanyUserVO u : list) {
             UserVO vo = new UserVO();
-            vo.setDeptName(u.getDept().getDeptName());
+            if (Objects.nonNull(u.getDept())) {
+                vo.setDeptName(u.getDept().getDeptName());
+            }
             vo.setFirstLetter(PinYinUtil.cn2py(u.getNickName().substring(0, 1)));
             vo.setNickName(u.getNickName());
             vo.setUserId(u.getUserId());
             vo.setAvatar(u.getAvatar());
-            vo.setRegisterTime(u.getCreateTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+            if (Objects.nonNull(u.getCreateTime())) {
+                vo.setRegisterTime(u.getCreateTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+            }
             vo.setStatus(u.getStatus());
             vo.setPhoneNumber(u.getPhonenumber());
             vo.setIsAudit(u.getIsAudit());
@@ -419,6 +423,8 @@ public class UserController extends AppBaseController {
             user.setPhonenumber(param.getMobile());
             user.setEmail(param.getEmail());
             user.setSex(param.getSex());
+            user.setNickName(param.getNickName());
+            user.setQrCodeWeixin(param.getQrCodeWeixin());
             if (userService.updateUserProfile(user) > 0) {
                 return R.ok("修改成功");
             } else {

+ 4 - 2
fs-company-app/src/main/java/com/fs/app/param/EditUserInfoParam.java

@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 
 @Data
@@ -18,5 +17,8 @@ public class EditUserInfoParam implements Serializable {
     private String mobile;
     @ApiModelProperty(value = "用户邮箱")
     private String email;
-
+    @ApiModelProperty(value = "微信二维码")
+    private String qrCodeWeixin;
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
 }

+ 1 - 0
fs-qw-api-msg/src/main/java/com/fs/app/controller/QwMsgController.java

@@ -103,6 +103,7 @@ public class QwMsgController {
                 qwUser.setId(id);
                 qwUser.setVid(jsonObject.get("Vid").toString());
                 qwUser.setIpadStatus(1);
+                qwUser.setAvatar(jsonObject.get("avatar").toString());
                 qwUserMapper.updateQwUser(qwUser);
                 System.out.println("存Vid");
                 redisCache.setCacheObject("qrCodeUid:"+wxWorkMsgResp.getUuid(),104001,10, TimeUnit.MINUTES);

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

@@ -281,4 +281,11 @@ public interface CompanyUserMapper
                                         @Param("previousDay") LocalDate previousDay);
 
     List<CompanyUser> selectCompanyUserByDeptId(@Param("deptId") Long deptId);
+
+    /**
+     * 根据部门ID查询销售列表
+     * @param deptId    部门ID
+     * @return  list
+     */
+    List<CompanyUser> selectAllCompanyUserByDeptId(@Param("deptId") Long deptId);
 }

+ 3 - 3
fs-service-system/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -155,11 +155,11 @@ public interface ICompanyUserService {
     void auditUsers(List<Long> userIds);
 
     /**
-     * 查询下级销售列表
-     * @param companyUserId 销售ID
+     * 查询销售列表
+     * @param deptId 部门ID
      * @return list
      */
-    List<CompanyUser> selectCompanySubUserList(Long companyUserId);
+    List<CompanyUser> getCompanyUserListByDeptId(Long deptId);
 
     List<CompanyUser> getAllUserListLimit(Long companyId, String keywords);
 

+ 4 - 7
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -1,7 +1,5 @@
 package com.fs.company.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fs.common.annotation.DataScope;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
@@ -22,7 +20,6 @@ import com.fs.his.vo.CitysAreaVO;
 import com.fs.his.vo.OptionsVO;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
-import com.fs.his.vo.OptionsVO;
 import com.fs.store.mapper.FsUserMapper;
 import com.fs.store.service.IFsCityService;
 import com.fs.system.oss.CloudStorageService;
@@ -532,13 +529,13 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     }
 
     /**
-     * 查询下级销售列表
-     * @param companyUserId 销售ID
+     * 查询销售列表
+     * @param deptId 部门ID
      * @return list
      */
     @Override
-    public List<CompanyUser> selectCompanySubUserList(Long companyUserId) {
-        return companyUserMapper.selectAllCompanyUserByParentId(companyUserId);
+    public List<CompanyUser> getCompanyUserListByDeptId(Long deptId) {
+        return companyUserMapper.selectAllCompanyUserByDeptId(deptId);
     }
 
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/fastGpt/service/impl/AiHookServiceImpl.java

@@ -1341,7 +1341,7 @@ public class AiHookServiceImpl implements AiHookService {
         }else if(sendType == 2){
             qwFromUser.setId(Long.parseLong(qwMsg.getQwUserId()));
             qwFromUser.setDisplayName(qwUser.getQwUserName());
-            qwFromUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20241231/22a765a96da247d1b83ea94fef438a41.png");
+            qwFromUser.setAvatar(qwUser.getAvatar());
         }
 
         listVO.setCompanyId(qwUser.getCompanyId());

+ 3 - 0
fs-service-system/src/main/java/com/fs/qw/domain/QwUser.java

@@ -27,6 +27,9 @@ public class QwUser extends BaseEntity
     @Excel(name = "企微用户名")
     private String qwUserName;
 
+    /** 头像 **/
+    private String avatar;
+
     /** 所属部门id */
     @Excel(name = "所属部门id")
     private String department;

+ 3 - 3
fs-service-system/src/main/java/com/fs/qw/service/impl/QwMsgServiceImpl.java

@@ -239,7 +239,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
             //客服发送
             qwFromUser.setId(Long.parseLong(qwMsg.getQwUserId()));
             qwFromUser.setDisplayName(user.getQwUserName());
-            qwFromUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20241231/22a765a96da247d1b83ea94fef438a41.png");
+            qwFromUser.setAvatar(user.getAvatar());
             msg.setFromUser(qwFromUser);
             sendSocket("receiveMsg",JSONObject.toJSONString(msg),user.getAppKey());
         }
@@ -409,7 +409,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
         QWFromUser qwFromUser = new QWFromUser();
         qwFromUser.setId(Long.parseLong(qwMsg.getQwUserId()));
         qwFromUser.setDisplayName(qwUser.getQwUserName());
-        qwFromUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20241231/22a765a96da247d1b83ea94fef438a41.png");
+        qwFromUser.setAvatar(qwUser.getAvatar());
         listVO.setType(msgType.getValue());
         listVO.setStatus("succeed");
         listVO.setFromUser(qwFromUser);
@@ -540,7 +540,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
             }else if(record.getSendType() == 2){
                 qwFromUser.setId(Long.parseLong(record.getQwUserId()));
                 qwFromUser.setDisplayName(user.getQwUserName());
-                qwFromUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20241231/22a765a96da247d1b83ea94fef438a41.png");
+                qwFromUser.setAvatar(user.getAvatar());
             }
             listVO.setExtId(record.getQwExtId());
             listVO.setFromUser(qwFromUser);

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

@@ -541,6 +541,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select * from company_user where dept_id = ${deptId} and status='0'
     </select>
 
+    <select id="selectAllCompanyUserByDeptId" resultType="com.fs.company.domain.CompanyUser">
+        select * from company_user where del_flag = '0'
+        <if test="deptId != null">
+            and dept_id = #{deptId}
+        </if>
+    </select>
+
     <update id="setIsRegisterMember" parameterType="Long">
         update company_user
         set is_need_register_member = #{status} where user_id in

+ 6 - 1
fs-service-system/src/main/resources/mapper/qw/QwUserMapper.xml

@@ -32,10 +32,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="ipadStatus"    column="ipad_status"    />
         <result property="serverId"    column="server_id"    />
         <result property="serverStatus"    column="server_status"    />
+        <result property="avatar"    column="avatar"    />
     </resultMap>
 
     <sql id="selectQwUserVo">
-        select id, qw_user_id,server_id,server_status,ipad_status,config_id,vid,uid,contact_way,app_key, qw_user_name, department, openid, company_id, company_user_id, corp_id, status, is_del, welcome_text, welcome_image, is_send_msg,app_key,qw_hook_id,fastGpt_role_id,login_status,tool_status,login_code_url,version from qw_user
+        select id, qw_user_id,server_id,server_status,ipad_status,config_id,vid,uid,contact_way,app_key, qw_user_name, department, openid, company_id, company_user_id, corp_id, status, is_del, welcome_text, welcome_image, is_send_msg,app_key,qw_hook_id,fastGpt_role_id,login_status,tool_status,login_code_url,version,avatar from qw_user
     </sql>
 
     <select id="selectQwUserList" parameterType="QwUser" resultMap="QwUserResult">
@@ -58,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="toolStatus != null "> and tool_status = #{toolStatus}</if>
             <if test="loginCodeUrl != null "> and login_code_url = #{loginCodeUrl}</if>
             <if test="version != null "> and version = #{version}</if>
+            <if test="avatar != null "> and avatar = #{avatar}</if>
         </where>
     </select>
 
@@ -95,6 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="ipadStatus != null">ipad_status,</if>
             <if test="serverId != null">server_id,</if>
             <if test="serverStatus != null">server_status,</if>
+            <if test="avatar != null">avatar,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="qwUserId != null">#{qwUserId},</if>
@@ -122,6 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="ipadStatus != null">#{ipadStatus},</if>
             <if test="serverId != null">#{serverId},</if>
             <if test="serverStatus != null">#{serverStatus},</if>
+            <if test="avatar != null">#{avatar},</if>
         </trim>
     </insert>
 
@@ -154,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="ipadStatus != null">ipad_status = #{ipadStatus},</if>
             <if test="serverId != null">server_id = #{serverId},</if>
             <if test="serverStatus != null">server_status = #{serverStatus},</if>
+            <if test="avatar != null">avatar = #{avatar},</if>
         </trim>
         where id = #{id}
     </update>