diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java index fc98dec..0b277c0 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/LarkActiveController.java @@ -20,16 +20,16 @@ import com.ruoyi.flyingbook.domain.lark.LarkUserRequest; import com.ruoyi.flyingbook.domain.larkactive.*; import com.ruoyi.flyingbook.service.*; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; @Slf4j @RestController @@ -173,7 +173,7 @@ public class LarkActiveController extends BaseController { * 查询后台需要的数据 */ @ResponseBody - @GetMapping("/export") + @GetMapping("/exportActiveFile") public void export(HttpServletResponse response) { try { LarkActiveCountVo larkActiveCountVo = larkUserActiveRelatoinService.queryCount(); @@ -190,7 +190,7 @@ public class LarkActiveController extends BaseController { } } - @PostMapping("/import") + @PostMapping("/importActiveFile") public void importActive(@RequestPart("file") MultipartFile file) { try { List list = EasyExcel.read(file.getInputStream()) diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveImportVo.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveImportVo.java index 841bbf6..01973cf 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveImportVo.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/larkactive/LarkActiveImportVo.java @@ -17,6 +17,11 @@ public class LarkActiveImportVo { @ExcelProperty("填写者ID") private String userId; + /** + * @see com.ruoyi.common.enums.LarkActiveEnum + */ + @ExcelProperty("活动编码") + private String activeCode; } diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkActiveMapper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkActiveMapper.java index 4cfaadb..88dc1ce 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkActiveMapper.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/mapper/LarkActiveMapper.java @@ -22,6 +22,7 @@ public interface LarkActiveMapper { */ public LarkActive selectLarkActiveById(Long id); public List selectLarkActiveByName(@Param("activeName") String activeName, @Param("flag") Long flag); + public List selectLarkActiveByDesc(@Param("activeDesc") String activeDesc, @Param("flag") Long flag); /** * 查询【请填写功能名称】列表 diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java index 070aa26..be45ded 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/service/impl/LarkUserActiveRelatoinServiceImpl.java @@ -28,6 +28,7 @@ import com.ruoyi.flyingbook.service.ILarkUserActiveRelatoinService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.multimap.ArrayListValuedHashMap; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -239,16 +240,42 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi @Override public void submit(List list, String appId, String appSecret) { LarkUserRequest larkUserRequest = new LarkUserRequest(appId, appSecret); + + Map> map = new HashMap<>(); + for (LarkActiveImportVo larkActiveImportVo : list) { + String activeCode = larkActiveImportVo.getActiveCode(); + if (StringUtils.isBlank(larkActiveImportVo.getUserId()) || StringUtils.isBlank(activeCode)) { + continue; + } + LarkActiveEnum active = LarkActiveEnum.getByCode(activeCode); + if (active == null){ + continue; + } + List midList = map.getOrDefault(active.getCode(), new ArrayList<>()); + midList.add(larkActiveImportVo); + map.put(active.getCode(),midList); + } + for (Map.Entry> entry : map.entrySet()) { + submitByActive(entry.getValue(),entry.getKey(),larkUserRequest); + } + } + + private void submitByActive(List list,String activeCode,LarkUserRequest larkUserRequest){ Set openIdSet = new HashSet<>(); for (LarkActiveImportVo larkActiveImportVo : list) { - if (StringUtils.isNotBlank(larkActiveImportVo.getUserId())) { - try { - larkUserRequest.setOpenId(larkActiveImportVo.getUserId()); - GetUserRespBody userInfoDetail = larkUserHelper.getUserInfo(larkUserRequest); - openIdSet.add(userInfoDetail.getUser().getOpenId()); - } catch (Exception e) { - log.info("import file error userId:{}", larkActiveImportVo.getUserId(), e); - } + if (StringUtils.isBlank(larkActiveImportVo.getUserId()) || StringUtils.isBlank(activeCode)) { + continue; + } + LarkActiveEnum active = LarkActiveEnum.getByCode(activeCode); + if (active == null){ + continue; + } + try { + larkUserRequest.setOpenId(larkActiveImportVo.getUserId()); + GetUserRespBody userInfoDetail = larkUserHelper.getUserInfo(larkUserRequest); + openIdSet.add(userInfoDetail.getUser().getOpenId()); + } catch (Exception e) { + log.info("import file error userId:{}", larkActiveImportVo.getUserId(), e); } } if (CollectionUtils.isEmpty(openIdSet)) { @@ -264,14 +291,19 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi if (CollectionUtils.isEmpty(openIdList)) { return; } - //todo yxy 任务id - Long activeId = null; - Map relationMap = larkUserActiveRelatoinMapper.queryByOpenIdList(openIdList,activeId).stream() - .collect(Collectors.toMap(LarkUserActiveRelatoin::getUserName, Function.identity(),(k1,k2)->k1)); + List larkActives = larkActiveMapper.selectLarkActiveByDesc(activeCode, FlagStatus.OK.getCode()); + if (CollectionUtils.isEmpty(larkActives)) { + return; + } + Long activeId = larkActives.get(0).getId(); + Map relationMap = larkUserActiveRelatoinMapper.queryByOpenIdList(openIdList, activeId).stream() + .collect(Collectors.toMap(LarkUserActiveRelatoin::getUserName, Function.identity(), (k1, k2) -> k1)); List waitUpdateList = new ArrayList<>(); + Set inviteOpenIdSet = new HashSet<>(); for (LarkLoginLog larkLoginLog : larkLoginLogs) { LarkUserActiveRelatoin activeRelatoin = relationMap.get(larkLoginLog.getOpenId()); - if (activeRelatoin == null){ + inviteOpenIdSet.add(larkLoginLog.getOpenId()); + if (activeRelatoin == null) { LarkUserActiveRelatoin relatoin = new LarkUserActiveRelatoin(); relatoin.setCreateTime(new Date()); relatoin.setCreateBy("system"); @@ -281,14 +313,17 @@ public class LarkUserActiveRelatoinServiceImpl implements ILarkUserActiveRelatoi relatoin.setUserName(larkLoginLog.getOpenId()); relatoin.setCompanyName(larkLoginLog.getCompanyName()); larkUserActiveRelatoinMapper.insertLarkUserActiveRelatoin(relatoin); - }else { - if (!LarkActiveStageEnum.ADJUST.getCode().equals(activeRelatoin.getActiveStage())){ + } else { + if (!LarkActiveStageEnum.ADJUST.getCode().equals(activeRelatoin.getActiveStage())) { waitUpdateList.add(activeRelatoin.getActiveId()); } } } - if (CollectionUtils.isNotEmpty(waitUpdateList)){ - larkUserActiveRelatoinMapper.updateByIdList(waitUpdateList,LarkActiveStageEnum.ADJUST.getCode()); + if (CollectionUtils.isNotEmpty(inviteOpenIdSet)) { + larkUserActiveInviteRelatoinService.inviteSuccess(new ArrayList<>(inviteOpenIdSet)); + } + if (CollectionUtils.isNotEmpty(waitUpdateList)) { + larkUserActiveRelatoinMapper.updateByIdList(waitUpdateList, LarkActiveStageEnum.ADJUST.getCode()); } } diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml index ca76a95..21aedab 100644 --- a/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml +++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkActiveMapper.xml @@ -144,6 +144,11 @@ where active_name = #{activeName} and flag = #{flag} + + insert into lark_active diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveInviteRelatoinMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveInviteRelatoinMapper.xml index a7b424f..2061dee 100644 --- a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveInviteRelatoinMapper.xml +++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveInviteRelatoinMapper.xml @@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml index d632258..46b481a 100644 --- a/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml +++ b/ruoyi-flyingbook/src/main/resources/mapper/LarkUserActiveRelatoinMapper.xml @@ -62,7 +62,7 @@