From 2a518ff533fd0d06795070af5e0320408204ce17 Mon Sep 17 00:00:00 2001 From: easonzhu Date: Thu, 13 Feb 2025 23:09:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=9F=A5=E8=AF=A2=E9=9C=80?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 - .../upchina/common/entity/VideoTransFlow.java | 66 ++++++- .../common/interceptor/SessionInfo.java | 63 ++++++- .../interceptor/WebSocketAuthHandler.java | 15 +- .../interceptor/WebSocketSessionHandler.java | 13 +- .../com/upchina/common/vo/SearchResultVO.java | 34 ++-- .../admin/AdminGroupInfoController.java | 18 +- .../upchina/group/entity/GroupCollect.java | 4 +- .../group/query/QueryGroupCollectQuery.java | 41 +++++ .../group/service/GroupInfoService.java | 21 ++- .../com/upchina/group/vo/GroupCollectVO.java | 166 ++++++++++++++++++ 11 files changed, 395 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/upchina/group/query/QueryGroupCollectQuery.java create mode 100644 src/main/java/com/upchina/group/vo/GroupCollectVO.java diff --git a/pom.xml b/pom.xml index 5174811..6214777 100644 --- a/pom.xml +++ b/pom.xml @@ -110,11 +110,6 @@ ahocorasick 0.6.3 - - org.projectlombok - lombok - 1.18.12 - org.jsoup jsoup diff --git a/src/main/java/com/upchina/common/entity/VideoTransFlow.java b/src/main/java/com/upchina/common/entity/VideoTransFlow.java index e126954..56fa17c 100644 --- a/src/main/java/com/upchina/common/entity/VideoTransFlow.java +++ b/src/main/java/com/upchina/common/entity/VideoTransFlow.java @@ -1,11 +1,9 @@ package com.upchina.common.entity; import com.upchina.video.query.external.ProcedureStateChangeEventQuery; -import lombok.Data; import java.time.LocalDateTime; -@Data public class VideoTransFlow { private String fileId; @@ -37,4 +35,68 @@ public class VideoTransFlow { this.fileUrl = event.getFileUrl(); this.createTime = LocalDateTime.now(); } + + public String getFileId() { + return fileId; + } + + public void setFileId(String fileId) { + this.fileId = fileId; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Integer getErrCode() { + return errCode; + } + + public void setErrCode(Integer errCode) { + this.errCode = errCode; + } + + public String getFileUrl() { + return fileUrl; + } + + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + + public LocalDateTime getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } } diff --git a/src/main/java/com/upchina/common/interceptor/SessionInfo.java b/src/main/java/com/upchina/common/interceptor/SessionInfo.java index 78b7fd8..5adf27b 100644 --- a/src/main/java/com/upchina/common/interceptor/SessionInfo.java +++ b/src/main/java/com/upchina/common/interceptor/SessionInfo.java @@ -1,19 +1,70 @@ package com.upchina.common.interceptor; -import lombok.Builder; -import lombok.Data; - -@Data -@Builder public class SessionInfo { + private String userId; + private Integer productType; + private Integer productId; + private String sessionId; + private String sessionKey; public boolean isValid() { return userId != null && productType != null && productId != null && sessionId != null && sessionKey != null; } -} \ No newline at end of file + + public SessionInfo() { + } + + public SessionInfo(String userId, Integer productType, Integer productId, String sessionId, String sessionKey) { + this.userId = userId; + this.productType = productType; + this.productId = productId; + this.sessionId = sessionId; + this.sessionKey = sessionKey; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public Integer getProductType() { + return productType; + } + + public void setProductType(Integer productType) { + this.productType = productType; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public String getSessionId() { + return sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + public String getSessionKey() { + return sessionKey; + } + + public void setSessionKey(String sessionKey) { + this.sessionKey = sessionKey; + } +} \ No newline at end of file diff --git a/src/main/java/com/upchina/common/interceptor/WebSocketAuthHandler.java b/src/main/java/com/upchina/common/interceptor/WebSocketAuthHandler.java index 827188b..4c70fb0 100644 --- a/src/main/java/com/upchina/common/interceptor/WebSocketAuthHandler.java +++ b/src/main/java/com/upchina/common/interceptor/WebSocketAuthHandler.java @@ -8,7 +8,6 @@ import com.upchina.common.handler.BizException; import com.upchina.common.result.ResponseStatus; import com.upchina.common.vo.BackendUserVO; import com.upchina.common.vo.FrontUserVO; -import lombok.extern.slf4j.Slf4j; import org.springframework.messaging.Message; import org.springframework.messaging.simp.stomp.StompHeaderAccessor; import org.springframework.stereotype.Component; @@ -17,7 +16,6 @@ import javax.annotation.Resource; import java.util.Map; import java.util.Set; -@Slf4j @Component public class WebSocketAuthHandler { @@ -47,7 +45,11 @@ public class WebSocketAuthHandler { if (productId == null) { throw new BizException(ResponseStatus.PARM_ERROR, "产品ID错误" + productId); } - populateAttributes(attributes, userId, sessionId, productType, productId); + attributes.put("userId", userId); + attributes.put("sessionId", sessionId); + attributes.put("productType", productType); + attributes.put("productId", productId); + attributes.put("sessionKey", userId + "-" + sessionId); return message; } @@ -74,11 +76,4 @@ public class WebSocketAuthHandler { return StrUtil.isNotEmpty(value) ? Integer.parseInt(value) : null; } - private void populateAttributes(Map attributes, String userId, String sessionId, Integer productType, Integer productId) { - attributes.put("userId", userId); - attributes.put("sessionId", sessionId); - attributes.put("productType", productType); - attributes.put("productId", productId); - attributes.put("sessionKey", userId + "-" + sessionId); - } } \ No newline at end of file diff --git a/src/main/java/com/upchina/common/interceptor/WebSocketSessionHandler.java b/src/main/java/com/upchina/common/interceptor/WebSocketSessionHandler.java index 2adc5e8..bfacc15 100644 --- a/src/main/java/com/upchina/common/interceptor/WebSocketSessionHandler.java +++ b/src/main/java/com/upchina/common/interceptor/WebSocketSessionHandler.java @@ -64,13 +64,12 @@ public class WebSocketSessionHandler { } private SessionInfo extractSessionInfo(Map attributes) { - return SessionInfo.builder() - .userId((String) attributes.get("userId")) - .productType((Integer) attributes.get("productType")) - .productId((Integer)attributes.get("productId")) - .sessionId((String) attributes.get("sessionId")) - .sessionKey((String) attributes.get("sessionKey")) - .build(); + return new SessionInfo( + (String) attributes.get("userId"), + (Integer) attributes.get("productType"), + (Integer)attributes.get("productId"), + (String) attributes.get("sessionId"), + (String) attributes.get("sessionKey")); } private OnlineUser createOnlineUser(SessionInfo sessionInfo, FrontUserVO frontUser) { diff --git a/src/main/java/com/upchina/common/vo/SearchResultVO.java b/src/main/java/com/upchina/common/vo/SearchResultVO.java index cdbff96..3f4d8e5 100644 --- a/src/main/java/com/upchina/common/vo/SearchResultVO.java +++ b/src/main/java/com/upchina/common/vo/SearchResultVO.java @@ -2,11 +2,9 @@ package com.upchina.common.vo; import com.upchina.advisor.vo.AdvisorInfoAppVO; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; import java.time.LocalDateTime; -@Data public class SearchResultVO { /***************************公共字段**********************************/ @@ -94,6 +92,14 @@ public class SearchResultVO { this.advisorAvatar = advisorAvatar; } + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + public Integer getReadCount() { return readCount; } @@ -102,6 +108,14 @@ public class SearchResultVO { this.readCount = readCount; } + public LocalDateTime getPublishTime() { + return publishTime; + } + + public void setPublishTime(LocalDateTime publishTime) { + this.publishTime = publishTime; + } + public Integer getSubCount() { return subCount; } @@ -158,14 +172,6 @@ public class SearchResultVO { this.type = type; } - public LocalDateTime getPublishTime() { - return publishTime; - } - - public void setPublishTime(LocalDateTime publishTime) { - this.publishTime = publishTime; - } - public LocalDateTime getCreateTime() { return createTime; } @@ -173,4 +179,12 @@ public class SearchResultVO { public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } + + public double getTotalProfitRate() { + return totalProfitRate; + } + + public void setTotalProfitRate(double totalProfitRate) { + this.totalProfitRate = totalProfitRate; + } } diff --git a/src/main/java/com/upchina/group/controller/admin/AdminGroupInfoController.java b/src/main/java/com/upchina/group/controller/admin/AdminGroupInfoController.java index 4c83158..ea7f90f 100644 --- a/src/main/java/com/upchina/group/controller/admin/AdminGroupInfoController.java +++ b/src/main/java/com/upchina/group/controller/admin/AdminGroupInfoController.java @@ -7,12 +7,9 @@ import com.upchina.common.result.CommonResult; import com.upchina.common.result.Pager; import com.upchina.common.vo.BackendUserVO; import com.upchina.common.vo.InsertIdVO; -import com.upchina.group.query.ListGroupQuery; -import com.upchina.group.query.SaveGroupQuery; -import com.upchina.group.query.SetNoticeQuery; -import com.upchina.group.query.UpdateGroupQuery; -import com.upchina.group.query.UpdateGroupStatusQuery; +import com.upchina.group.query.*; import com.upchina.group.service.GroupInfoService; +import com.upchina.group.vo.GroupCollectVO; import com.upchina.group.vo.GroupVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -24,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; @Api(tags = "交易圈admin接口") @RestController @@ -82,4 +80,12 @@ public class AdminGroupInfoController { groupInfoService.setNotice(query, backendUserVO); return CommonResult.success(); } -} \ No newline at end of file + + @ApiOperation("后台查询交易圈统计") + @PostMapping("/admin/group/collect/query") + public CommonResult> queryCollect(@Validated @RequestBody @ApiParam(required = true) QueryGroupCollectQuery query, + @RequestAttribute(value = "backendUser", required = false) BackendUserVO backendUserVO) { + List list = groupInfoService.queryCollect(query, backendUserVO); + return CommonResult.success(list); + } +} \ No newline at end of file diff --git a/src/main/java/com/upchina/group/entity/GroupCollect.java b/src/main/java/com/upchina/group/entity/GroupCollect.java index 99e7fca..c91c6c2 100644 --- a/src/main/java/com/upchina/group/entity/GroupCollect.java +++ b/src/main/java/com/upchina/group/entity/GroupCollect.java @@ -1,8 +1,6 @@ package com.upchina.group.entity; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import java.time.LocalDate; @@ -22,7 +20,7 @@ public class GroupCollect implements Serializable { /** * ID */ - @TableId(value = "group_id", type = IdType.AUTO) + @TableField("group_id") private Integer groupId; /** diff --git a/src/main/java/com/upchina/group/query/QueryGroupCollectQuery.java b/src/main/java/com/upchina/group/query/QueryGroupCollectQuery.java new file mode 100644 index 0000000..ac5d0d2 --- /dev/null +++ b/src/main/java/com/upchina/group/query/QueryGroupCollectQuery.java @@ -0,0 +1,41 @@ +package com.upchina.group.query; + +import io.swagger.annotations.ApiModelProperty; + +import java.time.LocalDate; + +public class QueryGroupCollectQuery { + + @ApiModelProperty("交易圈id") + private Integer groupId; + + @ApiModelProperty("开始日期") + private LocalDate startDate; + + @ApiModelProperty("结束日期") + private LocalDate endDate; + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public LocalDate getStartDate() { + return startDate; + } + + public void setStartDate(LocalDate startDate) { + this.startDate = startDate; + } + + public LocalDate getEndDate() { + return endDate; + } + + public void setEndDate(LocalDate endDate) { + this.endDate = endDate; + } +} diff --git a/src/main/java/com/upchina/group/service/GroupInfoService.java b/src/main/java/com/upchina/group/service/GroupInfoService.java index b4c1efd..bb11bed 100644 --- a/src/main/java/com/upchina/group/service/GroupInfoService.java +++ b/src/main/java/com/upchina/group/service/GroupInfoService.java @@ -8,7 +8,6 @@ import com.hazelcast.map.IMap; import com.upchina.advisor.entity.AdvisorBasic; import com.upchina.advisor.service.AdvisorInfoService; import com.upchina.common.config.cache.CacheKey; -import com.upchina.common.constant.IsDisplay; import com.upchina.common.handler.BizException; import com.upchina.common.query.OnlyIdQuery; import com.upchina.common.result.AppPager; @@ -24,10 +23,13 @@ import com.upchina.common.vo.FrontUserVO; import com.upchina.common.vo.InsertIdVO; import com.upchina.course.service.PageService; import com.upchina.group.constant.GroupInfoStatus; +import com.upchina.group.entity.GroupCollect; import com.upchina.group.entity.GroupInfo; import com.upchina.group.entity.GroupSortEntity; +import com.upchina.group.mapper.GroupCollectMapper; import com.upchina.group.mapper.GroupInfoMapper; import com.upchina.group.query.*; +import com.upchina.group.vo.GroupCollectVO; import com.upchina.group.vo.GroupVO; import com.upchina.rbac.entity.UserDept; import com.upchina.rbac.service.AuthService; @@ -37,6 +39,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -74,6 +77,9 @@ public class GroupInfoService { @Resource private IMap groupCache; + @Resource + private GroupCollectMapper groupCollectMapper; + @Transactional(rollbackFor = Exception.class) public InsertIdVO save(SaveGroupQuery query, BackendUserVO backendUserVO) { sensitiveWordService.check(query.getName(), query.getRemark(), query.getDetail()); @@ -293,8 +299,19 @@ public class GroupInfoService { return advisorId; } + public List queryCollect(QueryGroupCollectQuery query, BackendUserVO backendUserVO) { + Integer groupId = query.getGroupId(); + LocalDate startDate = query.getStartDate(); + LocalDate endDate = query.getEndDate(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() + .eq(groupId != null && groupId != 0, GroupCollect::getGroupId, groupId) + .ge(startDate != null, GroupCollect::getDate, startDate) + .le(endDate != null, GroupCollect::getDate, endDate); + List list = groupCollectMapper.selectList(wrapper); + return list.stream().map(GroupCollectVO::new).collect(Collectors.toList()); + } + public void clearCache(Integer id) { groupCache.delete(CacheKey.GroupKey.GROUP_INFO + id); } - } \ No newline at end of file diff --git a/src/main/java/com/upchina/group/vo/GroupCollectVO.java b/src/main/java/com/upchina/group/vo/GroupCollectVO.java new file mode 100644 index 0000000..8a75d9b --- /dev/null +++ b/src/main/java/com/upchina/group/vo/GroupCollectVO.java @@ -0,0 +1,166 @@ +package com.upchina.group.vo; + +import com.upchina.group.entity.GroupCollect; +import io.swagger.annotations.ApiModelProperty; + +import java.time.LocalDate; + +public class GroupCollectVO { + + @ApiModelProperty("交易圈ID") + private Integer groupId; + + @ApiModelProperty("日期") + private LocalDate date; + + @ApiModelProperty("总成员数") + private Integer totalMembers; + + @ApiModelProperty("访问成员数") + private Integer visitedMembers; + + @ApiModelProperty("新增成员数") + private Integer newMembers; + + @ApiModelProperty("发互动成员数") + private Integer interactionMembers; + + @ApiModelProperty("发私聊成员数") + private Integer privateChatMembers; + + @ApiModelProperty("投顾发布互动数") + private Integer advisorGroupContent; + + @ApiModelProperty("助教发布互动数") + private Integer assistantGroupContent; + + @ApiModelProperty("用户发布互动数") + private Integer customerGroupContent; + + @ApiModelProperty("投顾发布私聊数") + private Integer advisorPrivateContent; + + @ApiModelProperty("助教发布私聊数") + private Integer assistantPrivateContent; + + @ApiModelProperty("用户发布私聊数") + private Integer customerPrivateContent; + + public GroupCollectVO(GroupCollect collect) { + this.groupId = collect.getGroupId(); + this.date = collect.getDate(); + this.totalMembers = collect.getTotalMembers(); + this.visitedMembers = collect.getVisitedMembers(); + this.newMembers = collect.getNewMembers(); + this.interactionMembers = collect.getInteractionMembers(); + this.privateChatMembers = collect.getPrivateChatMembers(); + this.advisorGroupContent = collect.getAdvisorGroupContent(); + this.assistantGroupContent = collect.getAssistantGroupContent(); + this.customerGroupContent = collect.getCustomerGroupContent(); + this.advisorPrivateContent = collect.getAdvisorPrivateContent(); + } + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public LocalDate getDate() { + return date; + } + + public void setDate(LocalDate date) { + this.date = date; + } + + public Integer getTotalMembers() { + return totalMembers; + } + + public void setTotalMembers(Integer totalMembers) { + this.totalMembers = totalMembers; + } + + public Integer getVisitedMembers() { + return visitedMembers; + } + + public void setVisitedMembers(Integer visitedMembers) { + this.visitedMembers = visitedMembers; + } + + public Integer getNewMembers() { + return newMembers; + } + + public void setNewMembers(Integer newMembers) { + this.newMembers = newMembers; + } + + public Integer getInteractionMembers() { + return interactionMembers; + } + + public void setInteractionMembers(Integer interactionMembers) { + this.interactionMembers = interactionMembers; + } + + public Integer getPrivateChatMembers() { + return privateChatMembers; + } + + public void setPrivateChatMembers(Integer privateChatMembers) { + this.privateChatMembers = privateChatMembers; + } + + public Integer getAdvisorGroupContent() { + return advisorGroupContent; + } + + public void setAdvisorGroupContent(Integer advisorGroupContent) { + this.advisorGroupContent = advisorGroupContent; + } + + public Integer getAssistantGroupContent() { + return assistantGroupContent; + } + + public void setAssistantGroupContent(Integer assistantGroupContent) { + this.assistantGroupContent = assistantGroupContent; + } + + public Integer getCustomerGroupContent() { + return customerGroupContent; + } + + public void setCustomerGroupContent(Integer customerGroupContent) { + this.customerGroupContent = customerGroupContent; + } + + public Integer getAdvisorPrivateContent() { + return advisorPrivateContent; + } + + public void setAdvisorPrivateContent(Integer advisorPrivateContent) { + this.advisorPrivateContent = advisorPrivateContent; + } + + public Integer getAssistantPrivateContent() { + return assistantPrivateContent; + } + + public void setAssistantPrivateContent(Integer assistantPrivateContent) { + this.assistantPrivateContent = assistantPrivateContent; + } + + public Integer getCustomerPrivateContent() { + return customerPrivateContent; + } + + public void setCustomerPrivateContent(Integer customerPrivateContent) { + this.customerPrivateContent = customerPrivateContent; + } +}