package com.gkhy.safePlatform.account.rpc.test; import com.alibaba.fastjson.JSONObject; import com.gkhy.safePlatform.account.enums.schedule.TimeTypeEnum; import com.gkhy.safePlatform.account.model.dto.req.AccountAddReqDTO; import com.gkhy.safePlatform.account.model.dto.req.AccountModReqDTO; import com.gkhy.safePlatform.account.model.dto.resp.*; import com.gkhy.safePlatform.account.model.query.AccountQuery; import com.gkhy.safePlatform.account.rpc.apimodel.AccountUserService; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.AccountAddRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.AccountModRPCReqDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.req.query.AccountRPCQuery; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.*; import com.gkhy.safePlatform.account.service.AccountService; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDate; import java.util.ArrayList; import java.util.Collections; import java.util.List; @DubboService public class AccountUserServiceProvider implements AccountUserService { @Autowired private AccountService accountService; @Override public String getAccountPage(Long userId, PageQuery RPCPageQuery) { ; AccountQuery accountQuery = new AccountQuery(); BeanUtils.copyProperties(RPCPageQuery.getSearchParams(), accountQuery); PageQuery pageQuery = new PageQuery<>(); pageQuery.setPageIndex(RPCPageQuery.getPageIndex()); pageQuery.setPageSize(RPCPageQuery.getPageSize()); pageQuery.setSearchParams(accountQuery); SearchResultVO> accountPage = accountService.listAccountByPage(userId, pageQuery); return JSONObject.toJSONString(accountPage); } @Override public ResultVO> getDepList(Long userId,Long depId) { try { List depUserList = accountService.getDepUserList(userId, depId); List data = BeanCopyUtils.copyBeanList(depUserList, DepUserRPCRespDTO.class); return new ResultVO<>(ResultCodes.OK, data); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { ResultVO resultVO = new ResultVO<>(); resultVO.setCode(ResultCodes.SERVER_ERROR); return resultVO; // return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO addAccount(ContextCacheUser currentUser, AccountAddRPCReqDTO accountAddRPCReqDTO) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { AccountAddReqDTO accountAddReqDTO = new AccountAddReqDTO(); BeanUtils.copyProperties(accountAddRPCReqDTO, accountAddReqDTO); accountService.addAccount(currentUser,accountAddReqDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO modAccount(ContextCacheUser currentUser, AccountModRPCReqDTO accountModRPCReqDTO) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { AccountModReqDTO accountModReqDTO = new AccountModReqDTO(); BeanUtils.copyProperties(accountModRPCReqDTO, accountModReqDTO); accountService.modAccount(currentUser,accountModReqDTO); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO delAccount(ContextCacheUser currentUser, Long id) { ; ResultVO result = new ResultVO<>(ResultCodes.OK); try { accountService.delAccount(currentUser, id); } catch (AusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (BusinessException e) { result.setCode(e.getCode()); result.setMsg(e.getMessage()); } catch (Exception e) { result.setCode(ResultCodes.SERVER_ERROR.getCode()); result.setMsg(ResultCodes.SERVER_ERROR.getDesc()); } return result; } @Override public ResultVO getPersonalAccountDetail(Long userId) { ; PersonalDetailRespDTO personalDetailRespDTO = accountService.getPersonalAccountByUserId(userId); assert personalDetailRespDTO != null; PersonalDetailRPCRespDTO personalDetailRPCRespDTO = new PersonalDetailRPCRespDTO(); BeanUtils.copyProperties(personalDetailRespDTO,personalDetailRPCRespDTO); // 部门 if (personalDetailRespDTO.getDepartment() != null) { PersonalDetailDepRPCRespDTO personalDetailDepRPCRespDTO = new PersonalDetailDepRPCRespDTO(); BeanUtils.copyProperties(personalDetailRespDTO.getDepartment(), personalDetailDepRPCRespDTO); personalDetailRPCRespDTO.setDepartment(personalDetailDepRPCRespDTO); } // 角色 if (personalDetailRespDTO.getRole() != null) { PersonalDetailRoleRPCRespDTO personalDetailRoleRPCRespDTO = new PersonalDetailRoleRPCRespDTO(); BeanUtils.copyProperties(personalDetailRespDTO.getRole(), personalDetailRoleRPCRespDTO); personalDetailRPCRespDTO.setRole(personalDetailRoleRPCRespDTO); } return new ResultVO<>(ResultCodes.OK,personalDetailRPCRespDTO); } @Override public ResultVO getUserGroupWorkTimeTable(Long uid,LocalDate startTime,LocalDate endTime) { UserGroupTimTableRPCRespDTO res = new UserGroupTimTableRPCRespDTO(); UserGroupTimTableRespDTO userGroupWorkSchedule = accountService.getUserGroupWorkSchedule(uid,startTime,endTime); if (userGroupWorkSchedule != null) { res.setGroupId(userGroupWorkSchedule.getGroupId()); res.setGroupName(userGroupWorkSchedule.getGroupName()); res.setPhone(userGroupWorkSchedule.getPhone()); res.setUid(userGroupWorkSchedule.getUid()); res.setRealName(userGroupWorkSchedule.getRealName()); res.setUsername(userGroupWorkSchedule.getUsername()); if (userGroupWorkSchedule.getTimeDetails() != null) { List userTimeTableDetailRespDTOS = userGroupWorkSchedule.getTimeDetails(); List result = new ArrayList<>(userTimeTableDetailRespDTOS.size()); if (userTimeTableDetailRespDTOS.size() > 0) { UserTimeTableRPCRespDTO rpcRespDTO; for (UserTimeTableDetailRespDTO detail : userTimeTableDetailRespDTOS) { rpcRespDTO = new UserTimeTableRPCRespDTO(); rpcRespDTO.setStartTime(detail.getStartTime()); rpcRespDTO.setEndTime(detail.getEndTime()); rpcRespDTO.setType(detail.getType()); TimeTypeEnum timeTypeEnum = TimeTypeEnum.parse(detail.getType()); if (timeTypeEnum != null) { rpcRespDTO.setTypeDesc(timeTypeEnum.getValue()); } result.add(rpcRespDTO); } } res.setTimeDetails(result); } } return new ResultVO<>(ResultCodes.OK, res); } @Override public ResultVO getUserInfoByUid(Long uid) { try { UserInfoRPCRespDTO result = null; UserInfoRespDTO userInfo = accountService.getUserInfoByUid(uid); if (userInfo != null) { result = new UserInfoRPCRespDTO(); BeanUtils.copyProperties(userInfo,result); } return new ResultVO<>(ResultCodes.OK,result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { ResultVO resultVO = new ResultVO<>(); resultVO.setCode(ResultCodes.SERVER_ERROR); return resultVO; // return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listUserInfoByUids(List uids) { try { List data = accountService.listUserByUids(uids); List result = new ArrayList<>(data.size()); UserInfoRPCRespDTO rpcRespDTO; for (UserInfoRespDTO respDTO : data) { rpcRespDTO = new UserInfoRPCRespDTO(); rpcRespDTO.setUid(respDTO.getUid()); rpcRespDTO.setUuid(respDTO.getUuid()); rpcRespDTO.setUsername(respDTO.getUsername()); rpcRespDTO.setRealName(respDTO.getRealName()); rpcRespDTO.setGender(respDTO.getGender()); rpcRespDTO.setType(respDTO.getType()); rpcRespDTO.setStatus(respDTO.getStatus()); rpcRespDTO.setPhone(respDTO.getPhone()); rpcRespDTO.setIdentify(respDTO.getIdentify()); rpcRespDTO.setEmail(respDTO.getEmail()); rpcRespDTO.setDepId(respDTO.getDepId()); rpcRespDTO.setRoleId(respDTO.getRoleId()); rpcRespDTO.setPositionId(respDTO.getPositionId()); result.add(rpcRespDTO); } return new ResultVO<>(ResultCodes.OK,result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { ResultVO resultVO = new ResultVO<>(); resultVO.setCode(ResultCodes.SERVER_ERROR); return resultVO; // return new ResultVO<>(ResultCodes.SERVER_ERROR); } } @Override public ResultVO> listUserInfoByRealName(String realName) { try { List userInfoRespDTOs = accountService.listUserByRealName(realName); List result = new ArrayList<>(userInfoRespDTOs.size()); if (userInfoRespDTOs.size() > 0) { UserInfoRPCRespDTO rpcRespDTO; for (UserInfoRespDTO respDTO : userInfoRespDTOs) { rpcRespDTO = new UserInfoRPCRespDTO(); rpcRespDTO.setUid(respDTO.getUid()); rpcRespDTO.setUuid(respDTO.getUuid()); rpcRespDTO.setUsername(respDTO.getUsername()); rpcRespDTO.setRealName(respDTO.getRealName()); rpcRespDTO.setGender(respDTO.getGender()); rpcRespDTO.setType(respDTO.getType()); rpcRespDTO.setStatus(respDTO.getStatus()); rpcRespDTO.setPhone(respDTO.getPhone()); rpcRespDTO.setIdentify(respDTO.getIdentify()); rpcRespDTO.setEmail(respDTO.getEmail()); rpcRespDTO.setDepId(respDTO.getDepId()); rpcRespDTO.setRoleId(respDTO.getRoleId()); rpcRespDTO.setPositionId(respDTO.getPositionId()); result.add(rpcRespDTO); } } return new ResultVO<>(ResultCodes.OK, result); } catch (AusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (BusinessException e) { return new ResultVO<>(e.getCode(), e.getMessage()); } catch (Exception e) { ResultVO resultVO = new ResultVO<>(); resultVO.setCode(ResultCodes.SERVER_ERROR); return resultVO; // return new ResultVO<>(ResultCodes.SERVER_ERROR); } } }