orderList = appOrderMapper.selectList(wrapper);
return orderList.stream()
- .collect(Collectors.groupingBy(order -> order.getUserId().toString(),
+ .collect(Collectors.groupingBy(order -> order.getUserId(),
Collectors.mapping(AppOrder::getProductName, Collectors.toList())));
}
diff --git a/src/main/java/com/syzb/common/config/cache/HazelcastConfiguration.java b/src/main/java/com/syzb/common/config/cache/HazelcastConfiguration.java
index 126d834..a3e0d04 100644
--- a/src/main/java/com/syzb/common/config/cache/HazelcastConfiguration.java
+++ b/src/main/java/com/syzb/common/config/cache/HazelcastConfiguration.java
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import javax.annotation.PreDestroy;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -105,4 +106,9 @@ public class HazelcastConfiguration {
instance.getMap(CacheKey.GROUP_ONLINE_USER).addIndex(groupIndexConfig);
}
+ @PreDestroy
+ public void destroy() {
+ hazelcastInstance().shutdown();
+ }
+
}
diff --git a/src/main/java/com/syzb/common/config/mybatis/Save.java b/src/main/java/com/syzb/common/config/mybatis/Save.java
index 1531125..4169bdd 100644
--- a/src/main/java/com/syzb/common/config/mybatis/Save.java
+++ b/src/main/java/com/syzb/common/config/mybatis/Save.java
@@ -17,7 +17,7 @@ import java.util.stream.Collectors;
public class Save extends AbstractMethod {
- public static String saveSql = "";
+ public static final String saveSql = "";
public static final String methodName = "save";
diff --git a/src/main/java/com/syzb/common/constant/ClientType.java b/src/main/java/com/syzb/common/constant/ClientType.java
index 1dd50f8..5668f3f 100644
--- a/src/main/java/com/syzb/common/constant/ClientType.java
+++ b/src/main/java/com/syzb/common/constant/ClientType.java
@@ -9,7 +9,7 @@ public enum ClientType {
private final int value;
- private ClientType(int value) {
+ ClientType(int value) {
this.value = value;
}
@@ -17,7 +17,6 @@ public enum ClientType {
return this.value;
}
- @Override
public String toString() {
return this.name() + ":" + this.value;
}
diff --git a/src/main/java/com/syzb/common/entity/ScheduleLog.java b/src/main/java/com/syzb/common/entity/ScheduleLog.java
index addc73f..a4a2e47 100644
--- a/src/main/java/com/syzb/common/entity/ScheduleLog.java
+++ b/src/main/java/com/syzb/common/entity/ScheduleLog.java
@@ -88,7 +88,7 @@ public class ScheduleLog implements Serializable {
return log;
}
- public static ScheduleLog success(int id, String ext) {
+ public static ScheduleLog success(Integer id, String ext) {
ScheduleLog log = new ScheduleLog();
log.setId(id);
log.setEndTime(LocalDateTime.now());
@@ -99,7 +99,7 @@ public class ScheduleLog implements Serializable {
return log;
}
- public static ScheduleLog error(int id, String error) {
+ public static ScheduleLog error(Integer id, String error) {
ScheduleLog log = new ScheduleLog();
log.setId(id);
log.setEndTime(LocalDateTime.now());
diff --git a/src/main/java/com/syzb/common/interceptor/WebSocketAuthChannelInterceptor.java b/src/main/java/com/syzb/common/interceptor/WebSocketAuthChannelInterceptor.java
index 8c0a067..5364a78 100644
--- a/src/main/java/com/syzb/common/interceptor/WebSocketAuthChannelInterceptor.java
+++ b/src/main/java/com/syzb/common/interceptor/WebSocketAuthChannelInterceptor.java
@@ -11,6 +11,7 @@ import org.springframework.messaging.support.ChannelInterceptor;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
/**
*
@@ -45,7 +46,7 @@ public class WebSocketAuthChannelInterceptor implements ChannelInterceptor {
}
@Override
- public void postSend(Message> message, MessageChannel channel, boolean sent) {
+ public void postSend(@NotNull Message> message, @NotNull MessageChannel channel, boolean sent) {
StompHeaderAccessor header = StompHeaderAccessor.wrap(message);
if (!isValidHeader(header)) {
return;
diff --git a/src/main/java/com/syzb/common/interceptor/WebSocketAuthHandler.java b/src/main/java/com/syzb/common/interceptor/WebSocketAuthHandler.java
index 85482b8..731f3c5 100644
--- a/src/main/java/com/syzb/common/interceptor/WebSocketAuthHandler.java
+++ b/src/main/java/com/syzb/common/interceptor/WebSocketAuthHandler.java
@@ -22,7 +22,7 @@ public class WebSocketAuthHandler {
@Resource
private AuthFilter authFilter;
- private Set VALID_PRODUCT_TYPES = ImmutableSet.of(ProductType.VIDEO_SINGLE.value, ProductType.GROUP.value);
+ private final Set VALID_PRODUCT_TYPES = ImmutableSet.of(ProductType.VIDEO_SINGLE.value, ProductType.GROUP.value);
public Message> handleConnect(Message> message, StompHeaderAccessor header) {
Map attributes = header.getSessionAttributes();
@@ -43,7 +43,7 @@ public class WebSocketAuthHandler {
}
Integer productId = getInteger(header, "productId");
if (productId == null) {
- throw new BizException(ResponseStatus.PARM_ERROR, "产品ID错误" + productId);
+ throw new BizException(ResponseStatus.PARM_ERROR, "产品ID错误");
}
attributes.put("userId", userId);
attributes.put("sessionId", sessionId);
diff --git a/src/main/java/com/syzb/common/result/ResponseStatus.java b/src/main/java/com/syzb/common/result/ResponseStatus.java
index aac4d14..96c7640 100644
--- a/src/main/java/com/syzb/common/result/ResponseStatus.java
+++ b/src/main/java/com/syzb/common/result/ResponseStatus.java
@@ -94,48 +94,31 @@ public enum ResponseStatus {
BUILT_IN_CAN_NOT_MODIFY(4018, "内置角色不可修改或删除"),
VIEW_COLUMN_UPDATE_ERROR(4019, "该栏目已被观点、观点包使用,不得隐藏"),
COURSE_COLUMN_UPDATE_ERROR(4020, "该栏目已被课程、课程包使用,不得隐藏"),
-
TRANSACTION_NOT_COMPLETED(4034, "该标的已有持仓,请清仓后再调入"),
-
TAG_IS_USING_ERROR(4035, "该标签已被使用,无法下架/删除"),
-
STRATEGY_NAME_EXIST_ERROR(4036, "定价策略名称重复"),
-
PACKAGE_SUB_PRODUCT_EXIST_ERROR(4037, "加入套餐的产品,不允许下架,请先下架套餐产品"),
-
VIEW_NOT_SOLD_OUT(4038, "观点在观点包中需先下架观点包"),
-
BE_USED_NOT_MODIFY(4039, "被引用角色不可删除"),
-
SIM_ACCOUNT_NOT_REGISTERED_ERROR(4040, "未注册模拟交易帐号,禁止下单或撤单"),
ILLEGAL_OPERATION(4041, "非法操作"),
TY_NOT_OPEN_ERROR(4042, "全局提拥支付未开启,不允许提交"),
TY_DEPT_NOT_OPEN_ERROR(4043, "营业部提拥支付未开启,不允许提交"),
-
COURSE_IS_IN_PACKAGE(4017, "课程已在其他课程包中"),
COURSE_NOT_SOLD_OUT(4038, "课程在课程包中需先下架课程包"),
COURSE_PACKAGE_NAME_EXIST(6010, "课程包名称已存在"),
-
AUDIT_LEFT_PRODUCT_ERROR(4055, "不能审核自己或者自己团队创建的产品"),
-
DATA_DELETED_ERROR(4056, "数据已删除,禁止操作"),
-
REMOVE_BLACK_USER_ERROR(4057, "非禁言用户,无须解除禁言"),
-
COMMENT_BLACK_USER_ERROR(4058, "禁言用户,禁止发言"),
-
DECRYPT_ERROR(4059, "AES解密失败"),
-
SECRET_ACQUIRE_FAIL(4060, "获取加密推送地址失败"),
MESSAGE_PERMISSION_ERROR(4061, "消息权限错误"),
/*********************内部系统***********************/
SYS_BUSY(5000, "系统忙,请稍后重试"),
-
MICRO_APP_BUSY(5001, "服务忙,请稍后重试"),
-
HYSTRIX_FALLBACK(5002, "接口调用失败,被熔断,请稍后重试"),
-
UNSUPPORTED_ENCODING(5003, "不支持的编码异常"),
DB_SAVE_ERROR(5004, "数据库保存异常"),
MESSAGE_SEND_ERROR(5005, "短信发送失败,请稍后重试"),
@@ -151,11 +134,8 @@ public enum ResponseStatus {
STAFF_NO_EXIST(6009, "登录账号或者UP号已存在"),
VIEW_PACKAGE_NAME_EXIST(6010, "观点包名称已存在"),
DEPT_EXIST(6011, "用户部门已存在"),
-
COUNTER_ERROR(6011, "柜台接口异常"),
-
TENCENT_ERROR(6012, "腾讯云任务流接口异常"),
-
NOT_PRODUCT_AUTH(6013, "无产品权限"),
TOKEN_DATA_ERROR(6014, "token错误,请重新登录"),
;
diff --git a/src/main/java/com/syzb/common/util/IPUtil.java b/src/main/java/com/syzb/common/util/IPUtil.java
index 6a6e903..60eefee 100644
--- a/src/main/java/com/syzb/common/util/IPUtil.java
+++ b/src/main/java/com/syzb/common/util/IPUtil.java
@@ -15,16 +15,16 @@ public class IPUtil {
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if ("0:0:0:0:0:0:0:1".equals(ip)) {
diff --git a/src/main/java/com/syzb/common/util/RsaUtil.java b/src/main/java/com/syzb/common/util/RsaUtil.java
index 68c91d7..75b575f 100644
--- a/src/main/java/com/syzb/common/util/RsaUtil.java
+++ b/src/main/java/com/syzb/common/util/RsaUtil.java
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import javax.crypto.Cipher;
import java.io.ByteArrayOutputStream;
+import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
@@ -106,7 +107,7 @@ public class RsaUtil {
offSet = i * MAX_DECRYPT_BLOCK;
}
out.close();
- return out.toString("UTF-8");
+ return out.toString(StandardCharsets.UTF_8);
} catch (Exception exception) {
LoggerUtil.info("RsaUtil.priKeyDecryption异常:" + ExceptionUtils.getStackTrace(exception));
return null;
diff --git a/src/main/java/com/syzb/common/util/WebServerInfo.java b/src/main/java/com/syzb/common/util/WebServerInfo.java
index 2c8ec4a..1c1a808 100644
--- a/src/main/java/com/syzb/common/util/WebServerInfo.java
+++ b/src/main/java/com/syzb/common/util/WebServerInfo.java
@@ -1,5 +1,7 @@
package com.syzb.common.util;
+import cn.hutool.core.exceptions.ExceptionUtil;
+import com.syzb.common.util.logger.LoggerUtil;
import org.springframework.boot.web.context.WebServerApplicationContext;
import org.springframework.stereotype.Component;
@@ -19,7 +21,7 @@ public class WebServerInfo {
InetAddress inetAddress = InetAddress.getLocalHost();
return inetAddress.getHostAddress();
} catch (UnknownHostException e) {
- e.printStackTrace();
+ LoggerUtil.error(ExceptionUtil.stacktraceToString(e));
}
return "0.0.0.0";
}
diff --git a/src/main/java/com/syzb/common/util/logger/LoggerAgent.java b/src/main/java/com/syzb/common/util/logger/LoggerAgent.java
index acc61bd..c3aea02 100644
--- a/src/main/java/com/syzb/common/util/logger/LoggerAgent.java
+++ b/src/main/java/com/syzb/common/util/logger/LoggerAgent.java
@@ -9,7 +9,7 @@ import java.util.stream.Collectors;
public class LoggerAgent {
- private Logger logger;
+ private final Logger logger;
private LoggerAgent(String name) {
logger = LoggerFactory.getLogger(name);
diff --git a/src/main/java/com/syzb/course/controller/pc/PcCourseController.java b/src/main/java/com/syzb/course/controller/pc/PcCourseController.java
deleted file mode 100644
index 9f0ab2d..0000000
--- a/src/main/java/com/syzb/course/controller/pc/PcCourseController.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.syzb.course.controller.pc;
-
-import com.syzb.common.query.OnlyIdQuery;
-import com.syzb.common.result.CommonResult;
-import com.syzb.common.vo.FrontUserVO;
-import com.syzb.course.service.CoursePcService;
-import com.syzb.course.vo.CourseContentVO;
-import com.syzb.course.vo.CourseVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestAttribute;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-@Api(tags = "课程pc接口")
-@RestController
-public class PcCourseController {
-
- @Resource
- private CoursePcService coursePcService;
-
- @ApiOperation("pc查询课程详情")
- @PostMapping("/pc/course/info/get")
- public CommonResult get(@Validated @RequestBody @ApiParam(required = true) OnlyIdQuery query,
- @RequestAttribute(value = "frontUser", required = false) FrontUserVO frontUserVO) {
- CourseVO vo = coursePcService.getForPc(query, frontUserVO);
- return CommonResult.success(vo);
- }
-
- @ApiOperation("pc查询课程内容列表")
- @PostMapping("/pc/course/content/list")
- public CommonResult> listContent(@Validated @RequestBody @ApiParam(required = true) OnlyIdQuery query,
- @RequestAttribute(value = "frontUser", required = false) FrontUserVO frontUserVO) {
- List list = coursePcService.listContentForPc(query, frontUserVO);
- return CommonResult.success(list);
- }
-
- @ApiOperation("pc更多系列课查询列表")
- @PostMapping("/pc/course/info/list")
- public CommonResult> list(@Validated @RequestBody @ApiParam(required = true) OnlyIdQuery query,
- @RequestAttribute(value = "frontUser", required = false) FrontUserVO frontUserVO) {
- List list = coursePcService.listForPc(query, frontUserVO);
- return CommonResult.success(list);
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/syzb/course/service/CoursePcService.java b/src/main/java/com/syzb/course/service/CoursePcService.java
deleted file mode 100644
index 5ba54dc..0000000
--- a/src/main/java/com/syzb/course/service/CoursePcService.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.syzb.course.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.hazelcast.map.IMap;
-import com.syzb.common.config.cache.CacheKey;
-import com.syzb.common.constant.IsDisplay;
-import com.syzb.common.query.OnlyIdQuery;
-import com.syzb.common.service.CacheService;
-import com.syzb.common.vo.FrontUserVO;
-import com.syzb.course.constant.CourseStatus;
-import com.syzb.course.entity.Course;
-import com.syzb.course.mapper.CourseMapper;
-import com.syzb.course.vo.CourseContentVO;
-import com.syzb.course.vo.CourseVO;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.stream.Collectors;
-
-// 课程PC端Service
-@Service
-public class CoursePcService {
-
- @Resource
- private CourseMapper courseMapper;
-
- @Resource
- private CourseService courseService;
-
- @Resource
- private CacheService cacheService;
-
- @Resource
- private IMap courseCache;
-
- @Value("${pc.courseRecommendSize}")
- private Integer courseRecommendSize;
-
- @Value("${pc.url.liveUrl}")
- private String liveUrl;
-
- public CourseVO getForPc(OnlyIdQuery query, FrontUserVO frontUserVO) {
- return courseService.getForApp(query, null);
- }
-
- public List listContentForPc(OnlyIdQuery query, FrontUserVO frontUserVO) {
- List list = courseService.listContentForApp(query, null);
- return list.stream().filter(courseContentVO -> courseContentVO.getVideo() != null)
- .peek(content -> content.setPcUrl(String.format(liveUrl, content.getContentId(), content.getCourseId())))
- .collect(Collectors.toList());
- }
-
- public List listForPc(OnlyIdQuery query, FrontUserVO frontUserVO) {
- Integer excludeId = query.getId();
- List ids = cacheService.get(courseCache, CacheKey.CourseKey.PC_COURSE_LIST + query.getId(), () -> {
- LambdaQueryWrapper wrapper = Wrappers.lambdaQuery()
- .select(Course::getId)
- .eq(Course::getStatus, CourseStatus.AUDITED.value)
- .eq(Course::getIsDisplay, IsDisplay.YES.value)
- .orderByDesc(Course::getIsRecommend, Course::getAuditTime)
- .last("limit " + (courseRecommendSize + 1));
- List list = courseMapper.selectList(wrapper);
- List idList = list.stream().map(Course::getId).collect(Collectors.toList());
- idList.remove(excludeId);
- if (idList.size() > courseRecommendSize) {
- idList.remove(idList.size() - 1);
- }
- return idList;
- });
- return ids.stream().map(id -> getForPc(new OnlyIdQuery(id), null)).collect(Collectors.toList());
- }
-}
diff --git a/src/main/java/com/syzb/crm/query/ProductQuery.java b/src/main/java/com/syzb/crm/query/ProductQuery.java
deleted file mode 100644
index 334117b..0000000
--- a/src/main/java/com/syzb/crm/query/ProductQuery.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package com.syzb.crm.query;
-
-import io.swagger.annotations.ApiModelProperty;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-public class ProductQuery {
-
- @ApiModelProperty(value = "订单产品id", name = "authorityId")
- private Integer authorityId;
-
- @ApiModelProperty(value = "产品id", name = "productId")
- private Integer productId;
-
- @ApiModelProperty(value = "产品类型:1观点包 2单篇观点 3视频 5交易圈 6图文直播间 7组合 8锦囊", name = "productType")
- private Integer productType;
-
- @ApiModelProperty(value = "产品名称", name = "productName")
- private String productName;
-
- @ApiModelProperty(value = "价格策略id,为null代表免费但需要签约的产品", name = "strategyId")
- private Integer strategyId;
-
- @ApiModelProperty(value = "风险等级:1低风险 2中低风险 3中风险 4中高风险 5高风险", name = "riskLevel")
- private Integer riskLevel;
-
- @ApiModelProperty(value = "投顾id", name = "advisorId")
- private Integer advisorId;
-
- @ApiModelProperty(value = "投顾名称", name = "tgName")
- private String tgName;
-
- @ApiModelProperty(value = "投顾营业部id", name = "orgId")
- private String orgId;
-
- @ApiModelProperty(value = "子产品权限号,只有套餐产品需要传", name = "authIds")
- private List authIds;
-
- @ApiModelProperty(value = "是否走适当性:0否 1是", name = "iAppropriateness")
- private Integer iAppropriateness = 1;
-
- @ApiModelProperty("柜台整体提拥费率编码")
- private String supportCode;
-
- @ApiModelProperty("柜台整体提拥费率")
- private BigDecimal supportRate;
-
- @ApiModelProperty("签约门槛(元)")
- private BigDecimal signThreshold;
-
- public ProductQuery() {
- }
-
- public Integer getProductId() {
- return productId;
- }
-
- public void setProductId(Integer productId) {
- this.productId = productId;
- }
-
- public Integer getProductType() {
- return productType;
- }
-
- public void setProductType(Integer productType) {
- this.productType = productType;
- }
-
- public String getProductName() {
- return productName;
- }
-
- public void setProductName(String productName) {
- this.productName = productName;
- }
-
- public Integer getStrategyId() {
- return strategyId;
- }
-
- public void setStrategyId(Integer strategyId) {
- this.strategyId = strategyId;
- }
-
- public Integer getRiskLevel() {
- return riskLevel;
- }
-
- public void setRiskLevel(Integer riskLevel) {
- this.riskLevel = riskLevel;
- }
-
- public Integer getAdvisorId() {
- return advisorId;
- }
-
- public void setAdvisorId(Integer advisorId) {
- this.advisorId = advisorId;
- }
-
- public String getTgName() {
- return tgName;
- }
-
- public void setTgName(String tgName) {
- this.tgName = tgName;
- }
-
- public String getOrgId() {
- return orgId;
- }
-
- public void setOrgId(String orgId) {
- this.orgId = orgId;
- }
-
- public List getAuthIds() {
- return authIds;
- }
-
- public void setAuthIds(List authIds) {
- this.authIds = authIds;
- }
-
- public Integer getiAppropriateness() {
- return iAppropriateness;
- }
-
- public void setiAppropriateness(Integer iAppropriateness) {
- this.iAppropriateness = iAppropriateness;
- }
-
- public String getSupportCode() {
- return supportCode;
- }
-
- public void setSupportCode(String supportCode) {
- this.supportCode = supportCode;
- }
-
- public BigDecimal getSupportRate() {
- return supportRate;
- }
-
- public void setSupportRate(BigDecimal supportRate) {
- this.supportRate = supportRate;
- }
-
- public BigDecimal getSignThreshold() {
- return signThreshold;
- }
-
- public void setSignThreshold(BigDecimal signThreshold) {
- this.signThreshold = signThreshold;
- }
-
- public Integer getAuthorityId() {
- return authorityId;
- }
-
- public void setAuthorityId(Integer authorityId) {
- this.authorityId = authorityId;
- }
-}
diff --git a/src/main/java/com/syzb/crm/service/ProductService.java b/src/main/java/com/syzb/crm/service/ProductService.java
deleted file mode 100644
index 4ebaeb1..0000000
--- a/src/main/java/com/syzb/crm/service/ProductService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.syzb.crm.service;
-
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class ProductService {
-
- public List