From c22b60f532f8a3c5c6d2e76691fd79bdc2c584d8 Mon Sep 17 00:00:00 2001
From: wangfukang <15630117759@163.com>
Date: Fri, 31 Jul 2026 17:13:46 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=8B=BC=E5=9B=A2=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application.yml | 2 +-
hiver-admin/test-output/test-report.html | 16 +-
.../main/java/cc/hiver/core/dao/UserDao.java | 4 +
.../java/cc/hiver/core/dao/WorkerDao.java | 4 +
.../java/cc/hiver/core/entity/Worker.java | 4 +
.../cc/hiver/core/service/UserService.java | 2 +
.../cc/hiver/core/service/WorkerService.java | 2 +
.../core/serviceimpl/UserServiceImpl.java | 5 +
.../core/serviceimpl/WorkerServiceImpl.java | 5 +
.../controller/manage/AuthController.java | 83 +-
.../controller/manage/UserController.java | 47 +
.../controller/CampusAdminController.java | 164 ++
.../campus/controller/CampusController.java | 224 +++
.../mall/campus/dto/CampusAdminActionDTO.java | 24 +
.../mall/campus/dto/CampusChatMessageDTO.java | 12 +
.../mall/campus/dto/CampusCommentDTO.java | 14 +
.../mall/campus/dto/CampusComplaintDTO.java | 15 +
.../mall/campus/dto/CampusPageQuery.java | 25 +
.../hiver/mall/campus/dto/CampusPostDTO.java | 28 +
.../mall/campus/entity/CampusAdminLog.java | 31 +
.../mall/campus/entity/CampusCategory.java | 35 +
.../mall/campus/entity/CampusChatMessage.java | 38 +
.../mall/campus/entity/CampusChatSession.java | 50 +
.../mall/campus/entity/CampusComment.java | 53 +
.../mall/campus/entity/CampusComplaint.java | 59 +
.../hiver/mall/campus/entity/CampusLike.java | 23 +
.../hiver/mall/campus/entity/CampusPost.java | 107 ++
.../mall/campus/entity/CampusUserLimit.java | 33 +
.../campus/mapper/CampusAdminLogMapper.java | 9 +
.../campus/mapper/CampusCategoryMapper.java | 9 +
.../mapper/CampusChatMessageMapper.java | 9 +
.../mapper/CampusChatSessionMapper.java | 9 +
.../campus/mapper/CampusCommentMapper.java | 9 +
.../campus/mapper/CampusComplaintMapper.java | 9 +
.../mall/campus/mapper/CampusLikeMapper.java | 9 +
.../mall/campus/mapper/CampusPostMapper.java | 9 +
.../campus/mapper/CampusUserLimitMapper.java | 9 +
.../mall/campus/service/CampusService.java | 93 ++
.../service/impl/CampusServiceImpl.java | 1438 +++++++++++++++++
.../mall/campus/vo/CampusPostDetailVO.java | 12 +
.../AdminDataStatisticsController.java | 103 +-
.../hiver/mall/controller/ShopController.java | 121 +-
.../controller/UserAddressController.java | 21 +-
.../mall/controller/WorkerController.java | 52 +-
.../controller/WorkerRelaPriceController.java | 59 +-
.../dao/mapper/WorkerRelaPriceMapper.java | 4 +
.../hiver/mall/entity/MallDeliveryOrder.java | 4 +
.../cc/hiver/mall/entity/UserAddress.java | 3 +
.../cc/hiver/mall/entity/WorkerRelaPrice.java | 3 +
.../mall/fishmarket/dto/FishCommentDTO.java | 2 +
.../mall/fishmarket/dto/FishPublishDTO.java | 2 +
.../service/impl/FishMarketServiceImpl.java | 51 +-
.../mall/ie/controller/IeController.java | 7 +
.../impl/IeAliyunModerationServiceImpl.java | 64 +-
.../impl/IeSecurityAuditServiceImpl.java | 5 +-
.../cc/hiver/mall/ie/vo/IeAuditResult.java | 1 +
.../service/impl/PlanetAdminServiceImpl.java | 12 +-
.../service/impl/PlanetDrawServiceImpl.java | 14 +-
.../cc/hiver/mall/pojo/vo/WorkerMatchVO.java | 3 +
.../hiver/mall/pojo/vo/WorkerRealPriceVo.java | 3 +
.../service/mybatis/UserAddressService.java | 6 +-
.../mybatis/WorkerRelaPriceService.java | 4 +
.../mall/serviceimpl/ShopServiceImpl.java | 8 +
.../mybatis/MallDeliveryOrderServiceImpl.java | 41 +-
.../mybatis/UserAddressServiceImpl.java | 8 +-
.../mybatis/WorkerRelaPriceServiceImpl.java | 10 +
.../src/main/resources/db/campus_circle.sql | 253 +++
.../resources/db/user_address_region_id.sql | 3 +
.../main/resources/db/worker_full_time.sql | 3 +
.../db/worker_rela_price_region_id.sql | 12 +
.../mapper/MallDeliveryOrderMapper.xml | 51 +-
.../mapper/WorkerRelaPriceMapper.xml | 32 +-
72 files changed, 3535 insertions(+), 163 deletions(-)
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/controller/CampusAdminController.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/controller/CampusController.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusAdminActionDTO.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusChatMessageDTO.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusCommentDTO.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusComplaintDTO.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusPageQuery.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/dto/CampusPostDTO.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusAdminLog.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusCategory.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusChatMessage.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusChatSession.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusComment.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusComplaint.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusLike.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusPost.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/entity/CampusUserLimit.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusAdminLogMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusCategoryMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusChatMessageMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusChatSessionMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusCommentMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusComplaintMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusLikeMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusPostMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/mapper/CampusUserLimitMapper.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/service/CampusService.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/service/impl/CampusServiceImpl.java
create mode 100644 hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/campus/vo/CampusPostDetailVO.java
create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/campus_circle.sql
create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/user_address_region_id.sql
create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/worker_full_time.sql
create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/worker_rela_price_region_id.sql
diff --git a/hiver-admin/src/main/resources/application.yml b/hiver-admin/src/main/resources/application.yml
index 54148e3c..c2a7cce4 100644
--- a/hiver-admin/src/main/resources/application.yml
+++ b/hiver-admin/src/main/resources/application.yml
@@ -13,7 +13,7 @@ ie:
region: cn-beijing
endpoint: green-cip-vpc.cn-beijing.aliyuncs.com
# 控制台规则配置的 serviceCode1
- text-service: chat_detection
+ text-service: comment_detection_pro
image-service: baselineCheck
video-service: videoDetection
# 注意:语音审核 service 是下划线格式(视频是驼峰,阿里云两个产品命名不一致)
diff --git a/hiver-admin/test-output/test-report.html b/hiver-admin/test-output/test-report.html
index 536b418c..bbe84319 100644
--- a/hiver-admin/test-output/test-report.html
+++ b/hiver-admin/test-output/test-report.html
@@ -35,7 +35,7 @@
Hiver
- 26, 2026 17:19:19
+ 31, 2026 16:45:26
@@ -84,7 +84,7 @@
passTest
-
17:19:19 / 0.023 secs
+
16:45:26 / 0.024 secs
@@ -92,9 +92,9 @@
#test-id=1
passTest
-
07.26.2026 17:19:19
-
07.26.2026 17:19:19
-
0.023 secs
+
07.31.2026 16:45:26
+
07.31.2026 16:45:26
+
0.024 secs
@@ -104,7 +104,7 @@
| Pass |
- 17:19:19 |
+ 16:45:26 |
Test passed
|
@@ -128,13 +128,13 @@
Started
-
26, 2026 17:19:19
+
31, 2026 16:45:26
Ended
-
26, 2026 17:19:19
+
31, 2026 16:45:26
diff --git a/hiver-core/src/main/java/cc/hiver/core/dao/UserDao.java b/hiver-core/src/main/java/cc/hiver/core/dao/UserDao.java
index 5847ccfe..61a762f3 100644
--- a/hiver-core/src/main/java/cc/hiver/core/dao/UserDao.java
+++ b/hiver-core/src/main/java/cc/hiver/core/dao/UserDao.java
@@ -119,6 +119,10 @@ public interface UserDao extends HiverBaseDao
{
@Query("update User u set u.mobile=?1 where u.id=?2")
void updateUserPhoneById(String userPhone, String userId);
+ @Modifying
+ @Query("update User u set u.nickname=?2, u.avatar=?3 where u.id=?1")
+ int updateMiniProfile(String userId, String nickname, String avatar);
+
@Modifying
@Query(value = "update t_user set saved_amount = coalesce(saved_amount, 0) + ?2 where id = ?1", nativeQuery = true)
int increaseSavedAmount(String userId, BigDecimal savedAmount);
diff --git a/hiver-core/src/main/java/cc/hiver/core/dao/WorkerDao.java b/hiver-core/src/main/java/cc/hiver/core/dao/WorkerDao.java
index 4264f859..1284d127 100644
--- a/hiver-core/src/main/java/cc/hiver/core/dao/WorkerDao.java
+++ b/hiver-core/src/main/java/cc/hiver/core/dao/WorkerDao.java
@@ -23,6 +23,10 @@ public interface WorkerDao extends HiverBaseDao {
@Query("update Worker w set w.isOnLine=?2 where w.workerId=?1")
void changeOnLine(String id, Integer onLine);
+ @Modifying
+ @Query("update Worker w set w.isFullTime=?2 where w.workerId=?1")
+ void changeFullTime(String id, Integer isFullTime);
+
@Modifying
@Query("update Worker w set w.workerStatus=?2 where w.workerId = ?1")
void delById(String id, Integer workerStatusDisable);
diff --git a/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java b/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java
index 3bc7ddea..ff430643 100644
--- a/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java
+++ b/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java
@@ -199,6 +199,10 @@ public class Worker implements Serializable {
@Column(name = "get_push_order")
private Integer getPushOrder;
+ @ApiModelProperty(value = "是否全职配送员:0否 1是")
+ @Column(name = "is_full_time")
+ private Integer isFullTime = 0;
+
@ApiModelProperty(value = "评分")
@Column(name = "score")
private BigDecimal score;
diff --git a/hiver-core/src/main/java/cc/hiver/core/service/UserService.java b/hiver-core/src/main/java/cc/hiver/core/service/UserService.java
index 65d61a48..8b582b47 100644
--- a/hiver-core/src/main/java/cc/hiver/core/service/UserService.java
+++ b/hiver-core/src/main/java/cc/hiver/core/service/UserService.java
@@ -146,6 +146,8 @@ public interface UserService extends HiverBaseService {
void updateUserPhoneById(String userPhone, String userId);
+ int updateMiniProfile(String userId, String nickname, String avatar);
+
/**
* 判断指定用户是否已完成平台实名认证。
*
diff --git a/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java b/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java
index 497cbf92..c0d71375 100644
--- a/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java
+++ b/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java
@@ -54,6 +54,8 @@ public interface WorkerService extends HiverBaseService {
*/
void offLine(String id);
+ void changeFullTime(String id, Integer isFullTime);
+
/**
* 删除(修改为禁用状态)
*
diff --git a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java
index 723d2944..fef22566 100644
--- a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java
+++ b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java
@@ -369,6 +369,11 @@ public class UserServiceImpl implements UserService {
userDao.updateUserPhoneById(userPhone, userId);
}
+ @Override
+ public int updateMiniProfile(String userId, String nickname, String avatar) {
+ return userDao.updateMiniProfile(userId, nickname, avatar);
+ }
+
@Override
public boolean isRealNameVerified(String userId) {
if (CharSequenceUtil.isBlank(userId)) {
diff --git a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java
index f6f38a98..b7e74f94 100644
--- a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java
+++ b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java
@@ -248,6 +248,11 @@ public class WorkerServiceImpl implements WorkerService {
workerDao.changeOnLine(id, CommonConstant.OFF_LINE);
}
+ @Override
+ public void changeFullTime(String id, Integer isFullTime) {
+ workerDao.changeFullTime(id, isFullTime);
+ }
+
/**
* 删除(修改为禁用状态)
*
diff --git a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/AuthController.java b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/AuthController.java
index f1bcf7eb..a6490f05 100644
--- a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/AuthController.java
+++ b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/AuthController.java
@@ -201,7 +201,7 @@ public class AuthController {
}
Worker worker = workerService.findByUserId(user.getId());
//更新配送员 推送id
- if(worker!= null){
+ if(worker!= null && StringUtils.isNotEmpty(clientId)){
worker.setClientId(clientId);
workerService.update(worker);
String oldRegion = worker.getRegion();
@@ -247,8 +247,9 @@ public class AuthController {
@RequestMapping(value = "/smsLogin", method = RequestMethod.POST)
@SystemLog(description = "短信登录", type = LogType.LOGIN)
@ApiOperation("短信登录")
- @Transactional(readOnly = true)
+ @Transactional
public Result smsLogin(@RequestParam String mobile,
+ @RequestParam(value = "clientId", required = false) String clientId,
@RequestParam(required = false) String type,
@RequestParam(required = false) Boolean saveLogin) {
@@ -264,27 +265,73 @@ public class AuthController {
// 返回当前登录人的信息
result.put("user", user);
- // 店铺登录的话,根据登录人查询所有关联的店铺(店铺启用,并且在有效期内)
- if (UserConstant.USER_TYPE_NORMAL.equals(type)) {
- // 获取
- final List shopUsers = shopUserService.selectByUserId(user.getId());
- if (!shopUsers.isEmpty()) {
- // 获取店主手机号
- for (ShopUser shopUser : shopUsers) {
- final Shop shop = shopService.findById(shopUser.getShop().getId());
- if (shop != null && shop.getShopOwnerId() != null && StringUtils.isNotEmpty(shop.getShopOwnerId())) {
- final User shopOwner = userService.findById(shop.getShopOwnerId());
- if(shopOwner != null){
- shopUser.setShopOwnerName(shopOwner.getNickname());
- shopUser.setShopOwnerPhone(shopOwner.getMobile());
+ List shop = shopService.getShopByUserid(user.getId());
+ if(!shop.isEmpty()){
+ List shopIds = new ArrayList<>();
+ for (Shop item : shop) {
+ shopIds.add(item.getId());
+ if (StringUtils.isNotEmpty(clientId)) {
+ item.setClientId(clientId);
+ shopService.update(item);
+ shopService.refreshShopCache(item.getId(), item.getRegionId());
+ }
+ }
+ if(!shopIds.isEmpty()){
+ List shopTakeaway = shopTakeawayService.selectListByshopId(shopIds);
+ if(shopTakeaway != null){
+ shop.forEach(e -> {
+ for(ShopTakeaway shopTakeawa : shopTakeaway) {
+ if (e.getId().equals(shopTakeawa.getShopId())) {
+ e.setShopTakeaway(shopTakeawa);
+ }
}
+ });
+ }
+ }
+ result.put("shop", shop);
+ }
+ Worker worker = workerService.findByUserId(user.getId());
+ //更新配送员 推送id
+ if(worker!= null && StringUtils.isNotEmpty(clientId)){
+ worker.setClientId(clientId);
+ workerService.update(worker);
+ String oldRegion = worker.getRegion();
+ WorkerRedisVo workerRedisVo = StrUtil.isNotBlank(oldRegion) ? workerRedisCacheUtil.get(oldRegion, worker.getWorkerId()) : null;
+ if(workerRedisVo != null){
+ workerRedisVo.setWorker(worker);
+ if (Objects.equals(oldRegion, worker.getRegion())) {
+ workerRedisCacheUtil.update(worker.getRegion(), workerRedisVo);
+ } else {
+ workerRedisCacheUtil.remove(oldRegion, worker.getWorkerId());
+ if (StrUtil.isNotBlank(worker.getRegion())) {
+ workerRedisCacheUtil.put(worker.getRegion(), workerRedisVo);
}
}
- result.put("shopList", shopUsers);
- } else {
- return ResultUtil.error("店铺未开通!");
}
}
+ if(worker!= null && worker.getGetPushOrder() != null && worker.getGetPushOrder() == 1){
+ final List workerRelaPriceList = workerRelaPriceService.selectByWorkerId(worker.getWorkerId());
+ List workerRelaPriceListWaimai = new ArrayList<>();
+ List workerRelaPriceListKuaidi = new ArrayList<>();
+ if(workerRelaPriceList != null && workerRelaPriceList.size() > 0){
+ workerRelaPriceList.forEach(workerRelaPrice -> {
+ if(workerRelaPrice.getGetPushOrder() == 1){
+ if(workerRelaPrice.getOrderType() == 0 ){
+ workerRelaPriceListWaimai.add(workerRelaPrice);
+ }else{
+ workerRelaPriceListKuaidi.add(workerRelaPrice);
+ }
+ }
+ });
+ }
+ if(workerRelaPriceListWaimai.size() > 0){
+ result.put("waimaiData", workerRelaPriceListWaimai);
+ }
+ if(workerRelaPriceListKuaidi.size() > 0){
+ result.put("kuaidiData", workerRelaPriceListKuaidi);
+ }
+ }
+ result.put("worker", worker);
return ResultUtil.data(result);
}
diff --git a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
index 01cf7a64..89b9e1eb 100644
--- a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
+++ b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
@@ -179,6 +179,53 @@ public class UserController {
return ResultUtil.success("修改成功");
}
+ @RequestMapping(value = "/profile", method = RequestMethod.POST)
+ @ApiOperation(value = "小程序修改头像昵称", notes = "头像和昵称来自微信头像昵称填写能力,微信侧已完成安全检测")
+ public Result updateMiniProfile(@RequestBody Map body) {
+ final User old = securityUtil.getCurrUser();
+ String nickname = body == null ? "" : StringUtils.trimToEmpty(body.get("nickname"));
+ String avatar = body == null ? "" : StringUtils.trimToEmpty(body.get("avatar"));
+ if (StringUtils.isBlank(nickname)) {
+ return ResultUtil.error("昵称不能为空");
+ }
+ if (nickname.length() > 20) {
+ return ResultUtil.error("昵称长度不能超过20");
+ }
+
+ old.setNickname(nickname);
+ if (StringUtils.isNotBlank(avatar)) {
+ old.setAvatar(avatar);
+ }
+ userService.update(old);
+ entityManager.detach(old);
+ old.setPassword(null);
+ return new ResultUtil().setData(old);
+ }
+
+ @RequestMapping(value = "/miniProfile", method = RequestMethod.POST)
+ @ApiOperation(value = "小程序只修改头像昵称", notes = "仅更新user表nickname和avatar两个字段")
+ public Result