|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package com.ruoyi.flyingbook.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import com.lark.oapi.service.contact.v3.model.GetDepartmentRespBody;
|
|
|
|
|
import com.lark.oapi.service.contact.v3.model.GetUserRespBody;
|
|
|
|
|
import com.ruoyi.common.enums.FlagStatus;
|
|
|
|
|
import com.ruoyi.common.enums.LarkActiveEnum;
|
|
|
|
@ -15,10 +16,7 @@ import com.ruoyi.flyingbook.domain.LarkUserActiveImage;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.LarkUserActiveRelatoin;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.edi.ResponseVo;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.lark.LarkUserRequest;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveCountVo;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveImportVo;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveUserRelationRequest;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.larkactive.LarkActiveVo;
|
|
|
|
|
import com.ruoyi.flyingbook.domain.larkactive.*;
|
|
|
|
|
import com.ruoyi.flyingbook.mapper.LarkActiveMapper;
|
|
|
|
|
import com.ruoyi.flyingbook.mapper.LarkLoginLogMapper;
|
|
|
|
|
import com.ruoyi.flyingbook.mapper.LarkUserActiveImageMapper;
|
|
|
|
@ -79,6 +77,7 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
|
|
|
|
|
return larkUserActiveRelatoinMapper.selectLarkUserActiveRelatoinById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public LarkActiveCountVo queryCount() {
|
|
|
|
|
LarkActiveCountVo larkActiveCountVo = new LarkActiveCountVo();
|
|
|
|
@ -110,6 +109,70 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
|
|
|
|
|
return larkActiveCountVo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<LarkActiveExportDetailVo> queryExportDetail(String appId,String appSecret) {
|
|
|
|
|
List<LarkActiveExportDetailVo> result = new ArrayList<>();
|
|
|
|
|
LarkUserActiveRelatoin larkUserActiveRelatoin = new LarkUserActiveRelatoin();
|
|
|
|
|
larkUserActiveRelatoin.setActiveStage(LarkActiveStageEnum.ADJUST.getCode());
|
|
|
|
|
larkUserActiveRelatoin.setFlag(FlagStatus.OK.getCode());
|
|
|
|
|
List<LarkUserActiveRelatoin> larkUserActiveRelatoins = larkUserActiveRelatoinMapper.selectLarkUserActiveRelatoinList(larkUserActiveRelatoin);
|
|
|
|
|
if (CollectionUtils.isEmpty(larkUserActiveRelatoins)){
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
Map<Long, String> activeMap = queryActiveMap();
|
|
|
|
|
List<String> openIdList = larkUserActiveRelatoins.stream().filter(r -> {
|
|
|
|
|
return StringUtils.isNotBlank(r.getUserName());
|
|
|
|
|
}).map(LarkUserActiveRelatoin::getUserName)
|
|
|
|
|
.distinct().collect(Collectors.toList());
|
|
|
|
|
Map<String, LarkLoginLog> userInfoMap = larkLoginLogMapper.queryByOpenId(openIdList).stream().collect(Collectors.toMap(LarkLoginLog::getOpenId, Function.identity(), (k1, k2) -> k1));
|
|
|
|
|
LarkUserRequest larkUserRequest = new LarkUserRequest(appId, appSecret);
|
|
|
|
|
Map<String,String> departmentMap = new HashMap<>();
|
|
|
|
|
for (LarkUserActiveRelatoin userActiveRelatoin : larkUserActiveRelatoins) {
|
|
|
|
|
Long activeId = userActiveRelatoin.getActiveId();
|
|
|
|
|
String userName = userActiveRelatoin.getUserName();
|
|
|
|
|
String activeName = activeMap.get(activeId);
|
|
|
|
|
LarkLoginLog larkLoginLog = userInfoMap.get(userName);
|
|
|
|
|
LarkActiveExportDetailVo vo = new LarkActiveExportDetailVo();
|
|
|
|
|
vo.setActiveTime(DateUtils.date2str(userActiveRelatoin.getCreateTime(),DateUtils.YYYY_MM_DD_HH_MM_SS));
|
|
|
|
|
vo.setActiveName(activeName);
|
|
|
|
|
if (larkLoginLog != null){
|
|
|
|
|
vo.setUserName(larkLoginLog.getUserName());
|
|
|
|
|
if (StringUtils.isNotBlank(larkLoginLog.getDepartmentId())){
|
|
|
|
|
larkUserRequest.setDepartmentId(larkLoginLog.getDepartmentId());
|
|
|
|
|
fillDepartmentName(larkUserRequest,vo,departmentMap);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
result.add(vo);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void fillDepartmentName(LarkUserRequest larkUserRequest,LarkActiveExportDetailVo vo,Map<String,String> departmentMap){
|
|
|
|
|
try {
|
|
|
|
|
String departmentName = departmentMap.get(larkUserRequest.getDepartmentId());
|
|
|
|
|
if (StringUtils.isNotBlank(departmentName)){
|
|
|
|
|
vo.setDepartment(departmentName);
|
|
|
|
|
}else {
|
|
|
|
|
GetDepartmentRespBody departmentsInfoDetail = larkUserHelper.getDepartmentsInfoDetail(larkUserRequest);
|
|
|
|
|
if (departmentsInfoDetail != null){
|
|
|
|
|
vo.setDepartment(departmentsInfoDetail.getDepartment().getName());
|
|
|
|
|
}else {
|
|
|
|
|
vo.setDepartment(larkUserRequest.getDepartmentId());
|
|
|
|
|
}
|
|
|
|
|
departmentMap.put(larkUserRequest.getDepartmentId(),vo.getDepartment());
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
log.info("fillDepartmentName error",e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Map<Long,String> queryActiveMap(){
|
|
|
|
|
//每个活动的数量
|
|
|
|
|
LarkActive query = new LarkActive();
|
|
|
|
|
query.setFlag(FlagStatus.OK.getCode());
|
|
|
|
|
return larkActiveMapper.queryActive(query).stream().collect(Collectors.toMap(LarkActive::getId,LarkActive::getActiveContent,(k1,k2)->k1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void fillCount(LarkActiveCountVo larkActiveCountVo, Integer qty, String activeCode) {
|
|
|
|
|
qty = qty == null ? 0 : qty;
|
|
|
|
|
LarkActiveEnum activeEnum = LarkActiveEnum.getByCode(activeCode);
|
|
|
|
@ -248,26 +311,26 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
LarkActiveEnum active = LarkActiveEnum.getByCode(activeCode);
|
|
|
|
|
if (active == null){
|
|
|
|
|
if (active == null) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
List<LarkActiveImportVo> midList = map.getOrDefault(active.getCode(), new ArrayList<>());
|
|
|
|
|
midList.add(larkActiveImportVo);
|
|
|
|
|
map.put(active.getCode(),midList);
|
|
|
|
|
map.put(active.getCode(), midList);
|
|
|
|
|
}
|
|
|
|
|
for (Map.Entry<String, List<LarkActiveImportVo>> entry : map.entrySet()) {
|
|
|
|
|
submitByActive(entry.getValue(),entry.getKey(),larkUserRequest);
|
|
|
|
|
submitByActive(entry.getValue(), entry.getKey(), larkUserRequest);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void submitByActive(List<LarkActiveImportVo> list,String activeCode,LarkUserRequest larkUserRequest){
|
|
|
|
|
private void submitByActive(List<LarkActiveImportVo> list, String activeCode, LarkUserRequest larkUserRequest) {
|
|
|
|
|
Set<String> openIdSet = new HashSet<>();
|
|
|
|
|
for (LarkActiveImportVo larkActiveImportVo : list) {
|
|
|
|
|
if (StringUtils.isBlank(larkActiveImportVo.getUserId()) || StringUtils.isBlank(activeCode)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
LarkActiveEnum active = LarkActiveEnum.getByCode(activeCode);
|
|
|
|
|
if (active == null){
|
|
|
|
|
if (active == null) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|