1
This commit is contained in:
89
src/main/java/cn/van/business/enums/GroupType.java
Normal file
89
src/main/java/cn/van/business/enums/GroupType.java
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
package cn.van.business.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Leo
|
||||||
|
* @version 1.0
|
||||||
|
* @create 2023/12/19 0019 上午 10:27
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public enum GroupType implements IEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型,1管理群,2评论群,3线报来源群,4线报推送群
|
||||||
|
* */
|
||||||
|
MANAGEMENT(1, "管理群"),
|
||||||
|
COMMENT(2, "评论群"),
|
||||||
|
LINE_REPORT_SOURCE(3, "线报来源群"),
|
||||||
|
LINE_REPORT_PUSH(4, "线报推送群");
|
||||||
|
private final int key;
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
GroupType(int key, String name) {
|
||||||
|
this.key = key;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GroupType get(int key) {
|
||||||
|
for (GroupType e : GroupType.values()) {
|
||||||
|
if (e.getKey() == key) {
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getName(Integer key) {
|
||||||
|
//if (Object.isNotEmpty(key)) {
|
||||||
|
GroupType[] items = GroupType.values();
|
||||||
|
for (GroupType item : items) {
|
||||||
|
if (item.getKey() == key) {
|
||||||
|
return item.getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, String> getKeyVlue() {
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
GroupType[] items = GroupType.values();
|
||||||
|
for (GroupType item : items) {
|
||||||
|
map.put(item.getKey() + "", item.getName());
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Map<String, Object>> getSelectItems() {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
|
||||||
|
GroupType[] items = GroupType.values();
|
||||||
|
for (GroupType item : items) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("label", item.getName());
|
||||||
|
map.put("value", item.getKey());
|
||||||
|
result.add(map);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@JsonValue
|
||||||
|
public Integer getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ import java.util.Map;
|
|||||||
* @create 2023/12/19 0019 下午 02:31
|
* @create 2023/12/19 0019 下午 02:31
|
||||||
* @description:
|
* @description:
|
||||||
*/
|
*/
|
||||||
public enum MsgTypeEnum implements IEnum {
|
public enum MsgType implements IEnum {
|
||||||
/**
|
/**
|
||||||
msgType :
|
msgType :
|
||||||
1|文本 3|图片 34|语音
|
1|文本 3|图片 34|语音
|
||||||
@@ -38,13 +38,13 @@ public enum MsgTypeEnum implements IEnum {
|
|||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
MsgTypeEnum(int key, String name) {
|
MsgType(int key, String name) {
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getName(Integer key) {
|
public static String getName(Integer key) {
|
||||||
for (MsgTypeEnum msgTypeEnum : MsgTypeEnum.values()) {
|
for (MsgType msgTypeEnum : MsgType.values()) {
|
||||||
if (msgTypeEnum.key == key) {
|
if (msgTypeEnum.key == key) {
|
||||||
return msgTypeEnum.name;
|
return msgTypeEnum.name;
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ public enum MsgTypeEnum implements IEnum {
|
|||||||
|
|
||||||
public static Map<String, String> getKeyVlue() {
|
public static Map<String, String> getKeyVlue() {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
for (MsgTypeEnum msgTypeEnum : MsgTypeEnum.values()) {
|
for (MsgType msgTypeEnum : MsgType.values()) {
|
||||||
map.put(msgTypeEnum.key + "", msgTypeEnum.name);
|
map.put(msgTypeEnum.key + "", msgTypeEnum.name);
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
@@ -62,7 +62,7 @@ public enum MsgTypeEnum implements IEnum {
|
|||||||
|
|
||||||
public static List<Map<String, Object>> getSelectItems() {
|
public static List<Map<String, Object>> getSelectItems() {
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
for (MsgTypeEnum msgTypeEnum : MsgTypeEnum.values()) {
|
for (MsgType msgTypeEnum : MsgType.values()) {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
map.put("key", msgTypeEnum.key);
|
map.put("key", msgTypeEnum.key);
|
||||||
map.put("value", msgTypeEnum.name);
|
map.put("value", msgTypeEnum.name);
|
||||||
@@ -71,8 +71,8 @@ public enum MsgTypeEnum implements IEnum {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsgTypeEnum get(int key) {
|
public static MsgType get(int key) {
|
||||||
for (MsgTypeEnum msgTypeEnum : MsgTypeEnum.values()) {
|
for (MsgType msgTypeEnum : MsgType.values()) {
|
||||||
if (msgTypeEnum.key == key) {
|
if (msgTypeEnum.key == key) {
|
||||||
return msgTypeEnum;
|
return msgTypeEnum;
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ import jakarta.validation.constraints.Size;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -18,7 +18,7 @@ public class XbMessage {
|
|||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
@Column(name = "create_date")
|
@Column(name = "create_date")
|
||||||
private LocalDate createDate;
|
private LocalDateTime createDate;
|
||||||
|
|
||||||
@Size(max = 100)
|
@Size(max = 100)
|
||||||
@Column(name = "skuid", length = 100)
|
@Column(name = "skuid", length = 100)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import jakarta.validation.constraints.Size;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -18,7 +18,7 @@ public class XbMessageItem {
|
|||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
@Column(name = "create_date")
|
@Column(name = "create_date")
|
||||||
private LocalDate createDate;
|
private LocalDateTime createDate;
|
||||||
|
|
||||||
@Size(max = 100)
|
@Size(max = 100)
|
||||||
@Column(name = "skuid", length = 100)
|
@Column(name = "skuid", length = 100)
|
||||||
|
|||||||
@@ -1446,7 +1446,7 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
XbMessage xbMessage = new XbMessage();
|
XbMessage xbMessage = new XbMessage();
|
||||||
xbMessage.setCreateDate(LocalDate.now());
|
xbMessage.setCreateDate(LocalDateTime.now());
|
||||||
xbMessage.setTipOriginalMessage(message);
|
xbMessage.setTipOriginalMessage(message);
|
||||||
xbMessage.setFromWxid(wxid);
|
xbMessage.setFromWxid(wxid);
|
||||||
String firstLine = message.split("\n")[0];
|
String firstLine = message.split("\n")[0];
|
||||||
@@ -1475,7 +1475,7 @@ public class JDUtil {
|
|||||||
} else {
|
} else {
|
||||||
// 商品信息
|
// 商品信息
|
||||||
XbMessageItem xbMessageItem = new XbMessageItem();
|
XbMessageItem xbMessageItem = new XbMessageItem();
|
||||||
xbMessageItem.setCreateDate(LocalDate.now());
|
xbMessageItem.setCreateDate(LocalDateTime.now());
|
||||||
xbMessageItem.setXbMessageId(String.valueOf(xbMessageId));
|
xbMessageItem.setXbMessageId(String.valueOf(xbMessageId));
|
||||||
xbMessageItem.setJsonQueryResult(JSONObject.toJSONString(productInfo.getData()[0]));
|
xbMessageItem.setJsonQueryResult(JSONObject.toJSONString(productInfo.getData()[0]));
|
||||||
xbMessageItem.setJsonCouponList(JSONObject.toJSONString(productInfo.getData()[0].getCouponInfo().getCouponList()));
|
xbMessageItem.setJsonCouponList(JSONObject.toJSONString(productInfo.getData()[0].getCouponInfo().getCouponList()));
|
||||||
@@ -2021,6 +2021,9 @@ public class JDUtil {
|
|||||||
int usedCommentCount = 0;
|
int usedCommentCount = 0;
|
||||||
int canUseComentCount = 0;
|
int canUseComentCount = 0;
|
||||||
int addCommentCount = 0;
|
int addCommentCount = 0;
|
||||||
|
int allTbCommentCount = 0;
|
||||||
|
int usedTbCommentCount = 0;
|
||||||
|
int canUseTbCommentCount = 0;
|
||||||
boolean isTb = false;
|
boolean isTb = false;
|
||||||
|
|
||||||
getProductTypeMap();
|
getProductTypeMap();
|
||||||
@@ -2038,6 +2041,15 @@ public class JDUtil {
|
|||||||
usedCommentCount = usedComments.size();
|
usedCommentCount = usedComments.size();
|
||||||
allCommentCount = canUseComentCount + usedCommentCount;
|
allCommentCount = canUseComentCount + usedCommentCount;
|
||||||
|
|
||||||
|
// 获取淘宝评论统计信息
|
||||||
|
getProductTypeMapForTB();
|
||||||
|
String taobaoProductId = productTypeMapTB.getOrDefault(product_id, product_id);
|
||||||
|
List<TaobaoComment> availableTbComments = taobaoCommentRepository.findByProductIdAndIsUseNotAndPictureUrlsIsNotNull(taobaoProductId, 1);
|
||||||
|
List<TaobaoComment> usedTbComments = taobaoCommentRepository.findByProductIdAndIsUseNotAndPictureUrlsIsNotNull(taobaoProductId, 0);
|
||||||
|
canUseTbCommentCount = availableTbComments.size();
|
||||||
|
usedTbCommentCount = usedTbComments.size();
|
||||||
|
allTbCommentCount = canUseTbCommentCount + usedTbCommentCount;
|
||||||
|
|
||||||
Comment commentToUse = null;
|
Comment commentToUse = null;
|
||||||
|
|
||||||
// 1️⃣ 先尝试使用本地可用的京东评论
|
// 1️⃣ 先尝试使用本地可用的京东评论
|
||||||
@@ -2050,9 +2062,9 @@ public class JDUtil {
|
|||||||
* ✅ 新增逻辑:先尝试从淘宝获取评论,但前提是 productTypeMapTB 存在对应映射
|
* ✅ 新增逻辑:先尝试从淘宝获取评论,但前提是 productTypeMapTB 存在对应映射
|
||||||
*/
|
*/
|
||||||
getProductTypeMapForTB(); // 加载淘宝映射表
|
getProductTypeMapForTB(); // 加载淘宝映射表
|
||||||
String taobaoProductId = productTypeMapTB.getOrDefault(product_id, null);
|
String taobaoProductIdMap = productTypeMapTB.getOrDefault(product_id, null);
|
||||||
|
|
||||||
if (taobaoProductId != null && !taobaoProductId.isEmpty()) {
|
if (taobaoProductIdMap != null && !taobaoProductIdMap.isEmpty()) {
|
||||||
logger.info("发现淘宝映射ID,尝试从淘宝获取评论");
|
logger.info("发现淘宝映射ID,尝试从淘宝获取评论");
|
||||||
wxUtil.sendTextMessage(fromWxid, "本地无可用京东评论,已发现淘宝映射ID,从淘宝获取评论", 1, null, true);
|
wxUtil.sendTextMessage(fromWxid, "本地无可用京东评论,已发现淘宝映射ID,从淘宝获取评论", 1, null, true);
|
||||||
Comment taobaoComment = generateTaobaoComment(productType);
|
Comment taobaoComment = generateTaobaoComment(productType);
|
||||||
@@ -2143,7 +2155,17 @@ public class JDUtil {
|
|||||||
"已使用:" + usedCommentCount + "\n" +
|
"已使用:" + usedCommentCount + "\n" +
|
||||||
"可用:" + canUseComentCount + "\n" +
|
"可用:" + canUseComentCount + "\n" +
|
||||||
"总数:" + allCommentCount, 1, fromWxid, true);
|
"总数:" + allCommentCount, 1, fromWxid, true);
|
||||||
|
} else {
|
||||||
|
wxUtil.sendTextMessage(fromWxid,
|
||||||
|
"淘宝评论统计:\n" +
|
||||||
|
"型号 " + productType + "\n" +
|
||||||
|
"已使用:" + usedTbCommentCount + "\n" +
|
||||||
|
"可用:" + canUseTbCommentCount + "\n" +
|
||||||
|
"总数:" + allTbCommentCount, 1, fromWxid, true);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
wxUtil.sendTextMessage(fromWxid, "本地和京东均无可用的评论数据,请检查sku", 1, fromWxid, false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2802,8 +2824,8 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 添加调试信息,检查输入字符串的字符编码
|
// 添加调试信息,检查输入字符串的字符编码
|
||||||
logger.debug("输入字符串长度: {}", normalized.length());
|
//logger.debug("输入字符串长度: {}", normalized.length());
|
||||||
logger.debug("输入字符串字节数组: {}", java.util.Arrays.toString(normalized.getBytes()));
|
//logger.debug("输入字符串字节数组: {}", java.util.Arrays.toString(normalized.getBytes()));
|
||||||
|
|
||||||
// 第一次尝试 - 使用Unicode转义序列匹配(支持前面可选的 \u239C,再跟 \u25C9)
|
// 第一次尝试 - 使用Unicode转义序列匹配(支持前面可选的 \u239C,再跟 \u25C9)
|
||||||
Pattern pattern = Pattern.compile("(?:\\u239C)?(\\u25C9)[^\\d]*([\\d.]+)\\s*\\uD83D\\uDCB0?");
|
Pattern pattern = Pattern.compile("(?:\\u239C)?(\\u25C9)[^\\d]*([\\d.]+)\\s*\\uD83D\\uDCB0?");
|
||||||
|
|||||||
Reference in New Issue
Block a user