From 8652e69d17ab0c1a5884c662a9f3f950ddf57948 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 15 七月 2025 16:16:11 +0800
Subject: [PATCH] 优化 和修改bug
---
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java | 357 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 229 insertions(+), 128 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java
index d640263..d7b7009 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/SystemUserServiceImpl.java
@@ -1,31 +1,39 @@
package com.panzhihua.westcommittee.service.impl;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.beust.jcommander.internal.Lists;
-import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.west.SystemUserVo;
+import com.panzhihua.common.utlis.PayUtil;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.westcommittee.dao.SystemUserLevelMapper;
import com.panzhihua.westcommittee.dao.SystemUserMapper;
-import com.panzhihua.westcommittee.model.entity.ComAct;
-import com.panzhihua.westcommittee.model.entity.ComStreet;
-import com.panzhihua.westcommittee.model.entity.SystemUser;
+import com.panzhihua.westcommittee.model.entity.*;
import com.panzhihua.westcommittee.model.vo.RegionVO;
-import com.panzhihua.westcommittee.service.IComActService;
-import com.panzhihua.westcommittee.service.IComStreetService;
-import com.panzhihua.westcommittee.service.ISystemUserService;
+import com.panzhihua.westcommittee.service.*;
+import com.panzhihua.westcommittee.utils.ExcelUtil;
import com.panzhihua.westcommittee.warpper.SystemUserList;
import com.panzhihua.westcommittee.warpper.SystemUserListVo;
import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import sun.security.util.Password;
+import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Optional;
+import java.util.stream.Collectors;
/**
* @author zhibing.pu
@@ -35,131 +43,224 @@
@Service
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser> implements ISystemUserService {
- private final IComActService comActService;
- private final SystemUserLevelMapper systemUserLevelMapper;
- private final IComStreetService comStreetService;
- /**
- * 获取列表数据
- * @param query
- * @return
- */
- @Override
- public IPage<SystemUserListVo> list(SystemUser user, SystemUserList query) {
- Page page = new Page<>();
- page.setCurrent(query.getPageNum());
- page.setSize(query.getPageSize());
- IPage<SystemUserListVo> list = this.baseMapper.list(page, user, query);
- return list;
- }
+ private final IComActService comActService;
+ private final SystemUserLevelMapper systemUserLevelMapper;
+ private final IComStreetService comStreetService;
+ private final ExcelUtil excelUtil;
+ private final IDepartmentService departmentService;
+ private final ISystemPostService systemPostService;
- /**
- * 根据手机号码查询小程序用户在三个身边的上级角色用户
- * @param phone
- * @return
- */
- @Override
- public Optional<SystemUser> getSystemUserAdminByPhone(String phone) {
- if (StringUtils.isBlank(phone)) {
- return Optional.empty();
- }
- return this.lambdaQuery()
- .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3)
- .eq(SystemUser::getIsAdmin, 1).last("LIMIT 1").oneOpt();
- }
+ /**
+ * 获取列表数据
+ * @param query
+ * @return
+ */
+ @Override
+ public IPage<SystemUserListVo> list(SystemUser user, SystemUserList query) {
+ Page page = new Page<>();
+ page.setCurrent(query.getPageNum());
+ page.setSize(query.getPageSize());
+ if(query.getDeptId()!=null || user.getAccountLevel()==2){
+ IPage<SystemUserListVo> list = this.baseMapper.list(page, user, query);
+ return list;
+ }else {
+ List<Integer> deptIds=new ArrayList<>();
+ if(user.getAccountLevel()==3){
+ List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, user.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
+ List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 3).eq(Department::getStreetId, user.getStreetId())
+ .or(department -> department.and(department1 -> department1.eq(Department::getTier, 4).in(Department::getCommunityId, ids))));
+ if(list.isEmpty()){
+ return new Page<>();
+ }
+ deptIds= list.stream().map(Department::getId).collect(Collectors.toList());
+ }else if(user.getAccountLevel()==4){
+ List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 4).eq(Department::getCommunityId, user.getCommunityId()));
+ if(list.isEmpty()){
+ return new Page<>();
+ }
+ deptIds= list.stream().map(Department::getId).collect(Collectors.toList());
+ }
+ IPage<SystemUserListVo> list = this.baseMapper.list1(page, user, query,deptIds);
+ return list;
+ }
- @Override
- public Optional<SystemUser> getSystemUserByPhone(String phone) {
- if (StringUtils.isBlank(phone)) {
- return Optional.empty();
- }
- return this.lambdaQuery()
- .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3).last("LIMIT 1").oneOpt();
- }
+ }
- /**
- * 获取行政区划数据
- *
- * @param pcode
- * @return
- */
- @Override
- public List<RegionVO> getRegion(String pcode) {
- return this.baseMapper.getRegion(pcode);
- }
-
-
- /**
- * 获取街道数据
- *
- * @param areaCode
- * @return
- */
- @Override
- public List<RegionVO> getStreet(String areaCode) {
- return this.baseMapper.getStreet(areaCode);
- }
-
-
- /**
- * 获取社区数据
- *
- * @param streetId
- * @return
- */
- @Override
- public List<RegionVO> getCommunity(String streetId) {
- return this.baseMapper.getCommunity(streetId);
- }
+ /**
+ * 根据手机号码查询小程序用户在西区纪委的上级角色用户
+ * @param phone
+ * @return
+ */
+ @Override
+ public Optional<SystemUser> getSystemUserAdminByPhone(String phone) {
+ if (StringUtils.isBlank(phone)) {
+ return Optional.empty();
+ }
+ return this.lambdaQuery()
+ .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3)
+ .eq(SystemUser::getIsAdmin, 1).last("LIMIT 1").oneOpt();
+ }
- /**
- * 获取区县-街道-社区树
- * @return
- */
- @Override
- public List<RegionVO> getRegionTree(SystemUserVo loginUserInfo) {
- log.info("getRegionTree入参:{}",JSONObject.toJSONString(loginUserInfo));
- SystemUser systemUser = getById(loginUserInfo.getId());
- Integer accountLevel = systemUser.getAccountLevel();
- List<RegionVO> regionTree = new ArrayList<>();
- switch (accountLevel) {
- case 1:
- regionTree = baseMapper.getRegion("510400");
- baseMapper.getStreet("510400");
- regionTree.forEach(district -> {
- List<RegionVO> streets = baseMapper.getStreet(district.getId());
- district.setChildren(streets);
- streets.forEach(street -> {
- List<RegionVO> communities = baseMapper.getCommunity(street.getId());
- street.setChildren(communities);
- });
- });
- break;
- case 2:
- regionTree = baseMapper.getStreet(systemUser.getDistrictsCode());
- regionTree.forEach(regionVO->{
- List<RegionVO> communities = baseMapper.getCommunity(regionVO.getId());
- regionVO.setChildren(communities);
- });
- break;
- case 3:
- ComStreet street = comStreetService.getById(systemUser.getStreetId());
- RegionVO streetVO = new RegionVO();
- streetVO.setId(street.getStreetId());
- streetVO.setName(street.getName());
- List<RegionVO> communities = baseMapper.getCommunity(systemUser.getStreetId());
- streetVO.setChildren(communities);
- regionTree = Lists.newArrayList(streetVO);
- break;
- case 4:
- ComAct byId = comActService.getById(systemUser.getCommunityId());
- RegionVO regionVO = new RegionVO();
- regionVO.setId(byId.getCommunityId().toString());
- regionVO.setName(byId.getName());
- regionTree = Lists.newArrayList(regionVO);
- break;
- }
+ @Override
+ public Optional<SystemUser> getSystemUserByPhone(String phone) {
+ if (StringUtils.isBlank(phone)) {
+ return Optional.empty();
+ }
+ return this.lambdaQuery()
+ .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3).last("LIMIT 1").oneOpt();
+ }
- return regionTree;
- }
+ /**
+ * 获取行政区划数据
+ *
+ * @param pcode
+ * @return
+ */
+ @Override
+ public List<RegionVO> getRegion(String pcode) {
+ return this.baseMapper.getRegion(pcode);
+ }
+
+
+ /**
+ * 获取街道数据
+ *
+ * @param areaCode
+ * @return
+ */
+ @Override
+ public List<RegionVO> getStreet(String areaCode) {
+ return this.baseMapper.getStreet(areaCode);
+ }
+
+
+ /**
+ * 获取社区数据
+ *
+ * @param streetId
+ * @return
+ */
+ @Override
+ public List<RegionVO> getCommunity(String streetId) {
+ return this.baseMapper.getCommunity(streetId);
+ }
+
+ /**
+ * 获取区县-街道-社区树
+ * @return
+ */
+ @Override
+ public List<RegionVO> getRegionTree(SystemUserVo loginUserInfo) {
+ log.info("getRegionTree入参:{}", JSONObject.toJSONString(loginUserInfo));
+ SystemUser systemUser = getById(loginUserInfo.getId());
+ Integer accountLevel = systemUser.getAccountLevel();
+ List<RegionVO> regionTree = new ArrayList<>();
+ switch (accountLevel) {
+ case 1:
+ regionTree = baseMapper.getRegion("510400");
+ baseMapper.getStreet("510400");
+ regionTree.forEach(district -> {
+ district.setTier(2);
+ List<RegionVO> streets = baseMapper.getStreet(district.getId());
+ district.setChildren(streets);
+ streets.forEach(street -> {
+ street.setTier(3);
+ List<RegionVO> communities = baseMapper.getCommunity(street.getId());
+ communities.forEach(e -> e.setTier(4));
+ street.setChildren(communities);
+ });
+ });
+ break;
+ case 2:
+ regionTree = baseMapper.getStreet(systemUser.getDistrictsCode());
+ regionTree.forEach(regionVO -> {
+ regionVO.setTier(3);
+ List<RegionVO> communities = baseMapper.getCommunity(regionVO.getId());
+ communities.forEach(e -> e.setTier(4));
+ regionVO.setChildren(communities);
+ });
+ break;
+ case 3:
+ ComStreet street = comStreetService.getById(systemUser.getStreetId());
+ RegionVO streetVO = new RegionVO();
+ streetVO.setId(street.getStreetId());
+ streetVO.setName(street.getName());
+ streetVO.setTier(3);
+ List<RegionVO> communities = baseMapper.getCommunity(systemUser.getStreetId());
+ communities.forEach(e -> e.setTier(4));
+ streetVO.setChildren(communities);
+ regionTree = Lists.newArrayList(streetVO);
+ break;
+ case 4:
+ ComAct byId = comActService.getById(systemUser.getCommunityId());
+ RegionVO regionVO = new RegionVO();
+ regionVO.setTier(4);
+ regionVO.setId(byId.getCommunityId().toString());
+ regionVO.setName(byId.getName());
+ regionTree = Lists.newArrayList(regionVO);
+ break;
+ }
+
+ return regionTree;
+ }
+
+ @Override
+ public String getCreateByIdPhone(Long createBy) {
+ return this.baseMapper.getCreateByIdPhone(createBy);
+ }
+
+ @SneakyThrows
+ @Override
+ public R<?> importUser(String s, MultipartFile file) {
+ List<List<List<String>>> upload = excelUtil.upload(s, file);
+ List<List<String>> lists = upload.get(0);
+ for (List<String> list : lists) {
+ String name = list.get(0);
+ String postName = list.get(1);
+ String deptName = list.get(2);
+ String roleId = list.get(3);
+ String phone = list.get(4);
+ String pwd = list.get(5);
+
+ long count = this.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3));
+ if (0 == count) {
+ SystemUser systemUser = new SystemUser();
+ systemUser.setName(name);
+ systemUser.setPhone(phone);
+ systemUser.setPassword(PayUtil.MD5(pwd).toLowerCase());
+
+ try {
+ Department name1 = departmentService.getOne(new QueryWrapper<Department>().eq("name", deptName));
+ systemUser.setOneDepartmentId(name1.getId());
+ systemUser.setDistricts(name1.getDistricts());
+ systemUser.setDistrictsCode(name1.getDistrictsCode());
+ systemUser.setStreet(name1.getStreet());
+ systemUser.setStreetId(name1.getStreetId());
+ systemUser.setCommunity(name1.getCommunity());
+ systemUser.setCommunityId(name1.getCommunityId());
+ systemUser.setAccountLevel(name1.getTier());
+ systemUser.setStatus(1);
+ systemUser.setSystemRoleId(Integer.valueOf(roleId));
+ systemUser.setCreateTime(LocalDateTime.now());
+
+ SystemPost name2 = systemPostService.getOne(new QueryWrapper<SystemPost>().eq("name", postName));
+ systemUser.setSystemPostId(name2.getId());
+ save(systemUser);
+
+ } catch (Exception e) {
+ System.out.println(deptName);
+ System.out.println(postName);
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ return R.ok();
+ }
+
+ public static void main(String[] args) throws Exception {
+ System.out.println(PayUtil.MD5("111111").toLowerCase());
+ }
}
--
Gitblit v1.7.1