一个微信对多个京粉

This commit is contained in:
雷欧(林平凡)
2025-04-11 15:51:42 +08:00
parent 00dc3d2fc1
commit 2876964c64
5 changed files with 38 additions and 26 deletions

View File

@@ -33,14 +33,22 @@ public interface OrderRowRepository extends JpaRepository<OrderRow, String> {
List<OrderRow> findByValidCode(int validCode);
// 查找 validCode != 15 或者 !=-1 的订单行 ,并且按orderTime 降序
@Query("select o from OrderRow o where o.validCode not in ?1 and o.unionId =?2 order by o.orderTime DESC")
List<OrderRow> findByValidCodeNotInOrderByOrderTimeDescAndUnionId(int[] validCodes, Long unionId);
// 修改后支持传入List<Long>
@Query("SELECT o FROM OrderRow o " + "WHERE o.validCode NOT IN ?1 " + "AND o.unionId IN :unionIds " + // 关键修改点
"ORDER BY o.orderTime DESC")
List<OrderRow> findByValidCodeNotInOrderByOrderTimeDescAndUnionId(@Param("validCodes") int[] validCodes, @Param("unionIds") List<Long> unionIds // 参数类型改为List
);
@Query("select o from OrderRow o where o.validCode not in ?1 and o.orderTime >= ?2 order by o.orderTime DESC")
List<OrderRow> findByValidCodeNotInAndOrderTimeGreaterThanOrderByOrderTimeDesc(int[] validCodes, @DateTimeFormat(pattern = "yyyy-MM-dd") Date threeMonthsAgo);
@Query("select o from OrderRow o where o.validCode not in ?1 and o.skuId = ?2 and o.unionId = ?3 order by o.orderTime DESC")
List<OrderRow> findBySkuIdAndUnionId(int[] validCodes,long skuId, long unionId);
// 修改后支持传入unionId列表
@Query("SELECT o FROM OrderRow o " + "WHERE o.validCode NOT IN :validCodes " + "AND o.skuId = :skuId " + "AND o.unionId IN :unionIds " + // 关键修改点
"ORDER BY o.orderTime DESC")
List<OrderRow> findBySkuIdAndUnionId(@Param("validCodes") int[] validCodes, @Param("skuId") long skuId, @Param("unionIds") List<Long> unionIds // 参数类型改为List
);
//// 在OrderRowRepository中添加模糊查询方法
//// 模糊查询收件人姓名或地址(包含分页)

View File

@@ -235,14 +235,14 @@ public class JDUtil {
public void sendOrderToWxByOrderJD(String order, String fromWxid) {
int[] param = {-1};
WXUtil.SuperAdmin superAdmin = getSuperAdmin(fromWxid);
String unionId;
if (superAdmin != null) {
unionId = superAdmin.getUnionId();
}else {
return;
List<WXUtil.SuperAdmin> superAdmins = getSuperAdmins(fromWxid);
List<Long> unionIds = new ArrayList<>();
for (WXUtil.SuperAdmin superAdmin : superAdmins) {
String unionId = superAdmin.getUnionId();
unionIds.add(Long.valueOf(unionId));
}
List<OrderRow> orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, Long.valueOf(unionId));
List<OrderRow> orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, unionIds);
/**
* 菜单:
* 今日统计
@@ -426,14 +426,13 @@ public class JDUtil {
*/
public void sendOrderToWxByOrderJDAdvanced(String order, String fromWxid) {
int[] param = {-1};
WXUtil.SuperAdmin superAdmin = getSuperAdmin(fromWxid);
String unionId;
if (superAdmin != null) {
unionId = superAdmin.getUnionId();
}else {
return;
List<WXUtil.SuperAdmin> superAdmins = getSuperAdmins(fromWxid);
List<Long> unionIds = new ArrayList<>();
for (WXUtil.SuperAdmin superAdmin : superAdmins) {
String unionId = superAdmin.getUnionId();
unionIds.add(Long.valueOf(unionId));
}
List<OrderRow> orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, Long.valueOf(unionId));
List<OrderRow> orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, unionIds);
List<StringBuilder> contents = new ArrayList<>();
StringBuilder content = new StringBuilder();
@@ -491,7 +490,7 @@ public class JDUtil {
List<OrderRow> orderRowList = orderRowRepository.findByOrderId(Long.parseLong(order));
if (!orderRowList.isEmpty()) {
OrderRow orderRow = orderRowList.get(0);
if (orderRow.getUnionId().equals(Long.parseLong(unionId))) {
if (unionIds.contains(orderRow.getUnionId())) {
content.append(orderUtil.getFormattedOrderInfo(orderRow, orderRow.getValidCode()));
} else {
content.append("订单不属于你,无法查询\r");
@@ -506,7 +505,7 @@ public class JDUtil {
content.append("精准查询sku不统计已取消的订单:\r");
int[] validCodes = {-1, 3};
List<OrderRow> bySkuIdAndUnionId = orderRowRepository.findBySkuIdAndUnionId(validCodes, Long.parseLong(order), Long.parseLong(unionId));
List<OrderRow> bySkuIdAndUnionId = orderRowRepository.findBySkuIdAndUnionId(validCodes, Long.parseLong(order), unionIds);
int size = bySkuIdAndUnionId.size();
content.append("查询到").append(size).append("条订单\r");
// 切割成20条20条返回前100条

View File

@@ -156,6 +156,9 @@ public class OrderUtil {
public String getFormattedOrderInfoBatch(OrderRow orderRow) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ValidCodeConverter converter = new ValidCodeConverter();
Long unionId = orderRow.getUnionId();
String remarkFromJdid = getRemarkFromJdid(String.valueOf(unionId));
//+ "订单+sku" + orderRow.getId() + "\r"
//+ "商品单价:" + orderRow.getPrice() + "\r"
//+ "商品数量:" + orderRow.getSkuNum() + "\r"
@@ -170,9 +173,10 @@ public class OrderUtil {
//}
return "订单:" + orderRow.getOrderId() + " (" + (orderRow.getPlus() == 1 ? "plus" : "非plus") + ")\r" +
return "订单:" + orderRow.getOrderId() + " (" + (orderRow.getPlus() == 1 ? "plus" : "非plus") + ")\r"
+"京粉备注:"+ remarkFromJdid + "\r"
"状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r"
+"状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r"
+ "名称:" + orderRow.getSkuName() + "\r\n"
//+ "商品单价:" + orderRow.getPrice() + "\r"

View File

@@ -97,13 +97,14 @@ public class WXUtil {
return jdidToRemarkMap.get(jdid);
}
public static SuperAdmin getSuperAdmin(String wxid) {
public static List<SuperAdmin> getSuperAdmins(String wxid) {
List<SuperAdmin> result = new ArrayList<>();
for (SuperAdmin admin : super_admins.values()) {
if (admin.getWxid().equals(wxid)) {
return admin;
result.add(admin);
}
}
return null;
return result;
}

View File

@@ -231,7 +231,7 @@ public class WxMessageConsumer {
}
String fromWxid = innerData.getFromWxid();
WXUtil.SuperAdmin superAdmin = getSuperAdmin(fromWxid);
WXUtil.SuperAdmin superAdmin = getSuperAdmins(fromWxid);
if (Util.isEmpty(superAdmin)) {
logger.info("不是超管消息,不处理");
return;