Browse Source

增加部分接口

xda 3 years ago
parent
commit
6acf437b05

+ 3 - 2
src/main/java/com/winhc/repal/controller/RepalCustomerController.java

@@ -36,8 +36,9 @@ public class RepalCustomerController extends BaseController {
 
     @ApiOperation("客户/供应商下拉框")
     @GetMapping(value = "/list")
-    public BeanResponse<List<RepalCustomerSimpleVO>> getCustList(@ApiParam("1客户 2供应商") @RequestParam("custType")Integer custType){
-        return BeanResponse.success(CodeMsg.SUCCESS,repalCustomerService.getCustList(custType));
+    public BeanResponse<List<RepalCustomerSimpleVO>> getCustList(@ApiParam("1客户 2供应商") @RequestParam("custType")Integer custType,
+                                                                 @ApiParam(value = "keyword") @RequestParam(value = "keyword", required = false) String keyword){
+        return BeanResponse.success(CodeMsg.SUCCESS,repalCustomerService.getCustList(custType, keyword));
     }
 
     @ApiOperation("分页查询客户")

+ 13 - 0
src/main/java/com/winhc/repal/controller/RepalMemberController.java

@@ -7,6 +7,7 @@ import com.winhc.repal.enums.PermissionEnum;
 import com.winhc.repal.model.dto.AddGroupMemberDTO;
 import com.winhc.repal.model.dto.UpdateMemberRoleDTO;
 import com.winhc.repal.model.vo.GroupRoleMemberVO;
+import com.winhc.repal.model.vo.MemberInfoVO;
 import com.winhc.repal.service.RepalGroupMemberService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -61,5 +62,17 @@ public class RepalMemberController {
         return BeanResponse.success(CodeMsg.SUCCESS, repalGroupMemberService.getMemberPermissionList());
     }
 
+    @ApiOperation("获取组织管理员name")
+    @RequestMapping(value = "/adminName", method = RequestMethod.GET)
+    public BeanResponse<String> getGroupAdminName() {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalGroupMemberService.getGroupAdminName());
+    }
+
+    @ApiOperation("我的")
+    @RequestMapping(value = "/my", method = RequestMethod.GET)
+    public BeanResponse<MemberInfoVO> getMemberInfo() {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalGroupMemberService.getMemberInfo());
+    }
+
 
 }

+ 20 - 0
src/main/java/com/winhc/repal/entity/ThirdPartyAccount.java

@@ -78,5 +78,25 @@ public class ThirdPartyAccount implements Serializable {
     @TableField("GROUP_ID")
     private String groupId;
 
+    @ApiModelProperty(value = "组织name")
+    @TableField("GROUP_NAME")
+    private String groupName;
+
+    @ApiModelProperty(value = "组织头像")
+    @TableField("GROUP_AVART")
+    private String groupAvart;
+
+    @ApiModelProperty(value = "是否管理员")
+    @TableField("IS_ADMIN")
+    private String isAdmin;
+
+    @ApiModelProperty(value = "头像")
+    @TableField("AVATAR")
+    private String avatar;
+
+    @ApiModelProperty(value = "userName")
+    @TableField("USER_NAME")
+    private String userName;
+
 
 }

+ 26 - 0
src/main/java/com/winhc/repal/enums/GroupAdminEnum.java

@@ -0,0 +1,26 @@
+package com.winhc.repal.enums;
+
+/**
+ * @Description: GroupAdminEnum
+ * @Author: xda
+ * @Date: 2022/5/23 13:33
+ */
+public enum GroupAdminEnum {
+    /**
+     *     是否管理员:0是,1不是
+     */
+    是管理员("0"),
+    不是管理员("1");
+
+    private final String code;
+
+    GroupAdminEnum(String code) {
+        this.code = code;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+
+}

+ 30 - 0
src/main/java/com/winhc/repal/model/vo/MemberInfoVO.java

@@ -0,0 +1,30 @@
+package com.winhc.repal.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: MemberInfoVO
+ * @Author: xda
+ * @Date: 2022/5/23 14:11
+ */
+@Data
+@ApiModel("成员信息")
+public class MemberInfoVO {
+
+    @ApiModelProperty("组织id")
+    private Long repalGroupId;
+
+    @ApiModelProperty("角色name")
+    private String roleName;
+
+    @ApiModelProperty("组织name")
+    private String groupName;
+
+    @ApiModelProperty("现有成员数量")
+    private Integer memberCount;
+
+    @ApiModelProperty("上限数量")
+    private Integer maxCount;
+}

+ 10 - 0
src/main/java/com/winhc/repal/repository/RepalGroupMemberMapper.java

@@ -2,6 +2,7 @@ package com.winhc.repal.repository;
 
 import com.winhc.repal.entity.RepalGroupMember;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.winhc.repal.model.vo.MemberInfoVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -24,4 +25,13 @@ public interface RepalGroupMemberMapper extends BaseMapper<RepalGroupMember> {
     int updateVisible(@Param("userId") Long userId, @Param("type") Integer type);
 
 
+    /**
+     * 获取用户权限name和组织name
+     * @param userId userId
+     * @return com.winhc.repal.model.vo.MemberInfoVO
+     * @author xda
+     * @date 2022/5/23 14:19
+     */
+    MemberInfoVO getMemberInfo(Long userId);
+
 }

+ 1 - 1
src/main/java/com/winhc/repal/service/RepalCustomerService.java

@@ -23,7 +23,7 @@ public interface RepalCustomerService extends IService<RepalCustomer> {
       * 根据组织编号查询客户列表
       * @return
       */
-     List<RepalCustomerSimpleVO> getCustList(Integer custType);
+     List<RepalCustomerSimpleVO> getCustList(Integer custType, String keyword);
 
      /**
       * 分页查询客户

+ 17 - 0
src/main/java/com/winhc/repal/service/RepalGroupMemberService.java

@@ -5,6 +5,7 @@ import com.winhc.repal.entity.RepalGroupMember;
 import com.winhc.repal.model.dto.AddGroupMemberDTO;
 import com.winhc.repal.model.dto.UpdateMemberRoleDTO;
 import com.winhc.repal.model.vo.GroupRoleMemberVO;
+import com.winhc.repal.model.vo.MemberInfoVO;
 
 import java.util.List;
 
@@ -113,5 +114,21 @@ public interface RepalGroupMemberService extends IService<RepalGroupMember> {
      */
     List<String> getMemberPermissionList();
 
+    /**
+     * 获取组织管理员name
+     * @return java.lang.String
+     * @author xda
+     * @date 2022/5/23 12:47
+     */
+    String getGroupAdminName();
+
+    /**
+     * 获取成员自己信息
+     * @return com.winhc.repal.model.vo.MemberInfoVO
+     * @author xda
+     * @date 2022/5/23 14:14
+     */
+    MemberInfoVO getMemberInfo();
+
 
 }

+ 9 - 0
src/main/java/com/winhc/repal/service/RepalRolePermissionService.java

@@ -84,6 +84,15 @@ public interface RepalRolePermissionService extends IService<RepalRolePermission
      */
     List<RolePermissionVO> getAllPermission();
 
+    /**
+     * 初始化用户权限
+     * @param userId userId
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/5/23 13:56
+     */
+    Boolean initMemberPermission(Long userId);
+
 
 
 }

+ 3 - 2
src/main/java/com/winhc/repal/service/impl/RepalCustomerServiceImpl.java

@@ -84,14 +84,15 @@ public class RepalCustomerServiceImpl extends ServiceImpl<RepalCustomerMapper, R
     private RepalRolePermissionService repalRolePermissionService;
 
     @Override
-    public List<RepalCustomerSimpleVO> getCustList(Integer custType) {
+    public List<RepalCustomerSimpleVO> getCustList(Integer custType, String keyword) {
         //不校验权限,返回全部客户供应商列表
         UserContextBO userContextBO = UserContextUtil.getUser();
         Long repalGroupId = repalGroupMemberService.getUserGroupId(userContextBO.getUserId());
         List<RepalCustomer> repalCustomers = list(Wrappers.lambdaQuery(RepalCustomer.class)
                 .eq(RepalCustomer::getRepalGroupId,repalGroupId)
                 .eq(RepalCustomer::getDeleted,Dict.DeletedStatusEnunm.否.getCode())
-                .eq(RepalCustomer::getCustType,custType));
+                .eq(RepalCustomer::getCustType,custType)
+                .like(StrUtil.isNotBlank(keyword), RepalCustomer::getCustName, keyword));
         if(CollUtil.isEmpty(repalCustomers)){
             return new ArrayList<>();
         }

+ 42 - 4
src/main/java/com/winhc/repal/service/impl/RepalGroupMemberServiceImpl.java

@@ -1,6 +1,7 @@
 package com.winhc.repal.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.winhc.common.base.BeanResponse;
@@ -9,19 +10,20 @@ import com.winhc.common.exception.CommonException;
 import com.winhc.repal.cloud.LoginService;
 import com.winhc.repal.cloud.dto.RepalRegUserDTO;
 import com.winhc.repal.cloud.dto.RepalRegUserInfoDTO;
-import com.winhc.repal.entity.RepalBill;
-import com.winhc.repal.entity.RepalGroupMember;
-import com.winhc.repal.entity.RepalGroupRole;
-import com.winhc.repal.entity.UserInfo;
+import com.winhc.repal.entity.*;
 import com.winhc.repal.enums.DeletedStatusEnum;
+import com.winhc.repal.enums.GroupAdminEnum;
 import com.winhc.repal.enums.RepalBillTypeEnum;
 import com.winhc.repal.enums.RoleTypeEnum;
 import com.winhc.repal.model.dto.AddGroupMemberDTO;
 import com.winhc.repal.model.dto.UpdateMemberRoleDTO;
 import com.winhc.repal.model.vo.GroupRoleMemberVO;
+import com.winhc.repal.model.vo.MemberInfoVO;
 import com.winhc.repal.repository.RepalGroupMemberMapper;
 import com.winhc.repal.service.*;
 import com.winhc.repal.util.UserContextUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +39,8 @@ import java.util.stream.Collectors;
 @Service
 public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMapper, RepalGroupMember> implements RepalGroupMemberService {
 
+    public static final Logger LOGGER = LoggerFactory.getLogger(RepalGroupMemberServiceImpl.class);
+
     @Autowired
     private UserExtService userExtService;
 
@@ -64,6 +68,9 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
     @Autowired
     private RepalRolePermissionService repalRolePermissionService;
 
+    @Autowired
+    private ThirdPartyAccountService thirdPartyAccountService;
+
     @Override
     public RepalGroupMember getMemberByUserId(Long userId) {
         return this.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
@@ -161,6 +168,7 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
                 .eq(RepalGroupMember::getRepalGroupId, groupId)
                 .eq(RepalGroupMember::getUserId, dto.getUserId())
                 .set(RepalGroupMember::getRoleId, dto.getRoleId()));
+        repalRolePermissionService.initMemberPermission(dto.getUserId());
         return true;
     }
 
@@ -233,4 +241,34 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
         }
         return new ArrayList<>(repalRolePermissionService.getUserPermissionCodeSet(userId));
     }
+
+    @Override
+    public String getGroupAdminName() {
+        ThirdPartyAccount account = thirdPartyAccountService.getOne(Wrappers.lambdaQuery(ThirdPartyAccount.class)
+                .eq(ThirdPartyAccount::getUserId, UserContextUtil.getUser().getUserId())
+                .eq(ThirdPartyAccount::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
+        if (Objects.isNull(account) || StrUtil.isBlank(account.getGroupId())) {
+            return null;
+        }
+        // 组织里管理员
+        List<ThirdPartyAccount> accounts = thirdPartyAccountService.list(Wrappers.lambdaQuery(ThirdPartyAccount.class)
+                .eq(ThirdPartyAccount::getGroupId, account.getGroupId())
+                .eq(ThirdPartyAccount::getIsAdmin, GroupAdminEnum.是管理员.getCode())
+                .eq(ThirdPartyAccount::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
+        if (CollUtil.isEmpty(accounts)) {
+            return null;
+        }
+        return accounts.stream().map(ThirdPartyAccount::getUserName).filter(StrUtil::isNotBlank).collect(Collectors.joining(","));
+    }
+
+    @Override
+    public MemberInfoVO getMemberInfo() {
+        long userId = UserContextUtil.getUser().getUserId();
+        MemberInfoVO info = repalGroupMemberMapper.getMemberInfo(userId);
+        info.setMemberCount(this.count(Wrappers.lambdaQuery(RepalGroupMember.class)
+                .eq(RepalGroupMember::getRepalGroupId, info.getRepalGroupId())
+                .eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode())));
+        info.setMaxCount(100);
+        return info;
+    }
 }

+ 20 - 0
src/main/java/com/winhc/repal/service/impl/RepalRolePermissionServiceImpl.java

@@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.winhc.repal.constant.Constant;
+import com.winhc.repal.entity.RepalGroupMember;
 import com.winhc.repal.entity.RepalRolePermission;
 import com.winhc.repal.enums.DeletedStatusEnum;
 import com.winhc.repal.enums.PermissionEnum;
 import com.winhc.repal.model.dto.UpdateRolePermissionDTO;
 import com.winhc.repal.model.vo.RolePermissionVO;
 import com.winhc.repal.repository.RepalRolePermissionMapper;
+import com.winhc.repal.service.RepalGroupMemberService;
 import com.winhc.repal.service.RepalGroupRoleService;
 import com.winhc.repal.service.RepalRolePermissionService;
 import com.winhc.repal.util.RedisUtil;
@@ -38,6 +40,9 @@ public class RepalRolePermissionServiceImpl extends ServiceImpl<RepalRolePermiss
     @Autowired
     private RepalGroupRoleService repalGroupRoleService;
 
+    @Autowired
+    private RepalGroupMemberService repalGroupMemberService;
+
 
     @Override
     public Boolean checkUserPermission(Long userId, String code) {
@@ -59,6 +64,7 @@ public class RepalRolePermissionServiceImpl extends ServiceImpl<RepalRolePermiss
 
     @Override
     public Boolean processUserPermissionCache(Long userId, Set<String> codeSet) {
+        redisUtil.delete(Constant.USER_PERMISSION_KEY + userId);
         redisUtil.sAdd(Constant.USER_PERMISSION_KEY + userId, codeSet.toArray(new String[]{}));
         redisUtil.expire(Constant.USER_PERMISSION_KEY + userId, 7, TimeUnit.DAYS);
         return true;
@@ -115,6 +121,13 @@ public class RepalRolePermissionServiceImpl extends ServiceImpl<RepalRolePermiss
                 this.save(permission);
             }
         }
+        // 角色对应的人,重置redis
+        List<RepalGroupMember> members = repalGroupMemberService.list(Wrappers.lambdaQuery(RepalGroupMember.class).eq(RepalGroupMember::getRoleId, dto.getRoleId()));
+        if (CollUtil.isNotEmpty(members)) {
+            for (RepalGroupMember groupMember : members) {
+                this.initMemberPermission(groupMember.getUserId());
+            }
+        }
         return true;
     }
 
@@ -127,4 +140,11 @@ public class RepalRolePermissionServiceImpl extends ServiceImpl<RepalRolePermiss
             return vo;
         }).collect(Collectors.toList());
     }
+
+    @Override
+    public Boolean initMemberPermission(Long userId) {
+        Set<String> codeSet = repalRolePermissionMapper.getUserPermissionCodeSet(userId);
+        processUserPermissionCache(userId, codeSet);
+        return true;
+    }
 }

+ 1 - 1
src/main/resources/mapper/RepalBookMapper.xml

@@ -17,7 +17,7 @@
                 AND ((bill.REPAL_BILL_TYPE = 2 AND rPerson.USER_ID = #{userId}) or (book.USER_ID = #{userId}))
             </if>
         </if>
-        <if test="receivableFlag and receiptFlag">
+        <if test="!receivableFlag and !receiptFlag">
             AND book.USER_ID = #{userId}
         </if>
         GROUP BY book.ID, book.REPAL_BOOK_NAME

+ 10 - 1
src/main/resources/mapper/RepalGroupMemberMapper.xml

@@ -13,6 +13,15 @@
         WHERE USER_ID = #{userId} AND DELETED = 0
     </update>
 
-
+    <select id="getMemberInfo" parameterType="java.lang.Long" resultType="com.winhc.repal.model.vo.MemberInfoVO">
+        SELECT
+            role.ROLE_NAME AS roleName, repalGroup.GROUP_NAME AS groupName, member.REPAL_GROUP_ID AS repalGroupId
+        FROM REPAL_GROUP_MEMBER AS member
+                 LEFT JOIN REPAL_GROUP_ROLE AS role ON member.ROLE_ID = role.ID
+                 LEFT JOIN REPAL_GROUP AS repalGroup ON repalGroup.ID = member.REPAL_GROUP_ID
+        WHERE member.USER_ID = #{userId}
+          AND member.DELETED = 0
+          AND role.DELETED = 0
+    </select>
 
 </mapper>