From c568e38b8e66dc092b0c71a2a2f0e9d7c0c9d247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BF=97=E6=81=92?= <842328916@qq.com> Date: Sat, 13 Sep 2025 15:39:22 +0800 Subject: [PATCH] =?UTF-8?q?pom-=E6=B8=85=E7=90=86flow-team=E6=A8=A1?= =?UTF-8?q?=E5=9D=97-=E6=B8=85=E7=90=86=E4=B8=9A=E5=8A=A1=E5=85=A5?= =?UTF-8?q?=E4=BE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FlowTeamEditInviteUserParams.java | 27 - .../flowteam/FlowTeamStatisticParams.java | 65 -- .../params/flowteam/TeamMemberEditParams.java | 11 - .../flowteam/TeamMemberQueryParams.java | 19 - .../admin/vo/flowteam/FlowTeamConfVO.java | 20 - .../vo/flowteam/FlowTeamGroupAdminVO.java | 31 - .../FlowTeamGroupStatisticSummaryVO.java | 13 - .../vo/flowteam/FlowTeamInfoAdminVO.java | 30 - .../FlowTeamInviteCodeRecordAdminVO.java | 31 - .../vo/flowteam/FlowTeamInviteUserVO.java | 36 - .../admin/vo/flowteam/FlowTeamMemberVO.java | 18 - .../flowteam/FlowTeamStatisticDetailVO.java | 19 - .../flowteam/FlowTeamStatisticSummaryVO.java | 19 - .../FlowTeamStatisticUserDetailVO.java | 73 -- .../vo/flowteam/TeamStatisticBaseVO.java | 39 - .../vo/flowteam/UserWithFlowTeamInfoVO.java | 29 - .../flowteam/FlowTeamGroupAdminMapper.java | 54 - .../FlowTeamMemberInviteUserAdminMapper.java | 26 - .../flowteam/FlowTeamStatisticMapper.java | 43 - .../flowteam/FlowTeamGroupAdminService.java | 466 --------- .../FlowTeamMemberInviteUserAdminService.java | 47 - .../service/flowteam/FlowTeamService.java | 952 ------------------ .../StatsUserDetailAdminService.java | 44 - .../mapper/FlowTeamGroupAdminMapper.xml | 51 - .../FlowTeamMemberInviteUserAdminMapper.xml | 11 - .../mapper/FlowTeamStatisticMapper.xml | 720 ------------- .../com/accompany/admin/AdminApplication.java | 6 +- .../flowteam/FlowTeamAdminController.java | 331 ------ .../FlowTeamGroupAdminController.java | 114 --- .../FlowTeamSettlementInfoController.java | 140 --- .../src/main/resources/logback-spring.xml | 2 - .../sharding/config/MybatisPlusConfig.java | 3 +- .../listener/invite/InviteCodeListener.java | 8 - .../service/flow/FlowTeamBaseService.java | 37 - .../flow/FlowTeamSettlementBizService.java | 271 ----- .../business/BusinessApplication.java | 6 +- .../src/main/resources/logback-spring.xml | 2 - .../accompany/oauth2/OAuth2Application.java | 2 +- .../src/main/resources/logback-spring.xml | 1 - .../SaveLastMonthSettlementDataTask.java | 51 - .../accompany/scheduler/JobApplication.java | 4 +- 41 files changed, 10 insertions(+), 3862 deletions(-) delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamEditInviteUserParams.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamStatisticParams.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberEditParams.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberQueryParams.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamConfVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupAdminVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupStatisticSummaryVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInfoAdminVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteCodeRecordAdminVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamMemberVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticDetailVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticSummaryVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/TeamStatisticBaseVO.java delete mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/UserWithFlowTeamInfoVO.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamGroupAdminMapper.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamMemberInviteUserAdminMapper.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamStatisticMapper.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamMemberInviteUserAdminService.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java delete mode 100644 accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml delete mode 100644 accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamMemberInviteUserAdminMapper.xml delete mode 100644 accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml delete mode 100644 accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java delete mode 100644 accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java delete mode 100644 accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamSettlementInfoController.java delete mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamBaseService.java delete mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamSettlementBizService.java delete mode 100644 accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/flowteam/SaveLastMonthSettlementDataTask.java diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamEditInviteUserParams.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamEditInviteUserParams.java deleted file mode 100644 index c16238067..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamEditInviteUserParams.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 文 件 名: FlowTeamEditInviteUserParams - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/4/25 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.params.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamMemberInviteUser; -import lombok.Data; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/4/25] - */ -@Data -public class FlowTeamEditInviteUserParams extends FlowTeamMemberInviteUser { - private Byte optType; - private Long optUid; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamStatisticParams.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamStatisticParams.java deleted file mode 100644 index cbc7e3d8b..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/FlowTeamStatisticParams.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.accompany.admin.params.flowteam; - -import com.accompany.common.utils.AppUtils; -import com.accompany.common.utils.StringUtils; -import lombok.Data; - -import java.util.List; - -@Data -public class FlowTeamStatisticParams { - - /** - * 组别 - */ - private String teamId; - - /** - * 开始时间 - */ - private String startDate; - /** - * 结束时间 - */ - private String endDate; - - /** - * 成员id - */ - private Long memberId; - - /** - * 应用筛选 - */ - private String app; - - /** - * 充值开始时间 - */ - private String chargeStartTime; - /** - * 充值结束时间 - */ - private String chargeEndTime; - - /** - * 由“app”参数转化成的AppEnum中的组合(如果app=PlanetStar,则这里对应PlanetStar和PlanetStar66) - */ - private List groupApps; - - public void setApp(String app) { - this.app = app; - this.groupApps = AppUtils.getGroupApps(app); - } - - public List getGroupApps() { - if (groupApps == null && StringUtils.isNotBlank(app)) { - return AppUtils.getGroupApps(app); - } - return groupApps; - } - - private List teamIds; - - private Long groupId; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberEditParams.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberEditParams.java deleted file mode 100644 index cb9ab5256..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberEditParams.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.accompany.admin.params.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamMember; -import lombok.Data; - -@Data -public class TeamMemberEditParams extends FlowTeamMember { - - private String inviteCodes; - private Long groupId; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberQueryParams.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberQueryParams.java deleted file mode 100644 index 9025ad91c..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/params/flowteam/TeamMemberQueryParams.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.accompany.admin.params.flowteam; - -import lombok.Data; - -@Data -public class TeamMemberQueryParams { - - private String memberName; - - private String memberPhone; - - private String inviteCode; - - private Integer pageNumber; - private Integer pageSize; - private String teamId; - private Long groupId; - private String teamIds; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamConfVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamConfVO.java deleted file mode 100644 index d70397fea..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamConfVO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -import java.util.List; - -@Data -public class FlowTeamConfVO { - - @Data - public static class TeamItem { - private String teamId; - - private String teamName; - } - - List teams; - - Long canRefillInterval; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupAdminVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupAdminVO.java deleted file mode 100644 index 75d92ace8..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupAdminVO.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 文 件 名: FlowTeamGroupAdminVO - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/13 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.vo.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamGroup; -import com.xuanyin.flowteam.model.FlowTeamMember; -import lombok.Data; - -import java.util.List; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/13] - */ -@Data -public class FlowTeamGroupAdminVO extends FlowTeamGroup { - private List groupLeaders; - private Long teamNum; - private Integer memberNum; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupStatisticSummaryVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupStatisticSummaryVO.java deleted file mode 100644 index b47ca6caf..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamGroupStatisticSummaryVO.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -@Data -public class FlowTeamGroupStatisticSummaryVO extends TeamStatisticBaseVO { - - private String groupId; - - private Integer memberCount; - - private String groupLeaders; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInfoAdminVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInfoAdminVO.java deleted file mode 100644 index 212985873..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInfoAdminVO.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 文 件 名: FlowTeamInfoAdminVO - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/14 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.vo.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamInfo; -import com.xuanyin.flowteam.model.FlowTeamMember; -import lombok.Data; - -import java.util.List; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/14] - */ -@Data -public class FlowTeamInfoAdminVO extends FlowTeamInfo { - private List teamLeaders; - private Long memberNum; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteCodeRecordAdminVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteCodeRecordAdminVO.java deleted file mode 100644 index 1b7995d8c..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteCodeRecordAdminVO.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 文 件 名: FlowTeamInviteCodeRecordAdminVO - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/19 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.vo.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamInviteCodeRecord; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/19] - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class FlowTeamInviteCodeRecordAdminVO extends FlowTeamInviteCodeRecord { - private String teamName; - private Boolean hasBind; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java deleted file mode 100644 index 00e255789..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 文 件 名: FlowTeamInviteUserVO - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/4/24 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -import java.util.Date; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/4/24] - */ -@Data -public class FlowTeamInviteUserVO { - private Long erbanNo; - private String nick; - private Long uid; - private String groupName; - private String teamName; - private String memberName; - private String inviteCode; - private Date inviteTime; - - private Integer source; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamMemberVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamMemberVO.java deleted file mode 100644 index ea93beb5d..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamMemberVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamMember; -import lombok.Data; - -@Data -public class FlowTeamMemberVO extends FlowTeamMember { - - /** - * 邀请码 - */ - private String inviteCodes; - - /** - * 团队id - */ - private Long groupId; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticDetailVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticDetailVO.java deleted file mode 100644 index 361f14bac..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticDetailVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -@Data -public class FlowTeamStatisticDetailVO extends TeamStatisticBaseVO { - - private Long memberId; - - private String memberName; - - private String teamId; - - private Integer teamRole; - - private Integer memberStatus; - - private String inviteCodes; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticSummaryVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticSummaryVO.java deleted file mode 100644 index 00b69750f..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticSummaryVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -@Data -public class FlowTeamStatisticSummaryVO extends TeamStatisticBaseVO { - - private String teamId; - - private Integer memberCount; - - private String teamLeaders; - - private Integer twoRemainCount; - - private Integer sevenRemainCount; - - private Integer thirtyRemainCount; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java deleted file mode 100644 index ea6cf4e3f..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.util.Date; - -@Data -public class FlowTeamStatisticUserDetailVO { - - private String teamId; - - private String teamMemberName; - - private String inviteCode; - - private String userErbanNo; - - private String userNickName; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date signUpTime; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date firstChargeTime; - - private Integer chargeCount; - - /** - * 充值金额 单位:元 - */ - private Double chargeMoney; - - /** - * 累计送礼额 单位:元 - */ - private Double totalSendGiftMoney; - - /** - * 累计非背包送礼额 单位:元 - */ - private Double totalNoBackbagSendGiftMoney; - - /** - * 累计背包送礼额 单位:元 - */ - private Double totalBackbagSendGiftMoney; - - /** - * 注册时的ip - */ - private String registerIp; - - /** - * 用户手机号 - */ - private String phone; - - /** - * 转赠次数 - */ - private Integer giveCount = 0; - - /** - * 转赠金额 - */ - private Double giveMoney = 0D; - - /** - * 邀请码填写类型 - */ - private String sourceName; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/TeamStatisticBaseVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/TeamStatisticBaseVO.java deleted file mode 100644 index 4f1fc109d..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/TeamStatisticBaseVO.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import lombok.Data; - -@Data -public class TeamStatisticBaseVO { - - private Integer newUserCount; - - private Integer newChargeUserCount; - - /** - * 付费转化率 - */ - private String chargeRate; - - private Integer chargeCount; - - /** - * 充值金额 单位:元 - */ - private Double chargeMoney; - /** - * 送礼金额 单位:元 - */ - private Double sendGiftMony; - - private Double arpu; - - /** - * 转赠次数 - */ - private Integer giveCount; - - /** - * 转赠金额 - */ - private Double giveMoney; -} diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/UserWithFlowTeamInfoVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/UserWithFlowTeamInfoVO.java deleted file mode 100644 index b644847d9..000000000 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/UserWithFlowTeamInfoVO.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.accompany.admin.vo.flowteam; - -import com.accompany.core.model.Users; -import lombok.Data; - -@Data -public class UserWithFlowTeamInfoVO extends Users { - - /** - * 引入组 - */ - private String teamId; - - /** - * 引入人Id - */ - private Long memberId; - /** - * 引入人 - */ - private String teamMemberName; - - /** - * 是否在可补填邀请码范围内 - */ - private Boolean isInCanRefillInviteCodeTime; - - private String groupName; -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamGroupAdminMapper.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamGroupAdminMapper.java deleted file mode 100644 index 3347a7c4a..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamGroupAdminMapper.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 文 件 名: FlowTeamGroupMapper - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/13 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.mapper.flowteam; - -import com.accompany.admin.vo.flowteam.FlowTeamInviteUserVO; -import com.xuanyin.flowteam.model.FlowTeamMember; - -import java.util.List; - -/** - *
接口描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/13] - */ -public interface FlowTeamGroupAdminMapper { - - /** - * 获取团队团长信息 - * @param groupId - * @return - */ - List listGroupLeader(Long groupId); - - /** - * 获取团队有效成员人数 - * @param groupId - * @return - */ - Integer countGroupValidMember(Long groupId); - - /** - * 获取手机号加入的有效团队数量 - * @param phone - * @return - */ - Long getJoinGroupIdByPhone(String phone); - - /** - * 获取邀请用户的引流团队信息 - * @param erbanNo - * @return - */ - List listFlowTeamInfoWithUser(String erbanNo); -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamMemberInviteUserAdminMapper.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamMemberInviteUserAdminMapper.java deleted file mode 100644 index 7e3e66bdd..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamMemberInviteUserAdminMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 文 件 名: FlowTeamMemberInviteUserAdminMapper - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2021/12/16 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.mapper.flowteam; - -import com.xuanyin.flowteam.model.FlowTeamMemberInviteUser; - -import java.util.List; - -/** - *
接口描述: - *
功能详细描述: - * - * @author H1 - * @date [2021/12/16] - */ -public interface FlowTeamMemberInviteUserAdminMapper { - List listFlowTeamMemberInviteUserInfo(); -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamStatisticMapper.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamStatisticMapper.java deleted file mode 100644 index ba2436b70..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/flowteam/FlowTeamStatisticMapper.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.accompany.admin.mapper.flowteam; - -import com.accompany.admin.params.flowteam.FlowTeamStatisticParams; -import com.accompany.admin.vo.flowteam.FlowTeamStatisticDetailVO; -import com.accompany.admin.vo.flowteam.FlowTeamStatisticSummaryVO; -import com.accompany.admin.vo.flowteam.FlowTeamStatisticUserDetailVO; -import com.accompany.admin.vo.flowteam.UserWithFlowTeamInfoVO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface FlowTeamStatisticMapper { - - FlowTeamStatisticSummaryVO staisticUseInviteCodes(@Param("inviteCodes") List inviteCodes, @Param("params") FlowTeamStatisticParams params); - - List listTeamStatisticDetail(FlowTeamStatisticParams params); - - List listUserStatisticDetails(FlowTeamStatisticParams params); - - List listUsers(@Param("erbanNoList") List erbanNoList); - - /** - * 按照引流团队-成员-邀请用户固化关系进行查询数据 - * @param inviteCodes - * @param params - * @return - */ - FlowTeamStatisticSummaryVO staisticUseInviteCodesV2(@Param("inviteCodes") List inviteCodes, @Param("params") FlowTeamStatisticParams params); - - /** - * 按照引流团队-成员-邀请用户固化关系进行查询数据 - * @param params - * @return - */ - List listTeamStatisticDetailV2(FlowTeamStatisticParams params); - - /** - * 按照引流团队-成员-邀请用户固化关系进行查询数据 - * @param params - * @return - */ - List listUserStatisticDetailsV2(FlowTeamStatisticParams params); -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java deleted file mode 100644 index d501b5624..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java +++ /dev/null @@ -1,466 +0,0 @@ -/* - * 文 件 名: FlowTeamGroupAdminService - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/13 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.service.flowteam; - -import com.accompany.admin.base.Pagination; -import com.accompany.admin.mapper.flowteam.FlowTeamGroupAdminMapper; -import com.accompany.admin.params.flowteam.FlowTeamEditInviteUserParams; -import com.accompany.admin.vo.flowteam.FlowTeamGroupAdminVO; -import com.accompany.admin.vo.flowteam.FlowTeamInfoAdminVO; -import com.accompany.admin.vo.flowteam.FlowTeamInviteUserVO; -import com.accompany.common.constant.Constant; -import com.accompany.common.redis.RedisKey; -import com.accompany.common.status.BusiStatus; -import com.accompany.common.utils.StringUtils; -import com.accompany.core.exception.AdminServiceException; -import com.accompany.core.service.SysConfService; -import com.accompany.core.service.common.JedisService; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.xuanyin.flowteam.constant.FlowTeamConstant; -import com.xuanyin.flowteam.model.*; -import com.xuanyin.flowteam.service.*; -import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.*; -import java.util.stream.Collectors; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/13] - */ -@Service -public class FlowTeamGroupAdminService { - - @Autowired - private FlowTeamGroupService flowTeamGroupService; - @Autowired - private FlowTeamGroupAdminMapper flowTeamGroupAdminMapper; - @Autowired - private FlowTeamInfoService flowTeamInfoService; - @Autowired - private FlowTeamMemberService flowTeamMemberService; - @Autowired - private JedisService jedisService; - @Autowired - private FlowTeamMemberInviteUserService flowTeamMemberInviteUserService; - @Autowired - private FlowTeamInviteUserChangeRecordService flowTeamInviteUserChangeRecordService; - @Autowired - private FlowTeamMemberInviteCodeService flowTeamMemberInviteCodeService; - @Autowired - private SysConfService sysConfService; - - - private final static Integer MAX_TEAM_COUNT = 20; - - - public Pagination listGroupByPage(Integer page, Integer pageSize, String groupName) { - QueryWrapper query = new QueryWrapper<>(); - if (StringUtils.isNotBlank(groupName)) { - query.lambda().like(FlowTeamGroup::getGroupName, groupName); - } - PageHelper.startPage(page, pageSize); - List list = flowTeamGroupService.list(query); - PageInfo pageInfo = new PageInfo<>(list); - List groupList = new ArrayList<>(); - list.forEach( - group -> { - FlowTeamGroupAdminVO vo = handleGroupVO(group); - groupList.add(vo); - } - ); - PageInfo resPage = new PageInfo<>(); - BeanUtils.copyProperties(pageInfo, resPage); - resPage.setList(groupList); - return new Pagination(resPage); - } - - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void saveOrUpdateGroup(Long groupId, String groupName) { - if (null == groupId) { - FlowTeamGroup group = FlowTeamGroup.builder().groupName(groupName).status(FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID) - .createTime(new Date()).updateTime(new Date()) - .build(); - flowTeamGroupService.save(group); - } else { - FlowTeamGroup group = flowTeamGroupService.getById(groupId); - if (null == group) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "团队不存在"); - } - group.setGroupName(groupName); - flowTeamGroupService.updateById(group); - } - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void changeGroupStatus(Long groupId, Integer status) { - if (groupId == null || null == status) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - FlowTeamGroup group = flowTeamGroupService.getById(groupId); - if (null == group) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "团队不存在"); - } - group.setStatus(status); - flowTeamGroupService.updateById(group); - } - - - public Pagination listGroupTeamByPage(Integer page, Integer pageSize, Long groupId) { - if (groupId == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - PageHelper.startPage(page, pageSize); - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamInfo::getGroupId, groupId).ne(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); - List teams = flowTeamInfoService.list(query); - List teamList = new ArrayList<>(); - teams.forEach( - team -> { - FlowTeamInfoAdminVO vo = handleTeamVO(team); - teamList.add(vo); - } - ); - PageInfo pageInfo = new PageInfo<>(teamList); - return new Pagination(pageInfo); - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void saveOrUpdateTeam(Long groupId, String teamId, String teamName) { - if (StringUtils.isBlank(teamName)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - if (StringUtils.isBlank(teamId)) { - // 校验 - checkAddTeam(groupId, teamName); - FlowTeamInfo flowTeamInfo = FlowTeamInfo.builder().teamId(generateTeamId()) - .teamName(teamName).groupId(groupId).status(FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID) - .createTime(new Date()).updateTime(new Date()).build(); - flowTeamInfoService.save(flowTeamInfo); - } else { - // 编辑 - checkTeamName(teamName, teamId); - FlowTeamInfo team = flowTeamInfoService.getById(teamId); - if (null == team) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组不存在"); - } - team.setTeamName(teamName); - flowTeamInfoService.updateById(team); - } - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void delTeam(String teamId) { - if (StringUtils.isBlank(teamId)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - FlowTeamInfo team = flowTeamInfoService.getById(teamId); - if (null == team) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组不存在"); - } - // 判断当前组内是否含有团长,有团长的话不可以删除 - if (teamContainsGroupLeader(teamId)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "当前小组内有团长身份成员,无法删除小组。请将团长转移至其他小组后再删除该小组。"); - } - // 删除小组信息 - team.setStatus(FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); - flowTeamInfoService.updateById(team); - // 小组成员置为已删除 - List memberList = listTeamNotDelMember(teamId); - if (CollectionUtils.isNotEmpty(memberList)) { - memberList.forEach( - member -> { - member.setMemberStatus(FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); - } - ); - flowTeamMemberService.updateBatchById(memberList); - } - } - - - public FlowTeamGroup getMemberGroup(String phone) { - Long groupId = flowTeamGroupAdminMapper.getJoinGroupIdByPhone(phone); - if (null != groupId) { - FlowTeamGroup group = flowTeamGroupService.getById(groupId); - return group; - } - return null; - } - - public FlowTeamMember getUserMaxRoleMember(String phone) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamMember::getMemberPhone, phone) - .in(FlowTeamMember::getTeamRole, Arrays.asList(FlowTeamConstant.TeamRole.LEADER, FlowTeamConstant.TeamRole.GROUP_LEADER)) - .eq(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - List teamList = flowTeamMemberService.list(queryWrapper); - if (org.springframework.util.CollectionUtils.isEmpty(teamList)) { - return null; - } - - List teamIds = new ArrayList<>(); - FlowTeamMember maxRole = teamList.stream().max(Comparator.comparing(FlowTeamMember::getTeamRole)).get(); - return maxRole; - } - - private List listTeamNotDelMember(String teamId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamMember::getTeamId, teamId) - .ne(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); - return flowTeamMemberService.list(queryWrapper); - } - - private Boolean teamContainsGroupLeader(String teamId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamMember::getTeamId, teamId) - .eq(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID) - .eq(FlowTeamMember::getTeamRole, FlowTeamConstant.TeamRole.GROUP_LEADER); - return flowTeamMemberService.count(queryWrapper) > 0; - } - - private String generateTeamId() { - Date now = new Date(); - String dataStr = com.accompany.common.utils.DateTimeUtil.convertDate(now, com.accompany.common.utils.DateTimeUtil.DEFAULT_DATE_PATTERN_); - Long seq = jedisService.incr(RedisKey.flow_team_id_seq.getKey(dataStr)); - long expireTime = com.accompany.common.utils.DateTimeUtil.getNextDay2(now, 1).getTime() - 1; - jedisService.expireAt(RedisKey.flow_team_id_seq.getKey(dataStr), expireTime); - - return dataStr + String.format("%04d", seq); - } - - - private void checkAddTeam(Long groupId, String teamName) { - long teamNum = countGroupValidTeam(groupId); - String maxCount = sysConfService.getDefaultSysConfValueById(Constant.SysConfId.FLOW_TEAM_MAX_TEAM_COUNT, MAX_TEAM_COUNT.toString()); - if (teamNum >= Long.parseLong(maxCount)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "超过团队小组上限"); - } - checkTeamName(teamName, null); - } - - private void checkTeamName(String teamName, String teamId) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamInfo::getTeamName, teamName).eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - FlowTeamInfo flowTeamInfo = flowTeamInfoService.getOne(queryWrapper); - if (null != teamId && flowTeamInfo != null && !flowTeamInfo.getTeamId().equals(teamId)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组名称已存在"); - } - if (null == teamId && null != flowTeamInfo) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组名称已存在"); - } - } - - - private FlowTeamInfoAdminVO handleTeamVO(FlowTeamInfo info) { - FlowTeamInfoAdminVO vo = new FlowTeamInfoAdminVO(); - BeanUtils.copyProperties(info, vo); - // 组长信息 - List leaders = listTeamLeader(info.getTeamId()); - vo.setTeamLeaders(leaders); - // 小组成员数量 - vo.setMemberNum(flowTeamMemberService.countValidMember(info.getTeamId())); - return vo; - } - - private List listTeamLeader(String teamId) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamMember::getTeamId, teamId) - .eq(FlowTeamMember::getTeamRole, FlowTeamConstant.TeamRole.LEADER) - .ne(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); - return flowTeamMemberService.list(query); - } - - private FlowTeamGroupAdminVO handleGroupVO(FlowTeamGroup group) { - FlowTeamGroupAdminVO vo = new FlowTeamGroupAdminVO(); - BeanUtils.copyProperties(group, vo); - // 团长信息 - List groupLeader = flowTeamGroupAdminMapper.listGroupLeader(group.getGroupId()); - vo.setGroupLeaders(groupLeader); - // 小组数量 - vo.setTeamNum(countGroupValidTeam(group.getGroupId())); - // 有效成员数量 - vo.setMemberNum(flowTeamGroupAdminMapper.countGroupValidMember(group.getGroupId())); - return vo; - } - - private long countGroupValidTeam(Long groupId) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamInfo::getGroupId, groupId) - .eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - return flowTeamInfoService.count(query); - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void initGroupAndTeam() throws IOException { - - File logsFile = new File("C:\\Users\\H1\\Desktop\\group.txt"); - - BufferedReader reader = new BufferedReader(new FileReader(logsFile)); - - List groups = new ArrayList<>(); - Map> teamMap = new HashMap<>(); - String tempString = null; - int line = 1; - // 一次读入一行,直到读入null为文件结束 - while ((tempString = reader.readLine()) != null) { - // 显示行号 - System.out.println("line " + line + ": " + tempString); - List list1 = Arrays.asList(tempString.split(",")); - String group = list1.get(0); - String teamId = list1.get(1); - String teamName = list1.get(2); - group = group.trim(); - teamId = teamId.trim(); - teamName = teamName.trim(); - FlowTeamGroup flowTeamGroup = new FlowTeamGroup(); - flowTeamGroup.setGroupName(group); - flowTeamGroup.setStatus(FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - flowTeamGroup.setCreateTime(new Date()); - flowTeamGroup.setUpdateTime(new Date()); - groups.add(flowTeamGroup); - FlowTeamInfo team = new FlowTeamInfo(); - team.setTeamId(teamId); - team.setTeamName(teamName); - List tepTeams = teamMap.get(group); - if (CollectionUtils.isEmpty(tepTeams)) { - tepTeams = new ArrayList<>(); - teamMap.put(group, tepTeams); - } - tepTeams.add(team); - line++; - } - groups = groups.stream().distinct().collect(Collectors.toList()); - reader.close(); - System.out.println(JSON.toJSONString(groups)); - System.out.println(JSON.toJSONString(teamMap)); - // 写入group - flowTeamGroupService.saveBatch(groups); - // 写入team - for (String groupName : teamMap.keySet()) { - FlowTeamGroup group = getByGroupName(groupName); - if (null != group) { - List teamList = teamMap.get(groupName); - teamList.forEach( - team -> { - team.setGroupId(group.getGroupId()); - team.setStatus(FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - team.setCreateTime(new Date()); - team.setUpdateTime(new Date()); - } - ); - flowTeamInfoService.saveBatch(teamList); - } - } - System.out.println(groups.size()); - } - - private FlowTeamGroup getByGroupName(String groupName) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamGroup::getGroupName, groupName) - .eq(FlowTeamGroup::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - return flowTeamGroupService.getOne(query); - } - - /** - * 获取邀请用户的引流团队信息 - * - * @param page - * @param pageSize - * @param erbanNo - * @return - */ - public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { - PageHelper.startPage(page, pageSize); - List flowTeamInviteUserVOS = flowTeamGroupAdminMapper.listFlowTeamInfoWithUser(erbanNo); - PageInfo pageInfo = new PageInfo<>(flowTeamInviteUserVOS); - return new Pagination<>(pageInfo); - } - - /** - * @param params - */ - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void updateFlowTeamInviteInfo(FlowTeamEditInviteUserParams params) { - Long uid = params.getUid(); - Byte type = params.getOptType(); - FlowTeamMemberInviteUser inviteRecord = flowTeamMemberInviteUserService.getByUid(uid); - if (null == inviteRecord) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "该用户没有引流团队的邀请关系"); - } - if (FlowTeamConstant.FlowTeamInviteUserOptType.DEL.equals(type)) { - // 解绑 - flowTeamMemberInviteUserService.removeById(inviteRecord.getId()); - } else if (FlowTeamConstant.FlowTeamInviteUserOptType.UPDATE.equals(type)) { - // 换绑 - checkChangeParams(params); - FlowTeamMemberInviteUser recordForUpdate = new FlowTeamMemberInviteUser(); - recordForUpdate.setId(inviteRecord.getId()); - recordForUpdate.setGroupId(params.getGroupId()); - recordForUpdate.setTeamId(params.getTeamId()); - recordForUpdate.setMemberId(params.getMemberId()); - recordForUpdate.setInviteCode(params.getInviteCode()); - flowTeamMemberInviteUserService.updateById(recordForUpdate); - } - // 增加操作记录 - FlowTeamInviteUserChangeRecord record = FlowTeamInviteUserChangeRecord.builder() - .inviteRecordId(inviteRecord.getId()).inviteCode(inviteRecord.getInviteCode()) - .groupId(inviteRecord.getGroupId()).teamId(inviteRecord.getTeamId()).memberId(inviteRecord.getMemberId()) - .uid(uid).type(type).operator(params.getOptUid()).createTime(new Date()).updateTime(new Date()) - .build(); - flowTeamInviteUserChangeRecordService.save(record); - } - - private void checkChangeParams(FlowTeamEditInviteUserParams params) { - Long groupId = params.getGroupId(); - String teamId = params.getTeamId(); - Long memberId = params.getMemberId(); - String inviteCode = params.getInviteCode(); - if (null == groupId || null == memberId - || StringUtils.isBlank(teamId) || StringUtils.isBlank(inviteCode)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - FlowTeamInfo team = flowTeamInfoService.getByTeamId(teamId); - if (team == null) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组不存在"); - } - if (!team.getGroupId().equals(groupId)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组与团队不对应"); - } - FlowTeamMember member = flowTeamMemberService.getById(memberId); - if (member == null || FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED.equals(member.getMemberStatus())) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "成员不存在"); - } - if (!member.getTeamId().equals(teamId)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "小组与成员不对应"); - } - FlowTeamMemberInviteCode memberInviteCode = flowTeamMemberInviteCodeService.getByInviteCode(inviteCode); - if (memberInviteCode == null) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "邀请码不存在"); - } - if (!memberInviteCode.getMemberId().equals(memberId)) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "邀请码与成员不对应"); - } - } -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamMemberInviteUserAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamMemberInviteUserAdminService.java deleted file mode 100644 index 01573867b..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamMemberInviteUserAdminService.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 文 件 名: FlowTeamMemberInviteUserAdminService - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2021/12/16 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.service.flowteam; - -import com.accompany.admin.mapper.flowteam.FlowTeamMemberInviteUserAdminMapper; -import com.xuanyin.flowteam.model.FlowTeamMemberInviteUser; -import com.xuanyin.flowteam.service.FlowTeamMemberInviteUserService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import java.util.List; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2021/12/16] - */ -@Service -@Slf4j -public class FlowTeamMemberInviteUserAdminService { - @Autowired - private FlowTeamMemberInviteUserService flowTeamMemberInviteUserService; - @Autowired - private FlowTeamMemberInviteUserAdminMapper flowTeamMemberInviteUserAdminMapper; - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void initFlowTeamMemberInviteUserData() { - List info = flowTeamMemberInviteUserAdminMapper.listFlowTeamMemberInviteUserInfo(); - if (CollectionUtils.isEmpty(info)) { - return; - } - flowTeamMemberInviteUserService.saveBatch(info); - } -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java deleted file mode 100644 index 80040cb64..000000000 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java +++ /dev/null @@ -1,952 +0,0 @@ -package com.accompany.admin.service.flowteam; - -import cn.hutool.core.bean.BeanUtil; -import com.accompany.admin.base.Pagination; -import com.accompany.admin.mapper.RoomInviteCodeAdminMapper; -import com.accompany.admin.mapper.UserMapperExpand; -import com.accompany.admin.mapper.flowteam.FlowTeamGroupAdminMapper; -import com.accompany.admin.mapper.flowteam.FlowTeamStatisticMapper; -import com.accompany.admin.params.flowteam.FlowTeamStatisticParams; -import com.accompany.admin.params.flowteam.TeamMemberEditParams; -import com.accompany.admin.params.flowteam.TeamMemberQueryParams; -import com.accompany.admin.util.InviteCodeUtil; -import com.accompany.admin.vo.flowteam.*; -import com.accompany.business.event.RefillUserInviteCodeEvent; -import com.accompany.business.model.RoomInviteCode; -import com.accompany.business.model.UserInviteCode; -import com.accompany.business.service.room.RoomInviteCodeService; -import com.accompany.business.service.room.RoomService; -import com.accompany.business.service.user.InviteCodeService; -import com.accompany.business.service.invite.UserInviteCodeService; -import com.accompany.business.service.user.UsersService; -import com.accompany.business.vo.room.RoomInviteCodeVo; -import com.accompany.common.config.SystemConfig; -import com.accompany.common.constant.Constant; -import com.accompany.common.status.BusiStatus; -import com.accompany.common.utils.AppUtils; -import com.accompany.common.utils.StringUtils; -import com.accompany.core.exception.AdminServiceException; -import com.accompany.core.exception.ServiceException; -import com.accompany.core.model.Room; -import com.accompany.core.model.Users; -import com.accompany.core.service.SysConfService; -import com.accompany.core.service.user.UsersBaseService; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.xuanyin.flowteam.constant.FlowTeamConstant; -import com.xuanyin.flowteam.mapper.FlowTeamMemberInviteCodeMapper; -import com.xuanyin.flowteam.mapper.FlowTeamMemberMapper; -import com.xuanyin.flowteam.model.*; -import com.xuanyin.flowteam.service.*; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - -import javax.annotation.Nonnull; -import java.math.BigDecimal; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; - -@Service -public class FlowTeamService { - - @Autowired - private UserMapperExpand userMapperExpand; - @Autowired - private FlowTeamMemberMapper flowTeamMemberMapper; - @Autowired - private FlowTeamMemberInviteCodeMapper flowTeamMemberInviteCodeMapper; - @Autowired - private UsersBaseService usersBaseService; - @Autowired - private FlowTeamStatisticMapper flowTeamStatisticMapper; - @Autowired - private SysConfService sysConfService; - @Autowired - private UsersService usersService; - @Autowired - private InviteCodeService inviteCodeService; - @Autowired - private ApplicationContext applicationContext; - @Autowired - private FlowTeamInviteCodeRecordService flowTeamInviteCodeRecordService; - @Autowired - private RoomInviteCodeService roomInviteCodeService; - @Autowired - private RoomInviteCodeAdminMapper roomInviteCodeAdminMapper; - @Autowired - private RoomService roomService; - @Autowired - private UserInviteCodeService userInviteCodeService; - @Autowired - private FlowTeamMemberInviteUserBizService flowTeamMemberInviteUserBizService; - @Autowired - private FlowTeamInfoService flowTeamInfoService; - @Autowired - private FlowTeamGroupAdminMapper flowTeamGroupAdminMapper; - @Autowired - private FlowTeamMemberService flowTeamMemberService; - @Autowired - private FlowTeamGroupService flowTeamGroupService; - - private final static Integer MEMBER_STATUS_VALID = 1; - private final static Integer MEMBER_STATUS_INVALID = 0; - private final static Integer MEMBER_STATUS_DELETED = -1; - - private final static Integer TEAM_ROLE_MEMBER = 1; - private final static Integer TEAM_ROLE_LEADER = 2; - - // 可以补填邀请码的时间 - private final static Long DEFAULT_CAN_REFILL_INTERVAL = 120L; - - // 生成邀请码的最大个数 - private final static Integer GEN_INVITECODE_MAX_COUNT = 5; - - // 小组成员上限 - private final static Integer TEAM_MAX_MEMBER_COUNT = 100; - - // 单人最多持有有效验证码个数 - private final static Integer TEAM_MAX_INVITECODE_COUNT_ONE_PERSON = 5; - - - @Transactional(rollbackFor = Exception.class) - public Long addTeamMember(TeamMemberEditParams params) { - checkAddMember(params); - List inviteCodes = new ArrayList<>(); - if (StringUtils.isNotBlank(params.getInviteCodes())) { - inviteCodes = getInviteCodeList(params.getInviteCodes().toUpperCase()); - } - return addTeamMemberBase(params, inviteCodes); - } - - private Long addTeamMemberBase(TeamMemberEditParams params, List inviteCodes) { - if (!CollectionUtils.isEmpty(inviteCodes)) { - validInviteCods(inviteCodes, params.getTeamId()); - } - FlowTeamMember memberForInsert = new FlowTeamMember(); - BeanUtil.copyProperties(params, memberForInsert); - memberForInsert.setCreateTime(new Date()); - flowTeamMemberMapper.insert(memberForInsert); - Long memberId = memberForInsert.getMemberId(); - if (!CollectionUtils.isEmpty(inviteCodes)) { - addMemberInviteCode(memberId, inviteCodes); - } - - return memberId; - } - - private void checkAddMember(TeamMemberEditParams params) { - if (params == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请求参数为空"); - } - if (StringUtils.isBlank(params.getTeamId())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请选择加入小组"); - } - if (StringUtils.isBlank(params.getMemberName())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请输入成员姓名"); - } - if (StringUtils.isBlank(params.getMemberPhone())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请输入成员电话"); - } - if (params.getTeamRole() == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请选择职务"); - } - // 团长可以不填邀请码 - if (!params.getTeamRole().equals(FlowTeamConstant.TeamRole.GROUP_LEADER) && StringUtils.isBlank(params.getInviteCodes())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请输入邀请码"); - } - // 校验当前手机号是否加入其它团队 - Long joinGroupId = flowTeamGroupAdminMapper.getJoinGroupIdByPhone(params.getMemberPhone()); - if (joinGroupId != null && joinGroupId != params.getGroupId()) { - throw new AdminServiceException(BusiStatus.BUSIERROR, "该手机号已被其他团队使用,无法添加成员"); - } - // 小组最大成员上限 - checkTeamMemberCount(params.getTeamId()); - } - - private void checkTeamMemberCount(String teamId) { - long memberCount = flowTeamMemberService.countValidMember(teamId); - if (memberCount > TEAM_MAX_MEMBER_COUNT) { - throw new AdminServiceException(BusiStatus.BUSIERROR, "超过小组成员人数上限"); - } - } - - private void addMemberInviteCode(Long memberId, List inviteCodes) { - inviteCodes.forEach(code -> { - FlowTeamMemberInviteCode item = new FlowTeamMemberInviteCode(); - item.setMemberId(memberId); - item.setInviteCode(code); - flowTeamMemberInviteCodeMapper.insert(item); - }); - - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void editTeamMember(TeamMemberEditParams params) { - editTeamMemberBase(params, false); - } - - private void editTeamMemberBase(TeamMemberEditParams params, Boolean editByLeader) { - if (params == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请求参数为空"); - } - if (params.getMemberId() == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "传入的memberId不能为空"); - } - // 校验当前手机号是否加入其它团队 - Long joinGroupIdByPhone = flowTeamGroupAdminMapper.getJoinGroupIdByPhone(params.getMemberPhone()); - if (joinGroupIdByPhone != null && !joinGroupIdByPhone.equals(params.getGroupId())) { - throw new AdminServiceException(BusiStatus.BUSIERROR, "该手机号已被其他团队使用,无法添加成员"); - } - // 小组最大成员上限 - checkTeamMemberCount(params.getTeamId()); - List inviteCodes = getInviteCodeList(params.getInviteCodes()); - if (!CollectionUtils.isEmpty(inviteCodes)) { - validInviteCods(inviteCodes, params.getMemberId(), params.getTeamId()); - } - - FlowTeamMember memberForInsert = new FlowTeamMember(); - BeanUtil.copyProperties(params, memberForInsert); - memberForInsert.setUpdateTime(new Date()); - flowTeamMemberMapper.updateById(memberForInsert); - Long memberId = memberForInsert.getMemberId(); - updateMemberInviteCodes(memberId, inviteCodes, editByLeader); - } - - private void updateMemberInviteCodes(Long memberId, List inviteCodes, Boolean editByLeader) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamMemberInviteCode::getMemberId, memberId); - List memberInviteCodes = flowTeamMemberInviteCodeMapper.selectList(queryWrapper); - if (memberInviteCodes == null || memberInviteCodes.isEmpty()) { - addMemberInviteCode(memberId, inviteCodes); - return; - } - - Map memberCodeMap = memberInviteCodes.stream().collect(Collectors.toMap(FlowTeamMemberInviteCode::getInviteCode, memberInviteCode -> memberInviteCode, (k1, k2) -> k1)); - List needDeleteItemIds = new ArrayList<>(); - List needAddCodes = new ArrayList<>(); - List needDeleteCodes = new ArrayList<>(); - inviteCodes.forEach(code -> { - if (memberCodeMap.containsKey(code)) { - // 已经存在的就维持不变 - memberCodeMap.remove(code); - } else { - // 不存在的就新增 - needAddCodes.add(code); - } - }); - if (!memberCodeMap.isEmpty()) { - // 剩下的就是要删除的 - memberCodeMap.values().stream().forEach(memberInviteCode -> { - needDeleteItemIds.add(memberInviteCode.getId()); - needDeleteCodes.add(memberInviteCode.getInviteCode()); - }); - } - - if (!needAddCodes.isEmpty()) { - if (editByLeader) { - checkOperateInviteCodeByLeader(needAddCodes); - } - addMemberInviteCode(memberId, needAddCodes); - } - - if (!needDeleteItemIds.isEmpty()) { - System.out.println("needDeleteCodes:" + JSON.toJSONString(needDeleteCodes)); - if (editByLeader) { - checkOperateInviteCodeByLeader(needDeleteCodes); - } - deleteMemberInviteCodes(needDeleteItemIds); - } - } - - private void deleteMemberInviteCodes(List memberCodeIds) { - flowTeamMemberInviteCodeMapper.deleteBatchIds(memberCodeIds); - } - - private void validInviteCods(List inviteCodes, String teamId) { - validInviteCods(inviteCodes, null, teamId); - } - - private void validInviteCods(List inviteCodes, Long memberId, String teamId) { - // 成员邀请码最大上限 - if (inviteCodes.size() > TEAM_MAX_INVITECODE_COUNT_ONE_PERSON) { - throw new AdminServiceException(BusiStatus.SERVERBUSY, "成员邀请码超过上限"); - } - List invalidCods = new ArrayList<>(inviteCodes.stream().map(String::toUpperCase).collect(Collectors.toList())); - // 从表中获取邀请码信息 - List userInviteCodes = inviteCodeService.listByInviteCode(inviteCodes); - // 小组后台生成的邀请码 - List flowTeamGenInviteCodes = userInviteCodes.stream().filter(i -> Constant.InviteCodeGenScene.flow_team.equals(i.getGenScene())).collect(Collectors.toList()); - List otherTeamCodes = new ArrayList<>(); - flowTeamGenInviteCodes.forEach( - code -> { - FlowTeamInviteCodeRecord record = flowTeamInviteCodeRecordService.getByTeamIdAndCode(teamId, code.getInviteCode()); - if (record == null) { - otherTeamCodes.add(code.getInviteCode()); - } - } - ); - - - // 将表中有的,从list中排除,剩下的就是无效的 - userInviteCodes.forEach(info -> { - invalidCods.remove(info.getInviteCode().toUpperCase()); - }); - - List duplicateCods = new ArrayList<>(); - userInviteCodes.forEach(userInviteCode -> { - // 校验是否已经被其他人填写 - QueryWrapper queryWrapper = new QueryWrapper<>(); - if (memberId != null) { - queryWrapper.lambda().ne(FlowTeamMember::getMemberId, memberId); - } - queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + userInviteCode.getInviteCode() + "'"); - queryWrapper.lambda().in(FlowTeamMember::getMemberStatus, Arrays.asList(MEMBER_STATUS_VALID, MEMBER_STATUS_INVALID)); - long count = flowTeamMemberMapper.selectCount(queryWrapper); - if (count > 0L) { - duplicateCods.add(userInviteCode.getInviteCode()); - return; - } - }); - - if (!invalidCods.isEmpty() || !duplicateCods.isEmpty() || !otherTeamCodes.isEmpty()) { - StringBuilder sb = new StringBuilder(); - if (!invalidCods.isEmpty()) { - sb.append("以下邀请码不存在:").append(StringUtils.join(invalidCods, ",")).append("。"); - } - if (!duplicateCods.isEmpty()) { - sb.append("以下邀请码已跟其他成员绑定:").append(StringUtils.join(duplicateCods, ",")).append("。"); - } - if (!otherTeamCodes.isEmpty()) { - sb.append("以下邀请码非本组邀请码:").append(StringUtils.join(otherTeamCodes, ",")).append("。"); - } - sb.append("请调整后再提交"); - throw new AdminServiceException(BusiStatus.PARAMERROR, sb.toString()); - - } - } - - private List getInviteCodeList(String inviteCodes) { - inviteCodes = inviteCodes.trim(); - if (StringUtils.isNotBlank(inviteCodes)) { - String[] codeArr = inviteCodes.trim().replaceAll(",", ",").split(","); - return Arrays.asList(codeArr); - } - return Collections.emptyList(); - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void changeMemberStatus(@Nonnull Long memberId, @Nonnull Integer status) { - FlowTeamMember memberForUpdate = new FlowTeamMember(); - memberForUpdate.setMemberId(memberId); - memberForUpdate.setMemberStatus(status); - memberForUpdate.setCreateTime(new Date()); - flowTeamMemberMapper.updateById(memberForUpdate); - } - - public IPage listFlowMembersByPage(TeamMemberQueryParams params) { - if (params.getPageNumber() == null) { - params.setPageNumber(1); - } - if (params.getPageSize() == null) { - params.setPageSize(20); - } - QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StringUtils.isNotBlank(params.getMemberName())) { - queryWrapper.lambda().like(FlowTeamMember::getMemberName, "%" + params.getMemberName() + "%"); - } - if (StringUtils.isNotBlank(params.getMemberPhone())) { - queryWrapper.lambda().eq(FlowTeamMember::getMemberPhone, params.getMemberPhone()); - } - if (StringUtils.isNotBlank(params.getTeamId())) { - queryWrapper.lambda().eq(FlowTeamMember::getTeamId, params.getTeamId()); - } - if (StringUtils.isNotBlank(params.getTeamIds())) { - List teamIdList = Arrays.asList(params.getTeamIds().split(",")); - queryWrapper.lambda().in(FlowTeamMember::getTeamId, teamIdList); - } - if (StringUtils.isNotBlank(params.getInviteCode())) { - queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + params.getInviteCode() + "'"); - } - queryWrapper.lambda().in(FlowTeamMember::getMemberStatus, Arrays.asList(MEMBER_STATUS_VALID, MEMBER_STATUS_INVALID)) - .orderByDesc(FlowTeamMember::getTeamRole).orderByDesc(FlowTeamMember::getMemberId); - - IPage iPage = new Page<>(params.getPageNumber(), params.getPageSize()); - IPage flowTeamMemberIPage = flowTeamMemberMapper.selectPage(iPage, queryWrapper); - - return buildVoPage(flowTeamMemberIPage); - } - - private IPage buildVoPage(IPage flowTeamMemberIPage) { - IPage resultPage = null; - List records = flowTeamMemberIPage.getRecords(); - if (records == null || records.isEmpty()) { - return new Page<>(); - } - - // 获取成员的邀请码列表 - Map> memberInviteCodesMap = records.stream().collect(Collectors.toMap(FlowTeamMember::getMemberId, member -> new ArrayList())); - List memberInviteCodes = listFlowTeamMemberInviteCodes(memberInviteCodesMap.keySet()); - memberInviteCodes.forEach(memberInviteCode -> { - List codes = memberInviteCodesMap.get(memberInviteCode.getMemberId()); - codes.add(memberInviteCode.getInviteCode()); - }); - - // 获取成员的团队信息 - List teamIds = records.stream().map(FlowTeamMember::getTeamId).collect(Collectors.toList()); - Map teamGroupMap = new HashMap<>(teamIds.size()); - List flowTeamInfos = listFlowTeamInfoByTeamIds(teamIds); - flowTeamInfos.forEach( - team -> { - teamGroupMap.put(team.getTeamId(), team.getGroupId()); - } - ); - - List voList = new ArrayList<>(records.size()); - records.forEach(record -> { - FlowTeamMemberVO flowTeamMemberVO = new FlowTeamMemberVO(); - BeanUtil.copyProperties(record, flowTeamMemberVO); - List inviteCodes = memberInviteCodesMap.get(record.getMemberId()); - flowTeamMemberVO.setInviteCodes(StringUtils.join(inviteCodes, ",")); - flowTeamMemberVO.setGroupId(teamGroupMap.get(record.getTeamId())); - voList.add(flowTeamMemberVO); - }); - - resultPage = new Page<>(flowTeamMemberIPage.getCurrent(), flowTeamMemberIPage.getSize(), flowTeamMemberIPage.getTotal()); - resultPage.setRecords(voList); - - return resultPage; - } - - private List listFlowTeamInfoByTeamIds(List teamIds) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID) - .in(FlowTeamInfo::getTeamId, teamIds); - return flowTeamInfoService.list(queryWrapper); - } - - private List listFlowTeamMemberInviteCodes(Collection memberIds) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().in(FlowTeamMemberInviteCode::getMemberId, memberIds); - return flowTeamMemberInviteCodeMapper.selectList(queryWrapper); - } - - /** - * 获取分组统计列表 - * - * @param params - * @return - */ - public List listStatisticSummary(FlowTeamStatisticParams params) { - QueryWrapper memberQueryWrapper = new QueryWrapper<>(); - if (StringUtils.isNotBlank(params.getTeamId())) { - memberQueryWrapper.lambda().eq(FlowTeamMember::getTeamId, params.getTeamId()); - } - if (!CollectionUtils.isEmpty(params.getTeamIds())) { - memberQueryWrapper.lambda().in(FlowTeamMember::getTeamId, params.getTeamIds()); - } - List flowTeamMembers = flowTeamMemberMapper.selectList(memberQueryWrapper); - if (flowTeamMembers == null || flowTeamMembers.isEmpty()) { - return Collections.emptyList(); - } - - // 按组组合数据 - Map> teamMap = new ConcurrentHashMap<>(); - flowTeamMembers.forEach(member -> { - List flowTeamMembersInMap = teamMap.get(member.getTeamId()); - if (flowTeamMembersInMap == null) { - synchronized (teamMap) { - flowTeamMembersInMap = teamMap.get(member.getTeamId()); - if (flowTeamMembersInMap == null) { - flowTeamMembersInMap = new ArrayList<>(); - teamMap.put(member.getTeamId(), flowTeamMembersInMap); - } - } - - } - flowTeamMembersInMap.add(member); - }); - - List summaryVOS = new ArrayList<>(); - - List groupApps = AppUtils.getGroupApps(params.getApp()); - params.setGroupApps(groupApps); - - // 分组进行统计 - teamMap.values().forEach(teamMembers -> { - List memberIds = new ArrayList<>(teamMembers.size()); - List teamLeaders = new ArrayList<>(); - teamMembers.stream().forEach(member -> { - memberIds.add(member.getMemberId()); - if (member.getTeamRole().equals(TEAM_ROLE_LEADER)) { - teamLeaders.add(member.getMemberName()); - } - }); - List memberInviteCodes = listFlowTeamMemberInviteCodes(memberIds); - List inviteCodes = memberInviteCodes.stream().map(FlowTeamMemberInviteCode::getInviteCode).collect(Collectors.toList()); - params.setTeamId(teamMembers.get(0).getTeamId()); - FlowTeamStatisticSummaryVO flowTeamStatisticSummaryVO = flowTeamStatisticMapper.staisticUseInviteCodesV2(inviteCodes, params); - if (flowTeamStatisticSummaryVO == null) { - flowTeamStatisticSummaryVO = new FlowTeamStatisticSummaryVO(); - } - - flowTeamStatisticSummaryVO.setTeamId(teamMembers.get(0).getTeamId()); - flowTeamStatisticSummaryVO.setMemberCount(Long.valueOf(teamMembers.stream().filter(member -> member.getMemberStatus().equals(MEMBER_STATUS_VALID)).count()).intValue()); - flowTeamStatisticSummaryVO.setTeamLeaders(StringUtils.join(teamLeaders, ",")); - calChargeRateAndArpu(flowTeamStatisticSummaryVO); - - //次留 - flowTeamStatisticSummaryVO.setTwoRemainCount(userMapperExpand.getTwoRemainCount(inviteCodes, params.getStartDate(), params.getEndDate())); - //七留 - flowTeamStatisticSummaryVO.setSevenRemainCount(userMapperExpand.getSevenRemainCount(inviteCodes, params.getStartDate(), params.getEndDate())); - //月留 - flowTeamStatisticSummaryVO.setThirtyRemainCount(userMapperExpand.getThirtyRemainCount(inviteCodes, params.getStartDate(), params.getEndDate())); - summaryVOS.add(flowTeamStatisticSummaryVO); - }); - - return summaryVOS; - } - - public static void calChargeRateAndArpu(TeamStatisticBaseVO flowTeamStatisticSummaryVO) { - if (flowTeamStatisticSummaryVO.getNewUserCount() != null && flowTeamStatisticSummaryVO.getNewUserCount() > 0) { - // 计算付费转化 - Double chargeRate = (double) Optional.of(flowTeamStatisticSummaryVO.getNewChargeUserCount()).orElse(0) * 1.0 / flowTeamStatisticSummaryVO.getNewUserCount(); - flowTeamStatisticSummaryVO.setChargeRate(new BigDecimal(chargeRate).multiply(Constant.HUNDRED).setScale(2, BigDecimal.ROUND_HALF_UP).toString() + "%"); - - // 计算arpu - Double arpu = new BigDecimal(Optional.of(flowTeamStatisticSummaryVO.getChargeMoney()).orElse(0.0) / flowTeamStatisticSummaryVO.getNewUserCount()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - flowTeamStatisticSummaryVO.setArpu(arpu); - } else { - flowTeamStatisticSummaryVO.setChargeRate("0"); - flowTeamStatisticSummaryVO.setArpu(0.0); - } - } - - /** - * 分组统计明细 - * - * @param params - * @return - */ - public List listFlowTeamStatisticDetails(FlowTeamStatisticParams params) { - if (StringUtils.isBlank(params.getTeamId())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "传入的teamId不能为空"); - } - List detailVOS = flowTeamStatisticMapper.listTeamStatisticDetailV2(params); - if (detailVOS != null && !detailVOS.isEmpty()) { - detailVOS.stream().forEach(item -> { - calChargeRateAndArpu(item); - handleTeamRole(item, params.getTeamId()); - }); - } - return detailVOS; - } - - private void handleTeamRole(FlowTeamStatisticDetailVO flowTeamStatisticSummaryVO, String queryTeamId) { - if (!flowTeamStatisticSummaryVO.getTeamId().equals(queryTeamId)) { - flowTeamStatisticSummaryVO.setTeamRole(null); - flowTeamStatisticSummaryVO.setMemberStatus(null); - } - } - - /** - * 个人统计明细 - */ - public List listUserStatisticDetails(FlowTeamStatisticParams params) { - return flowTeamStatisticMapper.listUserStatisticDetailsV2(params); - } - - public FlowTeamConfVO getConfig() { - String configStr = sysConfService.getDefaultSysConfValueById(Constant.SysConfId.FLOW_TEAM_MANAGE, "{}"); - FlowTeamConfVO flowTeamConfVO = JSONObject.parseObject(configStr, FlowTeamConfVO.class); - if (flowTeamConfVO.getCanRefillInterval() == null) { - flowTeamConfVO.setCanRefillInterval(DEFAULT_CAN_REFILL_INTERVAL); - } - return flowTeamConfVO; - - } - - public Map getTeamMap() { - List flowTeamInfos = listTeam(); - List teams = new ArrayList<>(); - flowTeamInfos.forEach( - team -> { - FlowTeamConfVO.TeamItem item = new FlowTeamConfVO.TeamItem(); - item.setTeamId(team.getTeamId()); - item.setTeamName(team.getTeamName()); - teams.add(item); - } - ); - - return teams.stream().collect(Collectors.toMap(FlowTeamConfVO.TeamItem::getTeamId, team -> team)); - } - - public List listUsersByErbanNo(String erbanNosStr) { - List erbanNoList = Arrays.asList(erbanNosStr.split(",")); - - List userWithFlowTeamInfoVOS = flowTeamStatisticMapper.listUsers(erbanNoList); - Map membermap = new HashMap<>(); - Map groupMap = new HashMap<>(); - - for (UserWithFlowTeamInfoVO user : userWithFlowTeamInfoVOS) { - Long memberId = user.getMemberId(); - user.setIsInCanRefillInviteCodeTime(isInCanRefillInviteCodeTime(user)); - if (memberId != null) { - FlowTeamMember flowTeamMember = membermap.get(memberId); - if (flowTeamMember == null) { - flowTeamMember = flowTeamMemberMapper.selectById(memberId); - if (flowTeamMember != null) { - membermap.put(memberId, flowTeamMember); - } - } - - if (flowTeamMember != null) { - user.setTeamMemberName(flowTeamMember.getMemberName()); - user.setTeamId(flowTeamMember.getTeamId()); - } - FlowTeamGroup group = groupMap.get(memberId); - if (null == group) { - group = flowTeamGroupService.getByTeamId(flowTeamMember.getTeamId()); - if (group != null) { - groupMap.put(memberId, group); - } - } - user.setGroupName(group.getGroupName()); - } - } - return userWithFlowTeamInfoVOS; - } - - private boolean isInCanRefillInviteCodeTime(Users user) { - FlowTeamConfVO flowTeamConfVO = getConfig(); - if (user.getCreateTime().getTime() < System.currentTimeMillis() - flowTeamConfVO.getCanRefillInterval() * 60 * 1000L) { - return false; - } - - return true; - } - - private long checkInviteCodeForRefill(String inviteCode) { - Long uid = inviteCodeService.getUidByInviteCode(inviteCode); - if (uid == null) { - throw new ServiceException(BusiStatus.PARAMERROR, "邀请码无效,请重新填写"); - } - Users usersByUid = usersService.getUsersByUid(uid); - if (usersByUid == null) { - throw new ServiceException(BusiStatus.PARAMERROR, "邀请码无效,请重新填写"); - } - - return uid; - } - - public void refillUserInviteCode(Users user) { - if (user.getUid() == null) { - throw new ServiceException(BusiStatus.PARAMERROR, "传入的Uid不能为空"); - } - if (StringUtils.isBlank(user.getInviteCode())) { - throw new ServiceException(BusiStatus.PARAMERROR, "请填写邀请码"); - } - long inviteUid = checkInviteCodeForRefill(user.getInviteCode()); - Users usersByUid = usersService.getUsersByUid(user.getUid()); - if (usersByUid == null) { - throw new ServiceException(BusiStatus.USERNOTEXISTS); - } - if (!isInCanRefillInviteCodeTime(usersByUid)) { - throw new ServiceException(BusiStatus.TIME_OUT_TO_REFILL_INVITE_CODE); - } - Users userForUpdate = new Users(); - userForUpdate.setUid(user.getUid()); - userForUpdate.setInviteCode(user.getInviteCode()); - userForUpdate.setInviteUid(inviteUid); - usersBaseService.updateUser(userForUpdate); - // 绑定用户与引流团队成员的邀请关系 - flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUser(user.getInviteCode(), user.getUid(), FlowTeamConstant.UserSourceType.REPAIR); - - applicationContext.publishEvent(new RefillUserInviteCodeEvent(userForUpdate)); - } - - /** - * 组长添加组内成员 - * - * @param params - */ - public void addTeamMemberByLeader(TeamMemberEditParams params) { - if (FlowTeamConstant.TeamRole.GROUP_LEADER.equals(params.getTeamRole())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "当前无权限进行此操作"); - } - checkAddMember(params); - List inviteCodeList = new ArrayList<>(); - if (StringUtils.isNotBlank(params.getInviteCodes())) { - inviteCodeList = getInviteCodeList(params.getInviteCodes()); - checkOperateInviteCodeByLeader(inviteCodeList); - } - addTeamMemberBase(params, inviteCodeList); - } - - /** - * 校验组长操作的邀请码 - *

组长只能操作自己在小组后台生成的邀请码

- * - * @param inviteCodeList - */ - private void checkOperateInviteCodeByLeader(List inviteCodeList) { - List userInviteCodes = inviteCodeService.listByInviteCode(inviteCodeList); - - List notFlowTeamGenInviteCodes = userInviteCodes.stream() - .filter(i -> !Constant.InviteCodeGenScene.flow_team.equals(i.getGenScene())).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(notFlowTeamGenInviteCodes)) { - List codes = new ArrayList<>(); - notFlowTeamGenInviteCodes.forEach(code -> { - codes.add(code.getInviteCode()); - }); - String msg = "以下邀请码无权操作:" + StringUtils.join(codes, ",") + "。"; - throw new AdminServiceException(BusiStatus.PARAMERROR, msg); - } - } - - /** - * 组长编辑组内成员 - * - * @param params - */ - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void editTeamMemberByLeader(TeamMemberEditParams params) { - if (FlowTeamConstant.TeamRole.GROUP_LEADER.equals(params.getTeamRole())) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "当前无权限进行此操作"); - } - editTeamMemberBase(params, true); - } - - - /** - * 获取小组下的邀请码自动进房列表 - * - * @param teamId 小组id - * @return - */ - public Pagination listTeamRoomInviteCode(String teamId, String erbanNo, String roomInviteCode, Integer page, Integer pageSize) { - if (StringUtils.isBlank(teamId)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - List teamIds = Arrays.asList(teamId.split(",")); - // 小组生成的邀请码 - List inviteCodes = flowTeamInviteCodeRecordService.listTeamGenInviteCode(teamIds); - List queryErbanNos = StringUtils.isNotBlank(erbanNo) ? convertStringToList(erbanNo) : null; - List queryUidList = new ArrayList<>(); - if (!CollectionUtils.isEmpty(queryErbanNos)) { - for (String erbanNoStr : queryErbanNos) { - Users users = usersService.getUserByErbanNo(Long.valueOf(erbanNoStr)); - if (users != null) { - queryUidList.add(users.getUid()); - } - } - } - List inviteCodeList = inviteCodes.stream().map(FlowTeamInviteCodeRecord::getInviteCode).collect(Collectors.toList()); - List queryInviteCodes = StringUtils.isNotBlank(roomInviteCode) ? convertStringToList(roomInviteCode) : inviteCodeList; - PageHelper.startPage(page, pageSize); - List roomInviteCodeList = roomInviteCodeAdminMapper.getRoomInviteCodeList(queryUidList, queryInviteCodes); - // 过滤掉不属于本组邀请码的数据 - roomInviteCodeList = roomInviteCodeList.stream().filter(i -> inviteCodeList.contains(i.getRoomInviteCode())).collect(Collectors.toList()); - PageInfo pageInfo = new PageInfo<>(roomInviteCodeList); - return new Pagination(pageInfo); - } - - private List convertStringToList(String str) { - String[] codeArr = str.trim().replaceAll(",", ",").split(","); - return Arrays.asList(codeArr); - } - - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void saveOrUpdateTeamRoomInviteCode(String teamId, Long id, Long erbanNo, String roomInviteCode) { - if (StringUtils.isBlank(teamId)) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "请选择小组后再进行操作"); - } - checkTeamRoomInviteCode(teamId, roomInviteCode); - RoomInviteCode roomInviteCodeForUpdate = new RoomInviteCode(); - if (id != null) { - roomInviteCodeForUpdate.setId(id); - } - if (erbanNo != null) { - Users user = usersService.getUserByErbanNo(erbanNo); - if (user == null) { - throw new AdminServiceException(BusiStatus.USERNOTEXISTS); - } - Room room = roomService.getRoomByUid(user.getUid()); - if (room == null) { - throw new AdminServiceException(BusiStatus.ROOMNOTEXIST); - } - roomInviteCodeForUpdate.setRoomUid(user.getUid()); - } - roomInviteCodeForUpdate.setRoomInviteCode(roomInviteCode); - roomInviteCodeForUpdate.setUpdateTime(new Date()); - roomInviteCodeService.saveOrUpdate(roomInviteCodeForUpdate); - } - - private void checkTeamRoomInviteCode(String teamId, String roomInviteCode) { - // 校验邀请码是否已经被绑定 - List invitecodes = Arrays.asList(roomInviteCode); - List records = roomInviteCodeService.listByInviteCodes(invitecodes); - if (!CollectionUtils.isEmpty(records)) { - throw new AdminServiceException(BusiStatus.BUSIERROR, "邀请码已绑定其他房间"); - } - UserInviteCode specialCode = userInviteCodeService.getByCode(roomInviteCode); - if (specialCode != null) { - return; - } - // 校验邀请码是不是自己小组的 - FlowTeamInviteCodeRecord record = flowTeamInviteCodeRecordService.getByTeamIdAndCode(teamId, roomInviteCode); - if (record == null) { - throw new AdminServiceException(BusiStatus.BUSIERROR, "邀请码无权操作"); - } - } - - - public RoomInviteCodeVo getRoomInviteCode(Integer id) { - if (id == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - RoomInviteCode roomInviteCode = roomInviteCodeService.getById(id); - Users users = usersService.getUsersByUid(roomInviteCode.getRoomUid()); - RoomInviteCodeVo vo = new RoomInviteCodeVo(); - vo.setId(roomInviteCode.getId()); - vo.setRoomInviteCode(roomInviteCode.getRoomInviteCode()); - vo.setErbanNo(users.getErbanNo()); - return vo; - } - - public void delteRoomInviteCodeRecord(Long id) { - if (id == null) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - roomInviteCodeService.removeById(id); - } - - public Pagination listFlowTeamGenInviteCodeByPage(Integer page, Integer pageSize, String inviteCode, String teamId) { - if (StringUtils.isBlank(teamId)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - List teamIdList = Arrays.asList(teamId.split(",")); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().in(FlowTeamInviteCodeRecord::getTeamId, teamIdList) - .eq(FlowTeamInviteCodeRecord::getStatus, Constant.status.valid) - .orderByDesc(FlowTeamInviteCodeRecord::getCreateTime); - if (StringUtils.isNotBlank(inviteCode)) { - queryWrapper.lambda().eq(FlowTeamInviteCodeRecord::getInviteCode, inviteCode); - } - PageHelper.startPage(page, pageSize); - List records = flowTeamInviteCodeRecordService.list(queryWrapper); - List adminRecords = new ArrayList<>(); - records.forEach( - record -> { - FlowTeamInviteCodeRecordAdminVO vo = new FlowTeamInviteCodeRecordAdminVO(); - BeanUtils.copyProperties(record, vo); - FlowTeamInfo team = flowTeamInfoService.getById(vo.getTeamId()); - vo.setTeamName(team != null ? team.getTeamName() : null); - FlowTeamMemberInviteCode code = flowTeamMemberInviteCodeMapper.getByInviteCode(vo.getInviteCode()); - vo.setHasBind(code != null); - adminRecords.add(vo); - } - ); - PageInfo pageInfo = new PageInfo<>(adminRecords); - Pagination pagination = new Pagination(pageInfo); - return pagination; - } - - /** - * 组长生成邀请码 - * - * @param teamId - * @param genCount - * @param creator - */ - @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public Integer genInviteCount(String teamId, String creator, Integer genCount) { - if (StringUtils.isBlank(teamId) || null == genCount) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - if (genCount > GEN_INVITECODE_MAX_COUNT) { - throw new AdminServiceException(BusiStatus.PARAMERROR, "一次性生成的邀请码不可超过" + GEN_INVITECODE_MAX_COUNT + "个"); - } - // 生成邀请码 - List codeList = InviteCodeUtil.genInviteCode(genCount); - codeList = checkGenInviteCode(codeList); - // 插入用户邀请码表 - List userInviteCodeList = new ArrayList<>(); - codeList.forEach(code -> { - UserInviteCode record = new UserInviteCode(); - record.setUid(Long.parseLong(SystemConfig.flowTeamGenInviteCodeUid)); - record.setInviteCode(code); - record.setStatus(Constant.status.valid); - record.setCreator(creator); - record.setIsPrimary(false); - record.setInviteCodeType(Constant.InviteCodeType.SPECIAL.getType()); - record.setGenScene(Constant.InviteCodeGenScene.flow_team); - record.setCreator(creator); - record.setCreateTime(new Date()); - record.setUpdateTime(new Date()); - userInviteCodeList.add(record); - }); - userInviteCodeService.saveBatch(userInviteCodeList); - // 邀请码生成记录 - List records = new ArrayList<>(); - codeList.forEach(code -> { - FlowTeamInviteCodeRecord record = FlowTeamInviteCodeRecord.builder() - .teamId(teamId) - .inviteCode(code).status(Constant.status.valid).creator(creator) - .createTime(new Date()).updateTime(new Date()) - .build(); - records.add(record); - }); - flowTeamInviteCodeRecordService.saveBatch(records); - return codeList.size(); - } - - private List checkGenInviteCode(List codeList) { - List validCodeList = new ArrayList<>(); - codeList.forEach(code -> { - // 检查邀请码是否已经被使用 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(UserInviteCode::getInviteCode, code); - UserInviteCode result = userInviteCodeService.getOne(queryWrapper); - if (result == null) { - validCodeList.add(code); - } - }); - return validCodeList; - } - - public List listTeamByGroupId(Long groupId) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamInfo::getGroupId, groupId).eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - return flowTeamInfoService.list(query); - } - - public List listTeam() { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); - return flowTeamInfoService.list(query); - } - - public List listTeamMember(String teamId) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().in(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID, - FlowTeamConstant.MemberStatus.MEMBER_STATUS_INVALID) - .eq(FlowTeamMember::getTeamId, teamId); - return flowTeamMemberService.list(query); - } - - public List listMemberInviteCode(Long memberId) { - QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamMemberInviteCode::getMemberId, memberId); - return flowTeamMemberInviteCodeMapper.selectList(query); - } -} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/statistic/StatsUserDetailAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/statistic/StatsUserDetailAdminService.java index 8e623512c..28a05fc91 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/statistic/StatsUserDetailAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/statistic/StatsUserDetailAdminService.java @@ -7,13 +7,11 @@ import com.accompany.admin.dto.UserDetailQueryDto; import com.accompany.admin.mapper.ChargeRecordAdminMapper; import com.accompany.admin.mapper.UserMapperExpand; import com.accompany.admin.service.base.BaseService; -import com.accompany.admin.service.room.RoomVisitorService; import com.accompany.admin.vo.stats.UserDetailVo; import com.accompany.business.model.UserInRoomRecord; import com.accompany.business.model.room.RoomVisitor; import com.accompany.business.model.room.RoomVisitorUserDict; import com.accompany.business.mybatismapper.UserInRoomRecordMapper; -import com.accompany.business.mybatismapper.flow.FlowTeamMemberBaseMapper; import com.accompany.business.mybatismapper.room.RoomVisitorMapper; import com.accompany.business.mybatismapper.room.RoomVisitorUserDictMapper; import com.accompany.business.service.user.UserLoginService; @@ -26,18 +24,10 @@ import com.accompany.core.exception.AdminServiceException; import com.accompany.core.model.AccountLoginRecord; import com.accompany.core.mybatismapper.AccountLoginRecordMapperExpand; import com.accompany.core.mybatismapper.UsersMapper; -import com.accompany.core.service.SysConfService; import com.accompany.payment.model.ChargeRecord; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.xuanyin.flowteam.constant.FlowTeamConstant; -import com.xuanyin.flowteam.mapper.FlowTeamGroupMapper; -import com.xuanyin.flowteam.mapper.FlowTeamInfoMapper; -import com.xuanyin.flowteam.mapper.FlowTeamMemberInviteUserMapper; -import com.xuanyin.flowteam.model.FlowTeamGroup; -import com.xuanyin.flowteam.model.FlowTeamInfo; -import com.xuanyin.flowteam.model.FlowTeamMemberInviteUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -60,15 +50,6 @@ public class StatsUserDetailAdminService extends BaseService { @Autowired private UserInRoomRecordMapper userInRoomRecordMapper; - @Autowired - private FlowTeamInfoMapper flowTeamInfoMapper; - - @Autowired - private FlowTeamMemberInviteUserMapper flowTeamMemberInviteUserMapper; - - @Autowired - private FlowTeamGroupMapper flowTeamGroupMapper; - @Autowired private RoomVisitorUserDictMapper roomVisitorUserDictMapper; @@ -192,7 +173,6 @@ public class StatsUserDetailAdminService extends BaseService { } record.setLoginTypeStr(loginTypeStr); record.setNewDevice(isNewDevice(uid, record.getDeviceId())); - setInviteCodeInfo(record); } } return pageInfo; @@ -280,28 +260,4 @@ public class StatsUserDetailAdminService extends BaseService { return data; } - public void setInviteCodeInfo(UserDetailVo userDetailVo) { - if (BlankUtil.isBlank(userDetailVo.getInviteCode())) return; - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamMemberInviteUser::getUid, userDetailVo.getUid()); - FlowTeamMemberInviteUser inviteUser = flowTeamMemberInviteUserMapper.selectOne(queryWrapper); - if (ObjectUtil.isNull(inviteUser)) return; - QueryWrapper teamInfoQueryWrapper = new QueryWrapper<>(); - teamInfoQueryWrapper.lambda().eq(FlowTeamInfo::getTeamId, inviteUser.getTeamId()); - FlowTeamInfo flowTeamInfo = flowTeamInfoMapper.selectOne(teamInfoQueryWrapper); - if (ObjectUtil.isNull(flowTeamInfo)) return; - FlowTeamGroup group = flowTeamGroupMapper.selectById(flowTeamInfo.getGroupId()); - if (FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID.equals(flowTeamInfo.getStatus())) { - userDetailVo.setInviteCodeinfo(userDetailVo.getInviteCode() - + (ObjectUtil.isNull(flowTeamInfo.getTeamName()) ? "" : StrUtil.DASHED + flowTeamInfo.getTeamName()) - + (ObjectUtil.isNull(group.getGroupName()) ? "" : StrUtil.DASHED + group.getGroupName()) - ); - userDetailVo.setFlowChannel("流量团队新增"); - } else { - userDetailVo.setInviteCodeinfo(userDetailVo.getInviteCode() + (ObjectUtil.isNull(flowTeamInfo.getTeamName()) ? "" : StrUtil.DASHED + flowTeamInfo.getTeamName())); - userDetailVo.setInviteCodeinfo(userDetailVo.getInviteCodeinfo() + "(小组已删除)"); - userDetailVo.setFlowChannel("流量团队新增"); - } - } - } diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml deleted file mode 100644 index a47784b78..000000000 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamMemberInviteUserAdminMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamMemberInviteUserAdminMapper.xml deleted file mode 100644 index 5b37d3a51..000000000 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamMemberInviteUserAdminMapper.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml deleted file mode 100644 index e2321ba06..000000000 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml +++ /dev/null @@ -1,720 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/AdminApplication.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/AdminApplication.java index e183642c5..b1668b0ea 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/AdminApplication.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/AdminApplication.java @@ -18,11 +18,11 @@ import org.springframework.scheduling.annotation.EnableScheduling; */ @EnableDynamicTp @SpringBootApplication -@ComponentScan({"com.accompany","com.xuanyin"}) +@ComponentScan({"com.accompany"}) @EnableScheduling @EnableAsync(proxyTargetClass = true) -@MapperScan({"com.accompany.*.mapper","com.accompany.*.mybatismapper","com.xuanyin.*.mapper"}) -@ServletComponentScan(value = {"com.accompany", "com.xuanyin"}) +@MapperScan({"com.accompany.*.mapper","com.accompany.*.mybatismapper"}) +@ServletComponentScan(value = {"com.accompany"}) @SpringBootConfiguration public class AdminApplication { diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java deleted file mode 100644 index 4c47c9303..000000000 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.accompany.admin.controller.flowteam; - -import cn.hutool.core.text.StrBuilder; -import com.accompany.admin.base.Pagination; -import com.accompany.admin.controller.BaseController; -import com.accompany.admin.params.flowteam.FlowTeamStatisticParams; -import com.accompany.admin.params.flowteam.TeamMemberEditParams; -import com.accompany.admin.params.flowteam.TeamMemberQueryParams; -import com.accompany.admin.service.flowteam.FlowTeamMemberInviteUserAdminService; -import com.accompany.admin.service.flowteam.FlowTeamService; -import com.accompany.admin.service.system.AdminLogService; -import com.accompany.admin.vo.flowteam.*; -import com.accompany.common.status.BusiStatus; -import com.accompany.common.utils.DateTimeUtil; -import com.accompany.core.model.Users; -import com.accompany.core.vo.BaseResponseVO; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.xuanyin.flowteam.model.FlowTeamInfo; -import com.xuanyin.flowteam.model.FlowTeamMember; -import com.xuanyin.flowteam.model.FlowTeamMemberInviteCode; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping(value = "/admin/flowTeam") -public class FlowTeamAdminController extends BaseController { - - @Autowired - private FlowTeamService flowTeamService; - @Autowired - private FlowTeamMemberInviteUserAdminService flowTeamMemberInviteUserAdminService; - @Autowired - private AdminLogService adminLogService; - - - @GetMapping("/listFlowMembersByPage") - public Pagination listFlowMembersByPage(TeamMemberQueryParams params) { - IPage flowTeamMemberVOIPage = flowTeamService.listFlowMembersByPage(params); - - return new Pagination(flowTeamMemberVOIPage); - } - - @GetMapping("/getConfig") - public BaseResponseVO getConfig() { - FlowTeamConfVO config = flowTeamService.getConfig(); - return new BaseResponseVO(config); - } - - @PostMapping("/saveMember") - public BaseResponseVO saveOrUpdateMember(@RequestBody TeamMemberEditParams params) { - adminLogService.insertLog(getAdminId(), getClass().getCanonicalName(), "saveOrUpdateMember", "params===>>params:" + JSON.toJSONString(params)); - if (params.getMemberId() != null) { - flowTeamService.editTeamMember(params); - } else { - flowTeamService.addTeamMember(params); - } - - return new BaseResponseVO(BusiStatus.SUCCESS); - } - - @PostMapping("/changeMemberStatus") - public BaseResponseVO changeMemberStatus(@RequestBody TeamMemberEditParams params) { - flowTeamService.changeMemberStatus(params.getMemberId(), params.getMemberStatus()); - - return new BaseResponseVO(BusiStatus.SUCCESS); - } - - @PostMapping("/listStatisticSummary") - public List listStatisticSummary(@RequestBody FlowTeamStatisticParams params) { - return flowTeamService.listStatisticSummary(params); - } - - @RequestMapping(value = "/exportuserStatisticDetailOfTeam", method = RequestMethod.GET) - public void export(HttpServletResponse response, FlowTeamStatisticParams params) throws IOException { - List summaryVOS = flowTeamService.listUserStatisticDetails(params); - Map teamMap = flowTeamService.getTeamMap(); - FlowTeamConfVO.TeamItem teamItem = teamMap.get(params.getTeamId()); - - HSSFWorkbook workbook = this.buildUserStatisticDetailOfTeamExcel(summaryVOS, teamItem); - // 设置下载时客户端Excel的名称 - String filename = new StrBuilder(teamItem.getTeamName()).append(params.getStartDate()).append("_").append(params.getEndDate()).append("邀请明细.xls").toString(); - response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); - response.setCharacterEncoding("UTF-8"); - OutputStream ouputStream = response.getOutputStream(); - workbook.write(ouputStream); - ouputStream.flush(); - ouputStream.close(); - } - - private HSSFWorkbook buildUserStatisticDetailOfTeamExcel(List voList, FlowTeamConfVO.TeamItem teamItem) { - HSSFWorkbook workbook = new HSSFWorkbook(); - HSSFSheet sheet = workbook.createSheet("邀请明细"); - - String[] headers = {"邀请码", "邀请码填写类型", "被邀请用户id", "被邀请用户昵称", - "被邀请用户注册ip", "被邀请用户手机号", - "引入组", "引入人", "新增日期", "充值次数", "充值金额(美元)", - "送礼钻石数", - "送礼背包钻石数", "送礼非背包钻石数", - "累计收到转赠次数", "累计收到转赠金额" - }; - HSSFRow header = sheet.createRow(0); - for (int i = 0; i < headers.length; i++) { - header.createCell(i).setCellValue(headers[i]); - } - int rowNum = 1; - for (FlowTeamStatisticUserDetailVO item : voList) { - HSSFRow row = sheet.createRow(rowNum++); - int cellIdx = 0; - row.createCell(cellIdx).setCellValue(item.getInviteCode()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getSourceName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getUserErbanNo()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getUserNickName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getRegisterIp()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getPhone()); - cellIdx++; - row.createCell(cellIdx).setCellValue(teamItem.getTeamName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTeamMemberName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(DateTimeUtil.convertDate(item.getSignUpTime())); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getChargeCount()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getChargeMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalBackbagSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalNoBackbagSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getGiveCount()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getGiveMoney()); - cellIdx++; - } - return workbook; - } - - @GetMapping("/listFlowTeamStatisticDetails") - public List listFlowTeamStatisticDetails(FlowTeamStatisticParams params) { - return flowTeamService.listFlowTeamStatisticDetails(params); - } - - @RequestMapping(value = "/exportTeamStatisticDetails", method = RequestMethod.GET) - public void exportTeamStatisticDetails(HttpServletResponse response, FlowTeamStatisticParams params) throws IOException { - List summaryVOS = flowTeamService.listFlowTeamStatisticDetails(params); - Map teamMap = flowTeamService.getTeamMap(); - FlowTeamConfVO.TeamItem teamItem = teamMap.get(params.getTeamId()); - - HSSFWorkbook workbook = this.buildTeamStatisticDetailsExcel(summaryVOS, teamItem); - // 设置下载时客户端Excel的名称 - String filename = new StrBuilder(teamItem.getTeamName()).append(params.getStartDate()).append("_").append(params.getEndDate()).append("明细.xls").toString(); - response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); - response.setCharacterEncoding("UTF-8"); - OutputStream ouputStream = response.getOutputStream(); - workbook.write(ouputStream); - ouputStream.flush(); - ouputStream.close(); - } - - private HSSFWorkbook buildTeamStatisticDetailsExcel(List voList, FlowTeamConfVO.TeamItem teamItem) { - HSSFWorkbook workbook = new HSSFWorkbook(); - HSSFSheet sheet = workbook.createSheet("邀请明细"); - - String[] headers = {"成员名", "职务", "成员状态", "新增用户", "新增充值", "付费转化", "充值次数", "充值金额(美元)", - "送礼钻石数", "Arpu"}; - HSSFRow header = sheet.createRow(0); - for (int i = 0; i < headers.length; i++) { - header.createCell(i).setCellValue(headers[i]); - } - int rowNum = 1; - for (FlowTeamStatisticDetailVO item : voList) { - HSSFRow row = sheet.createRow(rowNum++); - row.createCell(0).setCellValue(item.getMemberName()); - row.createCell(1).setCellValue(item.getTeamRole() == null ? null : item.getTeamRole() == 2 ? "组长" : "组员"); - row.createCell(2).setCellValue(item.getMemberStatus() == null ? null : item.getMemberStatus() == 1 ? "生效" : "无效"); - row.createCell(3).setCellValue(item.getNewUserCount()); - row.createCell(4).setCellValue(item.getNewChargeUserCount()); - row.createCell(5).setCellValue(item.getChargeRate()); - row.createCell(6).setCellValue(item.getChargeCount()); - row.createCell(7).setCellValue(item.getChargeMoney()); - row.createCell(8).setCellValue(item.getSendGiftMony()); - row.createCell(9).setCellValue(item.getArpu()); - } - return workbook; - } - - @GetMapping("/listUserStatisticDetails") - public List listUserStatisticDetails(FlowTeamStatisticParams params) { - List summaryVOS = flowTeamService.listUserStatisticDetails(params); - - return summaryVOS; - } - - @RequestMapping(value = "/exportUserStatisticDetails", method = RequestMethod.GET) - public void exportUserStatisticDetails(HttpServletResponse response, FlowTeamStatisticParams params) throws IOException { - List summaryVOS = flowTeamService.listUserStatisticDetails(params); - if (summaryVOS == null || summaryVOS.isEmpty()) { - return; - } - FlowTeamStatisticUserDetailVO flowTeamStatisticUserDetailVO = summaryVOS.get(0); - Map teamMap = flowTeamService.getTeamMap(); - FlowTeamConfVO.TeamItem teamItem = teamMap.get(flowTeamStatisticUserDetailVO.getTeamId()); - - HSSFWorkbook workbook = this.buildUserStatisticDetailsExcel(summaryVOS); - // 设置下载时客户端Excel的名称 - String filename = new StrBuilder(teamItem.getTeamName()).append(" ") - .append(flowTeamStatisticUserDetailVO.getTeamMemberName()).append(" ") - .append(params.getStartDate()).append("_").append(params.getEndDate()).append("明细.xls").toString(); - response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); - response.setCharacterEncoding("UTF-8"); - OutputStream ouputStream = response.getOutputStream(); - workbook.write(ouputStream); - ouputStream.flush(); - ouputStream.close(); - } - - private HSSFWorkbook buildUserStatisticDetailsExcel(List voList) { - HSSFWorkbook workbook = new HSSFWorkbook(); - HSSFSheet sheet = workbook.createSheet("邀请明细"); - - String[] headers = {"邀请码", "邀请码填写类型", "被邀请用户id", "被邀请用户昵称", "被邀请用户注册ip", "被邀请用户手机号", "引入人", "新增日期", "充值次数", "充值金额", "送礼金额", - "送礼背包金额", "送礼非背包金额", "累计收到转赠次数", "累计收到转赠金额"}; - HSSFRow header = sheet.createRow(0); - for (int i = 0; i < headers.length; i++) { - header.createCell(i).setCellValue(headers[i]); - } - int rowNum = 1; - for (FlowTeamStatisticUserDetailVO item : voList) { - int cellIdx = 0; - HSSFRow row = sheet.createRow(rowNum++); - row.createCell(cellIdx).setCellValue(item.getInviteCode()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getSourceName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getUserErbanNo()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getUserNickName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getRegisterIp()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getPhone()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTeamMemberName()); - cellIdx++; - row.createCell(cellIdx).setCellValue(DateTimeUtil.convertDate(item.getSignUpTime())); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getChargeCount()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getChargeMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalBackbagSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getTotalNoBackbagSendGiftMoney()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getGiveCount()); - cellIdx++; - row.createCell(cellIdx).setCellValue(item.getGiveMoney()); - cellIdx++; - } - return workbook; - } - - @GetMapping("/listUsers") - public List listUsers(String erbanNoList) { - List users = flowTeamService.listUsersByErbanNo(erbanNoList); - - return users; - } - - @PostMapping("/refillUserInviteCode") - public BaseResponseVO refillInviteCode(@RequestBody Users user) { - adminLogService.insertLog(getAdminId(), getClass().getCanonicalName(), "refillInviteCode", "params===>>user:" + JSON.toJSONString(user)); - flowTeamService.refillUserInviteCode(user); - - return new BaseResponseVO(BusiStatus.SUCCESS); - } - - /** - * 初始化用户与引流小组成员的邀请绑定关系 - * - * @return - */ - @GetMapping("/init/member/inviteUserData") - public BaseResponseVO initFlowTeamMemberInviteUserData() { - flowTeamMemberInviteUserAdminService.initFlowTeamMemberInviteUserData(); - return new BaseResponseVO(BusiStatus.SUCCESS); - } - - @GetMapping("/listTeamByGroupId") - public BaseResponseVO> listTeamByGroupId(Long groupId) { - return new BaseResponseVO<>(flowTeamService.listTeamByGroupId(groupId)); - } - - @GetMapping("/listTeam") - public BaseResponseVO> listTeam() { - return new BaseResponseVO<>(flowTeamService.listTeam()); - } - - @GetMapping("/listMember") - public BaseResponseVO> listMember(String teamId) { - return new BaseResponseVO<>(flowTeamService.listTeamMember(teamId)); - } - - @GetMapping("/listMemberInviteCode") - public BaseResponseVO> listMemberInviteCode(Long memberId) { - return new BaseResponseVO<>(flowTeamService.listMemberInviteCode(memberId)); - } - -} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java deleted file mode 100644 index bff9fe490..000000000 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 文 件 名: FlowTeamGroupAdminController - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/1/13 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.controller.flowteam; - -import com.accompany.admin.base.Pagination; -import com.accompany.admin.controller.BaseController; -import com.accompany.admin.params.flowteam.FlowTeamEditInviteUserParams; -import com.accompany.admin.service.flowteam.FlowTeamGroupAdminService; -import com.accompany.admin.service.system.AdminLogService; -import com.accompany.admin.vo.flowteam.FlowTeamInviteUserVO; -import com.accompany.common.status.BusiStatus; -import com.accompany.core.vo.BaseResponseVO; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.io.IOException; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/1/13] - */ -@RestController -@RequestMapping("/admin/flowteam/group") -public class FlowTeamGroupAdminController extends BaseController { - - @Autowired - private FlowTeamGroupAdminService flowTeamGroupAdminService; - @Autowired - private AdminLogService adminLogService; - - - /** - * 分页获取团队列表 - * - * @param page - * @param pageSize - * @param groupName - * @return - */ - @GetMapping("/listGroupByPage") - public Pagination listGroupByPage(Integer page, Integer pageSize, String groupName) { - return flowTeamGroupAdminService.listGroupByPage(page, pageSize, groupName); - } - - @GetMapping("/saveOrUpdateGroup") - public BaseResponseVO saveOrUpdateGroup(Long groupId, String groupName) { - flowTeamGroupAdminService.saveOrUpdateGroup(groupId, groupName); - return new BaseResponseVO(); - } - - @GetMapping("/changeGroupStatus") - public BaseResponseVO changeGroupStatus(Long groupId, Integer status) { - flowTeamGroupAdminService.changeGroupStatus(groupId, status); - return new BaseResponseVO(); - } - - @GetMapping("/listGroupTeamByPage") - public Pagination listGroupTeamByPage(Integer page, Integer pageSize, Long groupId) { - return flowTeamGroupAdminService.listGroupTeamByPage(page, pageSize, groupId); - } - - @GetMapping("/saveOrUpdateTeam") - public BaseResponseVO saveOrUpdateTeam(Long groupId, String teamId, String teamName) { - flowTeamGroupAdminService.saveOrUpdateTeam(groupId, teamId, teamName); - return new BaseResponseVO(); - } - - @GetMapping("/delTeam") - public BaseResponseVO delTeam(String teamId) { - flowTeamGroupAdminService.delTeam(teamId); - int adminId = getAdminId(); - adminLogService.insertLog(adminId, getClass().getCanonicalName(), "delTeam", teamId); - return new BaseResponseVO(); - } - - /** - * 团队功能上线时初始化已有的团队与组信息 - * - * @return - */ -// @RequestMapping(value = "/initGroupAndTeam", method = RequestMethod.GET) - public BaseResponseVO initGroupAndTeam() throws IOException { - flowTeamGroupAdminService.initGroupAndTeam(); - return new BaseResponseVO(); - } - - @ApiOperation("获取邀请用户的引流团队信息") - @GetMapping("/listFlowTeamInfoWithUser") - public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { - return flowTeamGroupAdminService.listFlowTeamInfoWithUser(page, pageSize, erbanNo); - } - - @ApiOperation("编辑邀请用户的引流团队固化信息") - @PostMapping("/updateFlowTeamInviteInfo") - public BaseResponseVO updateFlowTeamInviteInfo(@RequestBody FlowTeamEditInviteUserParams params) { - int adminId = getAdminId(); - params.setOptUid((long) adminId); - flowTeamGroupAdminService.updateFlowTeamInviteInfo(params); - return new BaseResponseVO(BusiStatus.SUCCESS); - } - -} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamSettlementInfoController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamSettlementInfoController.java deleted file mode 100644 index e8c79f8f4..000000000 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamSettlementInfoController.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 文 件 名: FlowTeamSettlementInfoController - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2021/11/11 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.admin.controller.flowteam; - -import cn.hutool.core.text.StrBuilder; -import com.accompany.admin.base.Pagination; -import com.accompany.admin.controller.BaseController; -import com.accompany.admin.service.flowteam.FlowTeamService; -import com.accompany.admin.vo.flowteam.FlowTeamConfVO; -import com.accompany.business.service.flow.FlowTeamSettlementBizService; -import com.accompany.common.utils.DateTimeUtil; -import com.github.pagehelper.PageInfo; -import com.xuanyin.flowteam.dto.FlowTeamSettlementDetail; -import com.xuanyin.flowteam.model.FlowTeamSettlementInfo; -import io.swagger.annotations.ApiOperation; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.context.request.ServletWebRequest; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; - -/** - *
类描述: 引流小组结算controller - *
功能详细描述: - * - * @author H1 - * @date [2021/11/11] - */ -@RestController -@RequestMapping(value = "/admin/flowteamSettlement") -public class FlowTeamSettlementInfoController extends BaseController { - - @Autowired - private FlowTeamSettlementBizService flowTeamSettlementBizService; - @Autowired - private FlowTeamService flowTeamService; - - - /** - * 获取引流团队结算数据 - * - * @return - */ - @GetMapping("/listTeamSettlementData") - public Pagination listTeamSettlementData(Long groupId, String teamId) { - try { - List infos = flowTeamSettlementBizService.listTeamSettlementData(groupId, teamId); - return new Pagination<>(infos.size(), infos); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - return new Pagination<>(); - } - - /** - * 获取引流团队结算数据 - * - * @return - */ - @GetMapping("/listTeamSettlementDataDetail") - public Pagination listTeamSettlementDataDetail(String teamId, String month, String erbanNo, Integer page, Integer pageSize) { - PageInfo pageInfo = flowTeamSettlementBizService.listFlowTeamSettleDetail(teamId, month, erbanNo, page, pageSize); - return new Pagination(pageInfo); - } - - @RequestMapping(value = "/exportTeamSettlementDetails", method = RequestMethod.GET) - public void exportTeamStatisticDetails(HttpServletResponse response, String teamId, String month, String erbanNo) throws IOException { - PageInfo pageInfo = flowTeamSettlementBizService.listFlowTeamSettleDetail(teamId, month, erbanNo, 1, Integer.MAX_VALUE); - List details = pageInfo.getList(); - HSSFWorkbook workbook = buildTeamStatisticDetailsExcel(details); - Map teamMap = flowTeamService.getTeamMap(); - FlowTeamConfVO.TeamItem teamItem = teamMap.get(teamId); - // 设置下载时客户端Excel的名称 - String filename = new StrBuilder("_").append(month).append("累计充值明细.xls").toString(); - response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); - response.setCharacterEncoding("UTF-8"); - OutputStream ouputStream = response.getOutputStream(); - workbook.write(ouputStream); - ouputStream.flush(); - ouputStream.close(); - } - - private HSSFWorkbook buildTeamStatisticDetailsExcel(List details) { - HSSFWorkbook workbook = new HSSFWorkbook(); - HSSFSheet sheet = workbook.createSheet("邀请明细"); - - String[] headers = {"用户ID", "用户名称", "新增日期", "邀请码", "引入人", "充值时间", "充值金额"}; - HSSFRow header = sheet.createRow(0); - for (int i = 0; i < headers.length; i++) { - header.createCell(i).setCellValue(headers[i]); - } - int rowNum = 1; - for (FlowTeamSettlementDetail item : details) { - HSSFRow row = sheet.createRow(rowNum++); - row.createCell(0).setCellValue(item.getErbanNo()); - row.createCell(1).setCellValue(item.getNick()); - row.createCell(2).setCellValue(DateTimeUtil.convertDate(item.getCreateTime())); - row.createCell(3).setCellValue(item.getInviteCode()); - row.createCell(4).setCellValue(item.getInviteUserNick()); - row.createCell(5).setCellValue(DateTimeUtil.convertDate(item.getChargeTime())); - row.createCell(6).setCellValue(item.getAmount()); - } - return workbook; - } - - /** - * 导出 - * - * @param groupId - * @param teamId - * @param request - * @param response - */ - @ApiOperation("导出") - @GetMapping("export") - public void export(@RequestParam(value = "query-teamSelector", required = false) Long groupId, - @RequestParam(value = "teamSelector", required = false) String teamId, - HttpServletRequest request, - HttpServletResponse response) { - flowTeamSettlementBizService.export(groupId, teamId, new ServletWebRequest(request, response)); - } - -} diff --git a/accompany-admin/accompany-admin-web/src/main/resources/logback-spring.xml b/accompany-admin/accompany-admin-web/src/main/resources/logback-spring.xml index a14bf6656..fed36e9c5 100644 --- a/accompany-admin/accompany-admin-web/src/main/resources/logback-spring.xml +++ b/accompany-admin/accompany-admin-web/src/main/resources/logback-spring.xml @@ -113,7 +113,6 @@ - @@ -125,7 +124,6 @@ - diff --git a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/config/MybatisPlusConfig.java b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/config/MybatisPlusConfig.java index df6713bf6..1bd159e92 100644 --- a/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/config/MybatisPlusConfig.java +++ b/accompany-base/accompany-sharding/accompany-sharding-service/src/main/java/com/accompany/sharding/config/MybatisPlusConfig.java @@ -32,8 +32,7 @@ import java.util.Properties; @Import({DataSourceAutoConfiguration.class}) @MapperScan(value = {"com.accompany.business.mybatismapper", "com.accompany.community.mapper", "com.accompany.core.mybatismapper", "com.accompany.sms.mapper", "com.accompany.payment.mapper", - "com.accompany.admin.mapper", // "com.accompany.flowteam.admin.mapper", - "com.xuanyin.gamematch.mapper", "com.xuanyin.flowteam.mapper", + "com.accompany.admin.mapper", "com.accompany.sharding.mapper"}, sqlSessionFactoryRef="sqlSessionFactory") public class MybatisPlusConfig { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/invite/InviteCodeListener.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/invite/InviteCodeListener.java index 97f35e127..fa49fde6c 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/invite/InviteCodeListener.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/invite/InviteCodeListener.java @@ -5,8 +5,6 @@ import com.accompany.business.event.NewUserEvent; import com.accompany.business.service.invite.UserInviteCodeService; import com.accompany.core.model.Users; import com.alibaba.fastjson.JSONObject; -import com.xuanyin.flowteam.constant.FlowTeamConstant; -import com.xuanyin.flowteam.service.FlowTeamMemberInviteUserBizService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; @@ -19,8 +17,6 @@ public class InviteCodeListener implements ApplicationListener { @Autowired private UserInviteCodeService userInviteCodeService; - @Autowired - private FlowTeamMemberInviteUserBizService flowTeamMemberInviteUserBizService; @Async @Override @@ -31,10 +27,6 @@ public class InviteCodeListener implements ApplicationListener { Long uid = user.getUid(); // 初始化用户邀请码 userInviteCodeService.initUserInviteCode(uid); - - // 绑定与引流小组成员的邀请关系 - String inviteCode = user.getInviteCode(); - flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUser(inviteCode, uid, FlowTeamConstant.UserSourceType.SELF); } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamBaseService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamBaseService.java deleted file mode 100644 index 496784774..000000000 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamBaseService.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 文 件 名: FlowTeamBaseService - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2022/8/29 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.business.service.flow; - -import com.accompany.common.utils.DateTimeUtil; -import org.springframework.stereotype.Service; - -import java.util.Date; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2022/8/29] - */ -@Service -public class FlowTeamBaseService { - - /** - * 获取引流后台查询用户数据的限制时间 - * @return - */ - public Date getFlowTeamUserLimitQueryDate() { - // 限制查询时间为当前时间去年下个月的月初 - Date lastYear = DateTimeUtil.addYears(new Date(), -1); - return DateTimeUtil.getBeginTimeOfMonth(DateTimeUtil.addMonth(lastYear, 1)); - } -} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamSettlementBizService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamSettlementBizService.java deleted file mode 100644 index 3630103c4..000000000 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/flow/FlowTeamSettlementBizService.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * 文 件 名: FlowTeamSettlementService - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2021/11/11 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.business.service.flow; - -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; -import com.accompany.common.constant.Constant; -import com.accompany.common.redis.RedisKey; -import com.accompany.common.status.BusiStatus; -import com.accompany.common.utils.DateTimeUtil; -import com.accompany.common.utils.StringUtils; -import com.accompany.core.exception.ServiceException; -import com.accompany.core.service.common.JedisService; -import com.alibaba.excel.EasyExcel; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.xuanyin.flowteam.dto.FlowTeamSettlementDetail; -import com.xuanyin.flowteam.dto.FlowTeamSettlementInfoExportDto; -import com.xuanyin.flowteam.dto.FlowTeamSettlementInfoVo; -import com.xuanyin.flowteam.mapper.FlowTeamSettlementInfoMapper; -import com.xuanyin.flowteam.mapper.FlowTeamSettlementInfoMapperExpand; -import com.xuanyin.flowteam.model.FlowTeamInfo; -import com.xuanyin.flowteam.model.FlowTeamSettlementInfo; -import com.xuanyin.flowteam.service.FlowTeamInfoService; -import com.xuanyin.flowteam.service.FlowTeamSettlementInfoService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.web.context.request.ServletWebRequest; - -import java.net.URLEncoder; -import java.util.*; -import java.util.stream.Collectors; - -/** - *
类描述: - *
功能详细描述: - * - * @author H1 - * @date [2021/11/11] - */ -@Slf4j -@Service -public class FlowTeamSettlementBizService { - - @Autowired - private FlowTeamSettlementInfoMapper flowTeamSettlementInfoMapper; - @Autowired - private FlowTeamSettlementInfoMapperExpand flowTeamSettlementInfoMapperExpand; - @Autowired - private FlowTeamSettlementInfoService flowTeamSettlementInfoService; - @Autowired - private JedisService jedisService; - @Autowired - private FlowTeamInfoService flowTeamInfoService; - @Autowired - private FlowTeamBaseService flowTeamBaseService; - - public List listTeamSettlementData(String teamIds) { - if (StringUtils.isBlank(teamIds)) { - return Collections.emptyList(); - } - List teamIdList = Arrays.asList(teamIds.split(",")); - List flowTeamSettlementInfos = flowTeamSettlementInfoMapper.listFlowTeamSettlementInfoV2(teamIdList, null, null); - // 数据组合返回 - return buildResList(flowTeamSettlementInfos); - } - - public List listTeamSettlementData(Long groupId, String teamIds) { - List teamIdList; - if (groupId != null && StringUtils.isBlank(teamIds)) { - List groupTeams = flowTeamInfoService.listByGroupId(groupId); - if (CollectionUtils.isEmpty(groupTeams)) { - teamIdList = Collections.emptyList(); - } else { - teamIdList = groupTeams.stream().map(FlowTeamInfo::getTeamId).collect(Collectors.toList()); - } - } else { - teamIdList = Arrays.asList(teamIds.split(",")); - } - - List flowTeamSettlementInfos = - flowTeamSettlementInfoMapper.listFlowTeamSettlementInfoV2(teamIdList, null, null); - // 数据组合返回 - return buildResList(flowTeamSettlementInfos); - } - - /** - * 获取小组某月结算详情 - * - * @param teamId - * @param month - * @param erbanNo - * @return - */ - public PageInfo listFlowTeamSettleDetail(String teamId, String month, String erbanNo, Integer page, Integer pageSize) { - if (StringUtils.isBlank(teamId) || StringUtils.isBlank(month)) { - return new PageInfo<>(); - } - List teamIdList = Arrays.asList(teamId.split(",")); - page = page == null ? Constant.DEFAULT_PAGE : page; - pageSize = pageSize == null ? Constant.DEFAULT_PAGE_SIZE : pageSize; - PageHelper.startPage(page, pageSize); - List details = flowTeamSettlementInfoMapper.listFlowTeamSettleDetailV2(teamIdList, month, erbanNo); - PageInfo pages = new PageInfo<>(details); - return pages; - } - - - /** - * 获取小组某月结算详情V2 (按照用户进行分组统总) - * - * @param teamId - * @param month - * @param erbanNo - * @return - */ - public PageInfo listFlowTeamSettleDetailGroupByUser(String teamId, String month, String erbanNo, - Integer page, Integer pageSize) { - if (StringUtils.isBlank(teamId) || StringUtils.isBlank(month)) { - return new PageInfo<>(); - } - List teamIdList = Arrays.asList(teamId.split(",")); - page = page == null ? Constant.DEFAULT_PAGE : page; - pageSize = pageSize == null ? Constant.DEFAULT_PAGE_SIZE : pageSize; - PageHelper.startPage(page, pageSize); - Date limitQueryDate = flowTeamBaseService.getFlowTeamUserLimitQueryDate(); - List details = flowTeamSettlementInfoMapper.listFlowTeamSettleDetailV3(teamIdList, month, erbanNo, null); - return new PageInfo<>(details); - } - - - /** - * 固化引流小组往月的结算数据 - */ - private List initFlowTeamMonthSettlementData(String teamId) { - String cacheKey = RedisKey.flow_team_settlement_init_lock.getKey(teamId); - String lockKey = jedisService.lock(cacheKey, 3000, 10 * 1000); - if (StringUtils.isBlank(lockKey)) { - throw new ServiceException(BusiStatus.SERVERBUSY); - } - try { - List flowTeamSettlementInfos = flowTeamSettlementInfoMapper.listFlowTeamSettlementInfo(teamId, true, null); - if (CollectionUtils.isEmpty(flowTeamSettlementInfos)) { - return Collections.emptyList(); - } - flowTeamSettlementInfoService.saveBatch(flowTeamSettlementInfos); - return flowTeamSettlementInfos; - } finally { - jedisService.unlock(cacheKey, lockKey); - } - } - - private List buildResList(List settlementInfos) { - List resInfos = new ArrayList<>(); - // 获取当前时间前12个月 - ArrayList last12Months = new ArrayList<>(Arrays.asList(getLast12Months())); - List month = settlementInfos.stream().map(FlowTeamSettlementInfo::getMonth).collect(Collectors.toList()); - last12Months.removeAll(month); - List withoutDataMonth = handleWithoutDataMonth(last12Months); - resInfos.addAll(settlementInfos); - resInfos.addAll(withoutDataMonth); - resInfos = resInfos.stream().filter(v -> StrUtil.isNotEmpty(v.getMonth())).sorted(Comparator.comparing(FlowTeamSettlementInfo::getMonth).reversed()).collect(Collectors.toList()); - return resInfos; - } - - /** - * 处理没有数据的月份 - * - * @param withoutDataMonth - * @return - */ - private List handleWithoutDataMonth(List withoutDataMonth) { - List infos = new ArrayList<>(withoutDataMonth.size()); - for (String month : withoutDataMonth) { - FlowTeamSettlementInfo info = new FlowTeamSettlementInfo(); - info.setMonth(month); - info.setNewUserNum(0); - info.setNewUserChargeAmount(0.00); - info.setTotalChargeAmount(0.00); - info.setTotalChargeUserNum(0); - info.setTotalChargeNum(0); - infos.add(info); - } - return infos; - } - - /** - * 获取最近12个月 - */ - private static String[] getLast12Months() { - String[] last12Months = new String[12]; - - Calendar cal = Calendar.getInstance(); - - cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); //要先+1,才能把本月的算进去 - - for (int i = 0; i < 12; i++) { - cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); //逐次往前推1个月 - - last12Months[11 - i] = cal.get(Calendar.YEAR) + "-" + fillZero((cal.get(Calendar.MONTH) + 1)); - } - return last12Months; - } - - /** - * 格式化月份 - */ - private static String fillZero(int i) { - String month = ""; - if (i < 10) { - month = "0" + i; - } else { - month = String.valueOf(i); - } - return month; - } - - public void export(Long groupId, String teamId, ServletWebRequest servletWebRequest) { - List admins = flowTeamSettlementInfoMapperExpand.settlementExport(groupId, teamId); - List datas = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(admins)) { - for (FlowTeamSettlementInfoVo admin : admins) { - FlowTeamSettlementInfoExportDto dto = new FlowTeamSettlementInfoExportDto(); - BeanUtils.copyProperties(admin, dto); - Date signUpTime = admin.getSignUpTime(); - Date inviteTime = admin.getInviteTime(); - Date firstChargeTime = admin.getFirstChargeTime(); - Date firstGiveTime = admin.getFirstGiveTime(); - if (signUpTime != null) { - dto.setSignUpTimeStr(DateTimeUtil.convertDate(signUpTime)); - } - if (inviteTime != null) { - dto.setInviteTimeStr(DateTimeUtil.convertDate(inviteTime)); - } - if (firstChargeTime != null) { - dto.setFirstChargeTimeStr(DateTimeUtil.convertDate(firstChargeTime)); - } - if (firstGiveTime != null) { - dto.setFirstGiveTimeStr(DateTimeUtil.convertDate(firstGiveTime)); - } - datas.add(dto); - } - } - if (servletWebRequest.getResponse() != null) { - try { - //这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman - servletWebRequest.getResponse().setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - servletWebRequest.getResponse().setCharacterEncoding("utf-8"); - //这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 - String fileName = URLEncoder.encode("邀请用户", "UTF-8").replaceAll("\\+", "%20"); - servletWebRequest.getResponse().setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - EasyExcel.write(servletWebRequest.getResponse().getOutputStream(), FlowTeamSettlementInfoExportDto.class) - .sheet("邀请用户") - .doWrite(datas); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - } - } -} diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/BusinessApplication.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/BusinessApplication.java index c5a47fbc0..aaf7dc1ef 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/BusinessApplication.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/BusinessApplication.java @@ -21,11 +21,11 @@ import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCusto @SpringBootApplication @EnableTransactionManagement @EnableAspectJAutoProxy(proxyTargetClass = true) -@ComponentScan({"com.accompany","com.xuanyin"}) -@ServletComponentScan(value = {"com.accompany", "com.xuanyin"}) +@ComponentScan({"com.accompany"}) +@ServletComponentScan(value = {"com.accompany"}) @EnableAsync(proxyTargetClass = true) @EnableScheduling -@MapperScan({"com.accompany.*.mybatismapper","com.accompany.*.mapper", "com.xuanyin.*.mapper"}) +@MapperScan({"com.accompany.*.mybatismapper","com.accompany.*.mapper"}) @SpringBootConfiguration public class BusinessApplication extends SpringBootServletInitializer { diff --git a/accompany-business/accompany-business-web/src/main/resources/logback-spring.xml b/accompany-business/accompany-business-web/src/main/resources/logback-spring.xml index 5bb616a01..0d1757db8 100644 --- a/accompany-business/accompany-business-web/src/main/resources/logback-spring.xml +++ b/accompany-business/accompany-business-web/src/main/resources/logback-spring.xml @@ -83,7 +83,6 @@ - @@ -93,7 +92,6 @@ - diff --git a/accompany-oauth2/accompany-oauth2-web/src/main/java/com/accompany/oauth2/OAuth2Application.java b/accompany-oauth2/accompany-oauth2-web/src/main/java/com/accompany/oauth2/OAuth2Application.java index 913b5d172..9dbaeba2f 100644 --- a/accompany-oauth2/accompany-oauth2-web/src/main/java/com/accompany/oauth2/OAuth2Application.java +++ b/accompany-oauth2/accompany-oauth2-web/src/main/java/com/accompany/oauth2/OAuth2Application.java @@ -13,7 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableDynamicTp @SpringBootApplication @ComponentScan("com.accompany") -@ServletComponentScan(value = {"com.accompany", "com.xuanyin"}) +@ServletComponentScan(value = {"com.accompany"}) @EnableScheduling @EnableAsync(proxyTargetClass = true) @MapperScan({"com.accompany.*.mapper","com.accompany.*.mybatismapper"}) diff --git a/accompany-oauth2/accompany-oauth2-web/src/main/resources/logback-spring.xml b/accompany-oauth2/accompany-oauth2-web/src/main/resources/logback-spring.xml index 8a68e6308..396bf8eac 100644 --- a/accompany-oauth2/accompany-oauth2-web/src/main/resources/logback-spring.xml +++ b/accompany-oauth2/accompany-oauth2-web/src/main/resources/logback-spring.xml @@ -122,7 +122,6 @@ - diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/flowteam/SaveLastMonthSettlementDataTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/flowteam/SaveLastMonthSettlementDataTask.java deleted file mode 100644 index b88aa460e..000000000 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/flowteam/SaveLastMonthSettlementDataTask.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 文 件 名: SaveLastMonthDataTask - * 版 权: - * 描 述: <描述> - * 创建人: H1 - * 创建时间: 2021/11/17 - * 修改人: - * 修改内容: - * 修改时间: - */ -package com.accompany.scheduler.task.flowteam; - -import com.accompany.scheduler.base.BaseTask; -import com.xuanyin.flowteam.service.FlowTeamSettlementInfoService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.util.CollectionUtils; - -import java.util.List; - -/** - *
类描述: 固化上个月结算数据 - *
功能详细描述: - * - * @author H1 - * @date [2021/11/17] - */ -//@Component -@Slf4j -public class SaveLastMonthSettlementDataTask extends BaseTask { - - @Autowired - private FlowTeamSettlementInfoService flowTeamSettlementInfoService; - - /** - * 每月1号00:00:00执行 - */ - @Scheduled(cron = "0 0 0 1 * ?") - public void saveLastMonthSettlementData() { - log.info("start saveLastMonthSettlementData"); - // 获取存在往月固化数据的小组 - List teamIds = flowTeamSettlementInfoService.listExsitDataTeamId(); - if (CollectionUtils.isEmpty(teamIds)) { - return; - } - for (String teamId : teamIds) { - flowTeamSettlementInfoService.saveLastMonthSettlementDataAsync(teamId); - } - } -} diff --git a/accompany-scheduler/accompany-scheduler-web/src/main/java/com/accompany/scheduler/JobApplication.java b/accompany-scheduler/accompany-scheduler-web/src/main/java/com/accompany/scheduler/JobApplication.java index 55e26f4ce..730c34394 100644 --- a/accompany-scheduler/accompany-scheduler-web/src/main/java/com/accompany/scheduler/JobApplication.java +++ b/accompany-scheduler/accompany-scheduler-web/src/main/java/com/accompany/scheduler/JobApplication.java @@ -17,10 +17,10 @@ import org.springframework.scheduling.annotation.EnableScheduling; */ @EnableDynamicTp @SpringBootApplication -@ComponentScan({"com.accompany","com.xuanyin"}) +@ComponentScan({"com.accompany"}) @EnableScheduling @EnableAsync(proxyTargetClass = true) -@MapperScan({"com.accompany.*.mapper","com.accompany.*.mybatismapper", "com.xuanyin.*.mapper"}) +@MapperScan({"com.accompany.*.mapper","com.accompany.*.mybatismapper"}) @SpringBootConfiguration public class JobApplication {