From d2b9ce5ceb7059dfa06e9281661c8c9516686dd0 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 06 十月 2025 19:54:22 +0800
Subject: [PATCH] bug修改
---
cloud-server-activity/src/main/java/com/dsh/activity/util/GeoFenceChecker.java | 78 ++++++++++++++++++++++++++
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js | 6 +
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java | 7 ++
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 11 +++
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html | 42 +++++++++----
cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java | 4 -
cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html | 15 +++++
7 files changed, 140 insertions(+), 23 deletions(-)
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/util/GeoFenceChecker.java b/cloud-server-activity/src/main/java/com/dsh/activity/util/GeoFenceChecker.java
new file mode 100644
index 0000000..e5203c6
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/util/GeoFenceChecker.java
@@ -0,0 +1,78 @@
+package com.dsh.activity.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class GeoFenceChecker {
+
+ /**
+ * 判断点是否在多边形内
+ * @param polygon 多边形顶点坐标列表
+ * @param point 待检测的点
+ * @return true表示在多边形内,false表示在多边形外
+ */
+ public static boolean isPointInPolygon(List<Point> polygon, Point point) {
+ int intersectCount = 0;
+ int vertexCount = polygon.size();
+
+ for (int i = 0; i < vertexCount; i++) {
+ Point p1 = polygon.get(i);
+ Point p2 = polygon.get((i + 1) % vertexCount);
+
+ // 检查水平向右的射线是否与边相交
+ if (rayIntersectsSegment(p1, p2, point)) {
+ intersectCount++;
+ }
+ }
+
+ // 交点为奇数表示点在多边形内
+ return intersectCount % 2 == 1;
+ }
+
+ /**
+ * 判断射线是否与线段相交
+ * @param p1 线段端点1
+ * @param p2 线段端点2
+ * @param point 测试点
+ * @return 是否相交
+ */
+ private static boolean rayIntersectsSegment(Point p1, Point p2, Point point) {
+ // 确保p1的y坐标小于等于p2的y坐标
+ if (p1.y > p2.y) {
+ Point temp = p1;
+ p1 = p2;
+ p2 = temp;
+ }
+
+ // 如果点的y坐标在线段y坐标范围之外,则不相交
+ if (point.y < p1.y || point.y > p2.y) {
+ return false;
+ }
+
+ // 水平线情况特殊处理
+ if (p1.y == p2.y) {
+ return false;
+ }
+
+ // 计算交点的x坐标
+ double xIntersection = (point.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x;
+
+ // 如果交点在测试点的右边,则相交
+ return point.x < xIntersection;
+ }
+
+ /**
+ * 坐标点类
+ */
+ public static class Point {
+ public double x;
+ public double y;
+
+ public Point(double x, double y) {
+ this.x = x;
+ this.y = y;
+ }
+ }
+
+
+}
diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
index a9eee9a..d2e1d63 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -335,7 +335,12 @@
}
}
// 排序
- list = list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList());
+ list = list.stream()
+ .filter(Objects::nonNull)
+ .sorted(Comparator.comparing(WorldCupRankVo::getIntegral, Comparator.nullsLast(Comparator.reverseOrder()))
+ .thenComparing(WorldCupRankVo::getTotalSession, Comparator.nullsLast(Comparator.reverseOrder()))
+ .thenComparing(WorldCupRankVo::getWinRate, Comparator.nullsLast(Comparator.reverseOrder())))
+ .collect(Collectors.toList());
int a = 1;
for (WorldCupRankVo worldCupRankVo : list) {
worldCupRankVo.setRank(a);
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
index 13c42b0..bc35967 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminCard/tHuiminCard_detail.html
@@ -938,7 +938,22 @@
},
handleRemoveStore(index) {
+ // 先删除表格中的数据
this.tableData.splice(index, 1);
+
+ // 同步更新 huiminCard.useIds
+ if (this.huiminCard.useScope === '1') {
+ // 指定门店
+ this.huiminCard.useIds = this.tableData.map(item => item.storeId).join(',');
+ } else if (this.huiminCard.useScope === '2') {
+ // 指定场地
+ this.huiminCard.useIds = this.tableData.map(item => item.siteId).join(',');
+ }
+
+ // 如果没有数据了,设置为空字符串而不是null
+ if (this.tableData.length === 0) {
+ this.huiminCard.useIds = '';
+ }
},
handleSelectStore() {
this.queryParams.pageNum = 1;
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
index d179f30..cd6ef91 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
@@ -125,7 +125,8 @@
accept="."
:file-list="imageUrl2"
:on-success="handleAvatarSuccess"
- :on-remove="handleRemove">
+ :on-remove="handleRemove"
+ :before-upload="beforeAvatarUpload">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
@@ -211,10 +212,14 @@
},
methods: {
handleAvatarSuccess(res, file) {
- file.url =file.response
+ // 确保文件对象有完整的结构
+ if (file && file.response) {
+ file.url = file.response;
+ }
TCarInfoDlg.goodsPicArray.push(res);
- console.log(TCarInfoDlg.goodsPicArray)
+ console.log(TCarInfoDlg.goodsPicArray);
},
+ // 添加 beforeUpload 钩子到 el-upload 组件
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isLt2M) {
@@ -222,23 +227,32 @@
}
return isLt2M;
},
+ // 修改 handleRemove 方法
handleRemove(file, fileList) {
+ // 使用更安全的方式过滤
TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
- return item.uid != file.uid;
+ // 如果是文件对象,比较 uid;如果是字符串,比较值
+ if (typeof item === 'object' && item !== null) {
+ return item.uid !== file.uid;
+ } else {
+ return item !== file.url;
+ }
});
},
changeImg(){
- var i = id.split(",")
- for (let j = 0; j <i.length; j++) {
- let obj={
- fileName:i[j],
- uuid:i[j],
- url:i[j],
- response:i[j],
- }
- this.imageUrl2.push(obj)
+ if (!id) return; // 如果没有图片数据则返回
+
+ var i = id.split(",").filter(url => url.trim() !== ''); // 过滤空字符串
+ for (let j = 0; j < i.length; j++) {
+ let obj = {
+ uid: 'existing-' + j + '-' + Date.now(), // 确保 uid 是唯一的字符串
+ name: 'image-' + j + '.jpg', // 添加 name 属性
+ url: i[j],
+ status: 'success' // 标记为已上传状态
+ };
+ this.imageUrl2.push(obj);
}
- console.log( this.imageUrl2,111)
+ console.log(this.imageUrl2, 111);
},
},
created() {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
index 044eba8..f59a69c 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
@@ -566,12 +566,14 @@
Feng.info("请上传实景图")
return;
}
+ console.log("图片")
+ console.log(goodImgs)
var imgOne ="";
for (let i = 0; i <goodImgs.length; i++) {
if(i==goodImgs.length-1){
- imgOne += (goodImgs[i].response)
+ imgOne += (goodImgs[i])
}else {
- imgOne+=(goodImgs[i].response+",")
+ imgOne+=(goodImgs[i]+",")
}
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
index f02a264..b38837a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java
@@ -116,10 +116,8 @@
storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/0771fb3bd4de43c08492d0912209e51f.png");
break;
}
-
}
}
-
listVo.add(storeConfigVo);
}
@@ -136,8 +134,6 @@
storeConfigVo.setSort(worldCupStore.getSort());
listVo.add(storeConfigVo);
}
-
-
//排序
Collections.sort(listVo, new Comparator<StoreConfigVo>() {
@Override
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
index 24c18f3..1020aa5 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -429,9 +429,16 @@
try {
List<TStoreOtherConfigTrue> tStoreOtherConfigTrues = new ArrayList<>();
- List<TStoreOther> list = tStoreOtherService.list(new LambdaQueryWrapper<TStoreOther>().eq(TStoreOther::getStoreId, id).eq(TStoreOther::getState, 1));
+ List<TStoreOther> list = tStoreOtherService
+ .list(new LambdaQueryWrapper<TStoreOther>().eq(TStoreOther::getStoreId, id)
+ .eq(TStoreOther::getState, 1));
if (list.size() > 0) {
- tStoreOtherConfigTrues = tStoreOtherConfigTrueService.list(new LambdaQueryWrapper<TStoreOtherConfigTrue>().in(TStoreOtherConfigTrue::getPid, list.stream().map(TStoreOther::getId).collect(Collectors.toList())).eq(TStoreOtherConfigTrue::getState, 1));
+ tStoreOtherConfigTrues = tStoreOtherConfigTrueService
+ .list(new LambdaQueryWrapper<TStoreOtherConfigTrue>()
+ .in(TStoreOtherConfigTrue::getPid,
+ list.stream().map(TStoreOther::getId)
+ .collect(Collectors.toList()))
+ .eq(TStoreOtherConfigTrue::getState, 1));
}
for (TStoreOtherConfigTrue tStoreOtherConfigTrue : tStoreOtherConfigTrues) {
for (TStoreOther tStoreOther : list) {
--
Gitblit v1.7.1