zxc 3 years ago
parent
commit
1294fe08be
  1. 49
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java
  2. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java
  3. 6
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncOrgDataDao.xml
  4. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

49
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java

@ -1,16 +1,22 @@
package com.epmet.controller.yantai; package com.epmet.controller.yantai;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoDTOCache;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.api.yt.OrgData; import com.epmet.commons.tools.utils.api.yt.OrgData;
import com.epmet.commons.tools.utils.api.yt.UserData;
import com.epmet.commons.tools.utils.api.yt.YantaiApi; import com.epmet.commons.tools.utils.api.yt.YantaiApi;
import com.epmet.dao.yantai.DataSyncOrgDataDao; import com.epmet.dao.yantai.DataSyncOrgDataDao;
import com.epmet.dao.yantai.DataSyncUserDataDao; import com.epmet.dao.yantai.DataSyncUserDataDao;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.form.yantai.YtUserPageFormDTO; import com.epmet.dto.form.yantai.YtUserPageFormDTO;
import com.epmet.dto.result.yantai.DataSyncOrgDataDTO; import com.epmet.dto.result.yantai.DataSyncOrgDataDTO;
import com.epmet.dto.result.yantai.YtUserPageResDTO; import com.epmet.dto.result.yantai.YtUserPageResDTO;
import com.epmet.entity.yantai.DataSyncOrgDataEntity; import com.epmet.entity.yantai.DataSyncOrgDataEntity;
import com.epmet.entity.yantai.DataSyncUserDataEntity;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.service.DataSyncOrgDataService; import com.epmet.service.DataSyncOrgDataService;
import com.epmet.service.DataSyncUserDataService; import com.epmet.service.DataSyncUserDataService;
@ -56,9 +62,46 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService
*/ */
@Override @Override
public Boolean yanTaiSyncUser(String organizationId) { public Boolean yanTaiSyncUser(String organizationId) {
String customerId = "45687aa479955f9d06204d415238f7cc";
// List<UserData> data = YantaiApi.getUserByOuGuid(organizationId); // 缓存初始化staffs
//todo 更新或插入数据 epmetUserOpenFeignClient.allCustomerStaffInCache(customerId);
Integer no = NumConstant.ONE;
Integer size;
do {
// 分批获取org
PageInfo<com.epmet.dto.DataSyncOrgDataDTO> pageInfo = PageHelper.startPage(no, NumConstant.ONE_HUNDRED).doSelectPageInfo(() -> dataSyncOrgDataDao.getAllList(customerId));
size = pageInfo.getList().size();
if (CollectionUtils.isNotEmpty(pageInfo.getList())){
List<DataSyncUserDataEntity> needInsert = new ArrayList<>();
pageInfo.getList().forEach(org -> {
// 根据org查用户
List<UserData> data = YantaiApi.getUserByOuGuid(org.getOrganizationId());
if (CollectionUtils.isNotEmpty(data)){
for (UserData u : data) {
CustomerStaffInfoDTOCache staffInfo = CustomerStaffRedis.getStaffInfoByMobile(customerId, u.getMobileTelephoneNumber());
DataSyncUserDataEntity entity = ConvertUtils.sourceToTarget(u, DataSyncUserDataEntity.class);
entity.setCustomerId(customerId);
entity.setRemark("");
if (null == staffInfo){
entity.setStatus(NumConstant.ZERO_STR);
entity.setOrganizationId("");
entity.setStaffId("");
}else {
CustomerStaffInfoCacheResult staffInfo1 = CustomerStaffRedis.getStaffInfo(customerId, staffInfo.getUserId());
entity.setStatus(NumConstant.ONE_STR);
entity.setOrganizationId(null == staffInfo1 ? "" : staffInfo1.getAgencyId());
entity.setStaffId(staffInfo.getUserId());
}
needInsert.add(entity);
}
}
});
dataSyncUserDataService.insertBatch(needInsert,NumConstant.FIVE_HUNDRED);
}
no++;
}while (size == NumConstant.ONE_HUNDRED);
// 删除staffs缓存
CustomerStaffRedis.delAllCustomerStaff(customerId);
return false; return false;
} }

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java

@ -22,4 +22,6 @@ public interface DataSyncOrgDataDao extends BaseDao<DataSyncOrgDataEntity> {
* @return * @return
*/ */
List<DataSyncOrgDataDTO> queryList(@Param("pid") String pid); List<DataSyncOrgDataDTO> queryList(@Param("pid") String pid);
List<com.epmet.dto.DataSyncOrgDataDTO> getAllList(@Param("customerId") String customerId);
} }

6
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncOrgDataDao.xml

@ -46,4 +46,10 @@
</if> </if>
order by d.ORDER_NUMBER asc order by d.ORDER_NUMBER asc
</select> </select>
<select id="getAllList" resultType="com.epmet.dto.DataSyncOrgDataDTO">
select * from data_sync_org_data
where del_flag = '0'
and CUSTOMER_ID = #{customerId}
order by ORDER_NUMBER asc
</select>
</mapper> </mapper>

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -61,6 +61,8 @@ import com.epmet.service.GovStaffRoleService;
import com.epmet.service.StaffRoleService; import com.epmet.service.StaffRoleService;
import com.epmet.service.UserService; import com.epmet.service.UserService;
import com.epmet.util.ModuleConstant; import com.epmet.util.ModuleConstant;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -1159,10 +1161,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
Integer no = NumConstant.ONE; Integer no = NumConstant.ONE;
Integer size; Integer size;
do { do {
List<CustomerStaffDTO> customerStaffs = baseDao.getAllStaffByCustomerId(customerId); PageInfo<CustomerStaffDTO> pageInfo = PageHelper.startPage(no, NumConstant.ONE_HUNDRED).doSelectPageInfo(() -> baseDao.getAllStaffByCustomerId(customerId));
size = customerStaffs.size(); size = pageInfo.getList().size();
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(customerStaffs)){ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(pageInfo.getList())){
customerStaffs.forEach(c -> { pageInfo.getList().forEach(c -> {
String key = RedisKeys.getCustomerStaffInfoKeyByMobile(customerId, c.getMobile()); String key = RedisKeys.getCustomerStaffInfoKeyByMobile(customerId, c.getMobile());
Map<String, Object> map = BeanUtil.beanToMap(c, false, true); Map<String, Object> map = BeanUtil.beanToMap(c, false, true);
redisUtils.hMSet(key,map); redisUtils.hMSet(key,map);

Loading…
Cancel
Save