Browse Source
# Conflicts: # epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.javamaster
33 changed files with 996 additions and 105 deletions
@ -0,0 +1,39 @@ |
|||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Data |
||||
|
public class StaffPermCacheFormDTO { |
||||
|
|
||||
|
/** |
||||
|
* 更新权限缓存分组 |
||||
|
*/ |
||||
|
public interface UpdatePermissionCache {} |
||||
|
|
||||
|
/** |
||||
|
* 工作人员 id |
||||
|
*/ |
||||
|
@NotBlank(message = "工作人员ID不能为空", groups = {UpdatePermissionCache.class}) |
||||
|
private String staffId; |
||||
|
|
||||
|
/** |
||||
|
* 登录头信息app |
||||
|
*/ |
||||
|
@NotBlank(message = "登录头信息app不能为空", groups = {UpdatePermissionCache.class}) |
||||
|
private String app; |
||||
|
|
||||
|
/** |
||||
|
* 登录头信息client |
||||
|
*/ |
||||
|
@NotBlank(message = "登录头信息client不能为空", groups = {UpdatePermissionCache.class}) |
||||
|
private String client; |
||||
|
|
||||
|
/** |
||||
|
* 权限列表 |
||||
|
*/ |
||||
|
private List<String> permissions; |
||||
|
|
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
import com.epmet.dto.form.StaffPermCacheFormDTO; |
||||
|
import com.epmet.service.AccessService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 权限相关Api |
||||
|
* @Author wxz |
||||
|
* @Description |
||||
|
* @Date 2020/4/23 17:54 |
||||
|
**/ |
||||
|
@RestController |
||||
|
@RequestMapping("access") |
||||
|
public class AccessController { |
||||
|
|
||||
|
@Autowired |
||||
|
private AccessService accessService; |
||||
|
|
||||
|
/** |
||||
|
* 更新工作人员权限缓存 |
||||
|
* @param staffPermCacheFormDTO |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("updatepermissioncache") |
||||
|
public Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO) { |
||||
|
ValidatorUtils.validateEntity(staffPermCacheFormDTO, StaffPermCacheFormDTO.UpdatePermissionCache.class); |
||||
|
String staffId = staffPermCacheFormDTO.getStaffId(); |
||||
|
String app = staffPermCacheFormDTO.getApp(); |
||||
|
String client = staffPermCacheFormDTO.getClient(); |
||||
|
List<String> permissions = staffPermCacheFormDTO.getPermissions(); |
||||
|
accessService.updatePermissionCache(staffId, app, client, permissions); |
||||
|
return new Result(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface AccessService { |
||||
|
/** |
||||
|
* 更新权限缓存 |
||||
|
* @param staffId |
||||
|
* @param permissions |
||||
|
*/ |
||||
|
void updatePermissionCache(String staffId, String app, String client, List<String> permissions); |
||||
|
} |
@ -0,0 +1,40 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.epmet.commons.tools.security.dto.GovTokenDto; |
||||
|
import com.epmet.commons.tools.utils.CpUserDetailRedis; |
||||
|
import com.epmet.service.AccessService; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class AccessServiceImpl implements AccessService { |
||||
|
|
||||
|
private static Logger logger = LoggerFactory.getLogger(AccessServiceImpl.class); |
||||
|
|
||||
|
@Autowired |
||||
|
private CpUserDetailRedis cpUserDetailRedis; |
||||
|
|
||||
|
/** |
||||
|
* 更新权限缓存 |
||||
|
* @param staffId |
||||
|
* @param permissions |
||||
|
*/ |
||||
|
@Override |
||||
|
public void updatePermissionCache(String staffId, String app, String client, List<String> permissions) { |
||||
|
GovTokenDto govTokenDto = cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class); |
||||
|
if (govTokenDto == null) { |
||||
|
logger.warn("更新[{}]用户缓存:Redis中不存在该用户TokenDto缓存信息", staffId); |
||||
|
return ; |
||||
|
} |
||||
|
govTokenDto.setPermissions(permissions); |
||||
|
|
||||
|
// 将新的TokenDto更新到redis中
|
||||
|
long expire = cpUserDetailRedis.getExpire(app, client, staffId); |
||||
|
cpUserDetailRedis.set(govTokenDto, expire); |
||||
|
logger.warn("更新[{}]用户缓存成功。", staffId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 获取组织列表-接口入参 |
||||
|
* |
||||
|
* @author sun |
||||
|
*/ |
||||
|
@Data |
||||
|
public class AgencyListFormDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 机关组织Id |
||||
|
*/ |
||||
|
@NotBlank(message = "组织机构ID不能为空") |
||||
|
private String agencyId; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author zhaoqifeng |
||||
|
* @dscription |
||||
|
* @date 2020/4/23 15:45 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class StaffsInAgencyFromDTO implements Serializable { |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
/** |
||||
|
* 客户ID |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
/** |
||||
|
* 机关ID |
||||
|
*/ |
||||
|
private String agencyId; |
||||
|
/** |
||||
|
* 用户ID |
||||
|
*/ |
||||
|
private List<String> staffList; |
||||
|
} |
@ -0,0 +1,51 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dto.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 获取组织列表-接口返参 |
||||
|
* |
||||
|
* @author sun |
||||
|
*/ |
||||
|
@Data |
||||
|
public class AgencyListResultDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 机关组织Id |
||||
|
*/ |
||||
|
private String agencyId; |
||||
|
|
||||
|
/** |
||||
|
* 机关组织名称 |
||||
|
*/ |
||||
|
private String agencyName; |
||||
|
|
||||
|
/** |
||||
|
* 总人数 |
||||
|
*/ |
||||
|
private Integer totalUser; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,38 @@ |
|||||
|
package com.epmet.dto.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
/** |
||||
|
* @author zhaoqifeng |
||||
|
* @dscription |
||||
|
* @date 2020/4/23 16:08 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class StaffInfoResultDTO implements Serializable { |
||||
|
/** |
||||
|
* 用户ID |
||||
|
*/ |
||||
|
private String staffId; |
||||
|
/** |
||||
|
* 用户姓名 |
||||
|
*/ |
||||
|
private String staffName; |
||||
|
/** |
||||
|
* 头像 |
||||
|
*/ |
||||
|
private String staffHeadPhoto; |
||||
|
/** |
||||
|
* 性别 |
||||
|
*/ |
||||
|
private Integer gender; |
||||
|
/** |
||||
|
* 是否禁用(未禁用enable,已禁用disabled) |
||||
|
*/ |
||||
|
private String enableFlag; |
||||
|
/** |
||||
|
* 权限名 |
||||
|
*/ |
||||
|
private String roleName; |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package com.epmet.dto.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author zhaoqifeng |
||||
|
* @dscription |
||||
|
* @date 2020/4/23 15:58 |
||||
|
*/ |
||||
|
@NoArgsConstructor |
||||
|
@Data |
||||
|
public class StaffsInAgencyResultDTO implements Serializable { |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
/** |
||||
|
* 人员总数 |
||||
|
*/ |
||||
|
private Integer staffCount; |
||||
|
/** |
||||
|
* 人员列表 |
||||
|
*/ |
||||
|
private List<StaffInfoResultDTO> staffList; |
||||
|
|
||||
|
} |
@ -0,0 +1,113 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.form.*; |
||||
|
import com.epmet.dto.result.AddAgencyResultDTO; |
||||
|
import com.epmet.dto.result.AgencyListResultDTO; |
||||
|
import com.epmet.dto.result.AgencydetailResultDTO; |
||||
|
import com.epmet.dto.result.SubAgencyResultDTO; |
||||
|
import com.epmet.service.AgencyService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 组织机构 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("agency") |
||||
|
public class AgencyController { |
||||
|
|
||||
|
@Autowired |
||||
|
private AgencyService agencyService; |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 添加组织 |
||||
|
*/ |
||||
|
@PostMapping("addagency") |
||||
|
public Result<AddAgencyResultDTO> addAgency(@RequestBody AddAgencyFormDTO formDTO) { |
||||
|
return agencyService.addAgency(formDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织名称编辑 |
||||
|
*/ |
||||
|
@PostMapping("editagency") |
||||
|
public Result editAgency(@RequestBody EditAgencyFormDTO formDTO) { |
||||
|
return agencyService.editAgency(formDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 删除组织机关 |
||||
|
*/ |
||||
|
@PostMapping("removeagency") |
||||
|
public Result removeAgency(@RequestBody RemoveAgencyFormDTO formDTO) { |
||||
|
return agencyService.removeAgency(formDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-获取组织机构信息 |
||||
|
*/ |
||||
|
@PostMapping("agencydetail") |
||||
|
public Result<AgencydetailResultDTO> agencyDetail(@RequestBody AgencydetailFormDTO formDTO) { |
||||
|
return agencyService.agencyDetail(formDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-下级机关列表 |
||||
|
*/ |
||||
|
@PostMapping("subagencylist") |
||||
|
public Result<SubAgencyResultDTO> subAgencyList(@RequestBody SubAgencyFormDTO formDTO) { |
||||
|
return agencyService.subAgencyList(formDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 获取组织列表 |
||||
|
*/ |
||||
|
@PostMapping("agencylist") |
||||
|
public Result<List<AgencyListResultDTO>> agencyList(@RequestBody AgencyListFormDTO formDTO) { |
||||
|
return agencyService.agencyList(formDTO); |
||||
|
} |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
|
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
||||
|
import com.epmet.dto.result.StaffInfoResultDTO; |
||||
|
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
||||
|
import com.epmet.service.StaffService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 组织结构-工作人员 |
||||
|
* @author zhaoqifeng |
||||
|
* @date 2020/4/23 17:59 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("staff") |
||||
|
public class StaffController { |
||||
|
@Autowired |
||||
|
private StaffService staffService; |
||||
|
/** |
||||
|
* 组织首页-工作人员列表 |
||||
|
* @param fromDTO |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("staffsinagency") |
||||
|
public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { |
||||
|
return staffService.getStaffInfoForHome(fromDTO); |
||||
|
} |
||||
|
} |
@ -0,0 +1,85 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.service.BaseService; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.CustomerAgencyDTO; |
||||
|
import com.epmet.dto.form.*; |
||||
|
import com.epmet.dto.result.*; |
||||
|
import com.epmet.entity.CustomerAgencyEntity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 机关单位信息 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
*/ |
||||
|
public interface AgencyService { |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 添加组织 |
||||
|
*/ |
||||
|
Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO); |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织名称编辑 |
||||
|
*/ |
||||
|
Result editAgency(EditAgencyFormDTO formDTO); |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 删除组织机关 |
||||
|
*/ |
||||
|
Result removeAgency(RemoveAgencyFormDTO formDTO); |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-获取组织机构信息 |
||||
|
*/ |
||||
|
Result<AgencydetailResultDTO> agencyDetail(AgencydetailFormDTO formDTO); |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-下级机关列表 |
||||
|
*/ |
||||
|
Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO); |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 获取组织列表 |
||||
|
*/ |
||||
|
Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO); |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
||||
|
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
||||
|
|
||||
|
/** |
||||
|
* 组织结构-工作人员 |
||||
|
* |
||||
|
* @author zhaoqifeng |
||||
|
* @date 2020/4/23 18:00 |
||||
|
*/ |
||||
|
public interface StaffService { |
||||
|
/** |
||||
|
* 组织首页-工作人员列表 |
||||
|
* |
||||
|
* @param fromDTO 参数 |
||||
|
* @return Result<StaffsInAgencyResultDTO> |
||||
|
* @author zhaoqifeng |
||||
|
*/ |
||||
|
Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO); |
||||
|
} |
@ -0,0 +1,197 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
||||
|
import com.epmet.commons.tools.constant.FieldConstant; |
||||
|
import com.epmet.commons.tools.constant.NumConstant; |
||||
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
||||
|
import com.epmet.commons.tools.exception.RenException; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.ConvertUtils; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.constant.CustomerAgencyConstant; |
||||
|
import com.epmet.dao.CustomerAgencyDao; |
||||
|
import com.epmet.dto.CustomerAgencyDTO; |
||||
|
import com.epmet.dto.form.*; |
||||
|
import com.epmet.dto.result.*; |
||||
|
import com.epmet.entity.CustomerAgencyEntity; |
||||
|
import com.epmet.redis.CustomerAgencyRedis; |
||||
|
import com.epmet.service.AgencyService; |
||||
|
import com.epmet.service.CustomerAgencyService; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
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; |
||||
|
|
||||
|
import java.util.Arrays; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 机关单位信息 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
*/ |
||||
|
@Service |
||||
|
public class AgencyServiceImpl implements AgencyService { |
||||
|
|
||||
|
private static final Logger log = LoggerFactory.getLogger(AgencyServiceImpl.class); |
||||
|
@Autowired |
||||
|
private CustomerAgencyDao customerAgencyDao; |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 添加组织 |
||||
|
*/ |
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public Result<AddAgencyResultDTO> addAgency(AddAgencyFormDTO formDTO) { |
||||
|
Result<AddAgencyResultDTO> result = new Result<AddAgencyResultDTO>(); |
||||
|
AddAgencyResultDTO addAgencyResultDTO = new AddAgencyResultDTO(); |
||||
|
//0:属性映射赋值
|
||||
|
CustomerAgencyEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); |
||||
|
entity.setOrganizationName(formDTO.getAgencyName()); |
||||
|
entity.setTotalUser(NumConstant.ZERO); |
||||
|
//1:查询上级机关信息
|
||||
|
CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getPid()); |
||||
|
entity.setCustomerId(parentEntity.getCustomerId()); |
||||
|
if (null == parentEntity.getPid()) { |
||||
|
entity.setPids(parentEntity.getId()); |
||||
|
entity.setAllParentName(parentEntity.getOrganizationName()); |
||||
|
} else { |
||||
|
entity.setPids(":" + parentEntity.getId()); |
||||
|
entity.setAllParentName("-" + parentEntity.getOrganizationName()); |
||||
|
} |
||||
|
//2:保存组织信息
|
||||
|
if (customerAgencyDao.insert(entity) < NumConstant.ONE) { |
||||
|
log.error(CustomerAgencyConstant.SAVE_EXCEPTION); |
||||
|
throw new RenException(CustomerAgencyConstant.SAVE_EXCEPTION); |
||||
|
} |
||||
|
//3:返回新组织Id
|
||||
|
addAgencyResultDTO.setAgencyId(entity.getId()); |
||||
|
return result.ok(addAgencyResultDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织名称编辑 |
||||
|
*/ |
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public Result editAgency(EditAgencyFormDTO formDTO) { |
||||
|
Result result = new Result(); |
||||
|
CustomerAgencyEntity entity = new CustomerAgencyEntity(); |
||||
|
entity.setId(formDTO.getAgencyId()); |
||||
|
entity.setOrganizationName(formDTO.getAgencyName()); |
||||
|
if (customerAgencyDao.updateById(entity) < NumConstant.ONE) { |
||||
|
log.error(CustomerAgencyConstant.UPDATE_EXCEPTION); |
||||
|
throw new RenException(CustomerAgencyConstant.UPDATE_EXCEPTION); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 删除组织机关 |
||||
|
*/ |
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public Result removeAgency(RemoveAgencyFormDTO formDTO) { |
||||
|
Result result = new Result(); |
||||
|
//1:查询当前机关是否存在所属下级机关,存在下级的不能删除
|
||||
|
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
||||
|
if (null != agencyList && agencyList.size() > NumConstant.ZERO) { |
||||
|
result.setCode(EpmetErrorCode.NOT_DEL_AGENCY.getCode()); |
||||
|
result.setMsg(EpmetErrorCode.NOT_DEL_AGENCY.getMsg()); |
||||
|
return result; |
||||
|
} |
||||
|
//2:删除当前机关组织(逻辑删)
|
||||
|
if (customerAgencyDao.deleteById(formDTO.getAgencyId()) < NumConstant.ONE) { |
||||
|
log.error(CustomerAgencyConstant.DEL_EXCEPTION); |
||||
|
throw new RenException(CustomerAgencyConstant.DEL_EXCEPTION); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-获取组织机构信息 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Result<AgencydetailResultDTO> agencyDetail(AgencydetailFormDTO formDTO) { |
||||
|
AgencydetailResultDTO agencydetailResultDTO = new AgencydetailResultDTO(); |
||||
|
//1:查询本机关详细信息
|
||||
|
CustomerAgencyEntity entity = customerAgencyDao.selectById(formDTO.getAgencyId()); |
||||
|
if (null == entity) { |
||||
|
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
||||
|
} |
||||
|
agencydetailResultDTO = ConvertUtils.sourceToTarget(entity, AgencydetailResultDTO.class); |
||||
|
agencydetailResultDTO.setAgencyId(entity.getId()); |
||||
|
agencydetailResultDTO.setAgencyName(entity.getOrganizationName()); |
||||
|
//2:查询本机关的所有上级机关,按自上而下层级顺序
|
||||
|
if (null == entity.getPids()) { |
||||
|
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
||||
|
} |
||||
|
List<String> listStr = Arrays.asList(entity.getPids().split(":")); |
||||
|
List<ParentListResultDTO> parentList = customerAgencyDao.selectPAgencyById(listStr); |
||||
|
agencydetailResultDTO.setParentList(parentList); |
||||
|
return new Result<AgencydetailResultDTO>().ok(agencydetailResultDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 组织首页-下级机关列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Result<SubAgencyResultDTO> subAgencyList(SubAgencyFormDTO formDTO) { |
||||
|
SubAgencyResultDTO subAgencyResultDTO = new SubAgencyResultDTO(); |
||||
|
//1:根据当前机关Id查询直属下一级机关列表
|
||||
|
List<SubListResultDTO> agencyList = customerAgencyDao.selectSubAgencyById(formDTO.getAgencyId()); |
||||
|
subAgencyResultDTO.setAgencyList(agencyList); |
||||
|
//2:统计下一级机关数
|
||||
|
subAgencyResultDTO.setSubAgencyCount(agencyList.size()); |
||||
|
return new Result<SubAgencyResultDTO>().ok(subAgencyResultDTO); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
* @Author sun |
||||
|
* @Description 获取组织列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Result<List<AgencyListResultDTO>> agencyList(AgencyListFormDTO formDTO) { |
||||
|
List<AgencyListResultDTO> agencyList = customerAgencyDao.selectAgencyList(formDTO.getAgencyId()); |
||||
|
return new Result<List<AgencyListResultDTO>>().ok(agencyList); |
||||
|
} |
||||
|
} |
@ -0,0 +1,54 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dto.CustomerStaffAgencyDTO; |
||||
|
import com.epmet.dto.form.StaffsInAgencyFromDTO; |
||||
|
import com.epmet.dto.result.StaffInfoResultDTO; |
||||
|
import com.epmet.dto.result.StaffsInAgencyResultDTO; |
||||
|
import com.epmet.entity.CustomerAgencyEntity; |
||||
|
import com.epmet.feign.EpmetUserFeignClient; |
||||
|
import com.epmet.feign.OperCrmFeignClient; |
||||
|
import com.epmet.service.CustomerAgencyService; |
||||
|
import com.epmet.service.CustomerStaffAgencyService; |
||||
|
import com.epmet.service.StaffService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* @author zhaoqifeng |
||||
|
* @dscription |
||||
|
* @date 2020/4/23 18:05 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class StaffServiceImpl implements StaffService { |
||||
|
@Autowired |
||||
|
private EpmetUserFeignClient epmetUserFeignClient; |
||||
|
@Autowired |
||||
|
private OperCrmFeignClient operCrmFeignClient; |
||||
|
@Autowired |
||||
|
private CustomerAgencyService customerAgencyService; |
||||
|
@Autowired |
||||
|
private CustomerStaffAgencyService customerStaffAgencyService; |
||||
|
@Override |
||||
|
public Result<StaffsInAgencyResultDTO> getStaffInfoForHome(StaffsInAgencyFromDTO fromDTO) { |
||||
|
StaffsInAgencyResultDTO resultDTO = new StaffsInAgencyResultDTO(); |
||||
|
//获取机关所在客户ID和人员总数
|
||||
|
CustomerAgencyEntity customerAgencyEntity = customerAgencyService.selectById(fromDTO.getAgencyId()); |
||||
|
resultDTO.setStaffCount(customerAgencyEntity.getTotalUser()); |
||||
|
fromDTO.setCustomerId(customerAgencyEntity.getCustomerId()); |
||||
|
List<CustomerStaffAgencyDTO> customerStaffAgencyList = customerStaffAgencyService.getCustomerStaffAgencyList(fromDTO).getData(); |
||||
|
if (null == customerStaffAgencyList || customerStaffAgencyList.size() == 0) { |
||||
|
return new Result<StaffsInAgencyResultDTO>().ok(null); |
||||
|
} |
||||
|
//提取所有userID
|
||||
|
List<String> staffIds = customerStaffAgencyList.stream().map(CustomerStaffAgencyDTO::getUserId).collect(Collectors.toList()); |
||||
|
fromDTO.setStaffList(staffIds); |
||||
|
//获取用户信息
|
||||
|
Result<List<StaffInfoResultDTO>> staffInfoListResult = epmetUserFeignClient.getStaffInfoForHome(fromDTO); |
||||
|
resultDTO.setStaffList(staffInfoListResult.getData()); |
||||
|
return new Result<StaffsInAgencyResultDTO>().ok(resultDTO); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue