统计查询需求
This commit is contained in:
parent
595225168d
commit
2a518ff533
5
pom.xml
5
pom.xml
@ -110,11 +110,6 @@
|
||||
<artifactId>ahocorasick</artifactId>
|
||||
<version>0.6.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.12</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jsoup</groupId>
|
||||
<artifactId>jsoup</artifactId>
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -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<String, Object> 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);
|
||||
}
|
||||
}
|
||||
@ -64,13 +64,12 @@ public class WebSocketSessionHandler {
|
||||
}
|
||||
|
||||
private SessionInfo extractSessionInfo(Map<String, Object> 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) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ApiOperation("后台查询交易圈统计")
|
||||
@PostMapping("/admin/group/collect/query")
|
||||
public CommonResult<List<GroupCollectVO>> queryCollect(@Validated @RequestBody @ApiParam(required = true) QueryGroupCollectQuery query,
|
||||
@RequestAttribute(value = "backendUser", required = false) BackendUserVO backendUserVO) {
|
||||
List<GroupCollectVO> list = groupInfoService.queryCollect(query, backendUserVO);
|
||||
return CommonResult.success(list);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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<String, Object> 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<GroupCollectVO> queryCollect(QueryGroupCollectQuery query, BackendUserVO backendUserVO) {
|
||||
Integer groupId = query.getGroupId();
|
||||
LocalDate startDate = query.getStartDate();
|
||||
LocalDate endDate = query.getEndDate();
|
||||
LambdaQueryWrapper<GroupCollect> wrapper = Wrappers.<GroupCollect>lambdaQuery()
|
||||
.eq(groupId != null && groupId != 0, GroupCollect::getGroupId, groupId)
|
||||
.ge(startDate != null, GroupCollect::getDate, startDate)
|
||||
.le(endDate != null, GroupCollect::getDate, endDate);
|
||||
List<GroupCollect> 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);
|
||||
}
|
||||
|
||||
}
|
||||
166
src/main/java/com/upchina/group/vo/GroupCollectVO.java
Normal file
166
src/main/java/com/upchina/group/vo/GroupCollectVO.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user