From afa08332c847db4505048037e4d071e6efdeb2ca Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Sat, 4 Jul 2026 18:23:54 +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 --- hiver-admin/test-output/test-report.html | 16 +- .../main/java/cc/hiver/core/dao/UserDao.java | 5 + .../main/java/cc/hiver/core/entity/User.java | 3 + .../cc/hiver/core/service/UserService.java | 3 + .../core/serviceimpl/UserServiceImpl.java | 6 + .../core/serviceimpl/WorkerServiceImpl.java | 3 + .../AdminMallOrderGroupController.java | 84 ++++---- .../mall/controller/CommentController.java | 19 ++ .../MallDeliveryOrderController.java | 24 ++- .../mall/controller/WorkerController.java | 52 +++-- .../dao/mapper/MallDeliveryOrderMapper.java | 14 ++ .../dao/mapper/WorkerRelaPriceMapper.java | 1 + .../java/cc/hiver/mall/entity/Comment.java | 5 + .../java/cc/hiver/mall/entity/MallOrder.java | 3 + .../java/cc/hiver/mall/entity/ShopArea.java | 2 +- .../cc/hiver/mall/mq/OrderAsyncConsumer.java | 1 + .../controller/ProblemFeedbackController.java | 68 +++++- .../entity/ProblemFeedback.java | 35 +++- .../pojo/ProblemFeedbackPageQuery.java | 12 ++ .../impl/ProblemFeedbackServiceImpl.java | 3 + .../vo/ProblemFeedbackPageVo.java | 40 +++- .../mybatis/MallDeliveryOrderService.java | 14 ++ .../mybatis/MallDeliveryOrderServiceImpl.java | 38 +++- .../mybatis/MallOrderGroupServiceImpl.java | 3 +- .../mybatis/MallOrderServiceImpl.java | 78 ++++++- .../mybatis/MallRefundRecordServiceImpl.java | 18 +- .../resources/db/mall_order_saved_amount.sql | 5 + .../resources/db/problem_feedback_fields.sql | 13 ++ .../mapper/MallDeliveryOrderMapper.xml | 193 +++++++++++++++++- .../main/resources/mapper/MallOrderMapper.xml | 14 +- .../mapper/ProblemFeedbackMapper.xml | 143 +++++++++++-- .../main/resources/mapper/ProductMapper.xml | 3 + .../mapper/WorkerRelaPriceMapper.xml | 3 + 33 files changed, 816 insertions(+), 108 deletions(-) create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/mall_order_saved_amount.sql create mode 100644 hiver-modules/hiver-mall/src/main/resources/db/problem_feedback_fields.sql diff --git a/hiver-admin/test-output/test-report.html b/hiver-admin/test-output/test-report.html index 01a92d74..c18efe96 100644 --- a/hiver-admin/test-output/test-report.html +++ b/hiver-admin/test-output/test-report.html @@ -35,7 +35,7 @@ Hiver
  • -ÁùÔÂ 28, 2026 16:54:23 +ÆßÔÂ 04, 2026 18:19:53
  • @@ -84,7 +84,7 @@

    passTest

    -

    16:54:23 ÏÂÎç / 0.026 secs

    +

    18:19:54 ÏÂÎç / 0.029 secs

    @@ -92,9 +92,9 @@
    #test-id=1
    passTest
    -06.28.2026 16:54:23 -06.28.2026 16:54:23 -0.026 secs +07.04.2026 18:19:54 +07.04.2026 18:19:54 +0.029 secs
    @@ -104,7 +104,7 @@ Pass - 16:54:23 + 18:19:54 Test passed @@ -128,13 +128,13 @@

    Started

    -

    ÁùÔÂ 28, 2026 16:54:23

    +

    ÆßÔÂ 04, 2026 18:19:53

    Ended

    -

    ÁùÔÂ 28, 2026 16:54:23

    +

    ÆßÔÂ 04, 2026 18:19:54

    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 6fd3b5fe..5847ccfe 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 @@ -6,6 +6,7 @@ import cc.hiver.core.vo.ShopUserDto; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import java.math.BigDecimal; import java.util.List; /** @@ -117,4 +118,8 @@ public interface UserDao extends HiverBaseDao { @Modifying @Query("update User u set u.mobile=?1 where u.id=?2") void updateUserPhoneById(String userPhone, String userId); + + @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/entity/User.java b/hiver-core/src/main/java/cc/hiver/core/entity/User.java index abd50d74..baaeafba 100644 --- a/hiver-core/src/main/java/cc/hiver/core/entity/User.java +++ b/hiver-core/src/main/java/cc/hiver/core/entity/User.java @@ -143,4 +143,7 @@ public class User extends HiverBaseEntity { @ApiModelProperty("当å‰è´¦æˆ·ä½™é¢") private BigDecimal depoBal = new BigDecimal(0); + + @ApiModelProperty("累计已çœé‡‘é¢") + private BigDecimal savedAmount = new BigDecimal(0); } 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 20151366..d425c1fc 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 @@ -10,6 +10,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.query.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -107,6 +108,8 @@ public interface UserService extends HiverBaseService { */ void updateDepartmentTitle(String departmentId, String departmentTitle); + int increaseSavedAmount(String userId, BigDecimal savedAmount); + /** * é€šè¿‡è§’è‰²åæœç´¢ * 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 d08c1f05..21c2aa8b 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 @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.persistence.criteria.*; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -66,6 +67,11 @@ public class UserServiceImpl implements UserService { return userDao; } + @Override + public int increaseSavedAmount(String userId, BigDecimal savedAmount) { + return userDao.increaseSavedAmount(userId, savedAmount); + } + @Override public User findByUsername(String username) { final User user = userDao.findByUsername(username); 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 be65f64c..f6f38a98 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 @@ -82,6 +82,9 @@ public class WorkerServiceImpl implements WorkerService { if (CharSequenceUtil.isNotBlank(worker.getWorkerName())) { list.add(cb.like(workerNameField, '%' + worker.getWorkerName() + '%')); } + if (CharSequenceUtil.isNotBlank(worker.getMobile())) { + list.add(cb.like(mobileField, '%' + worker.getMobile() + '%')); + } // çŠ¶æ€ if (worker.getWorkerStatus() != null) { diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java index 7905aadf..03b99767 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java @@ -10,7 +10,6 @@ import cc.hiver.mall.entity.*; import cc.hiver.mall.pojo.dto.ShopCacheDTO; import cc.hiver.mall.service.mybatis.MallOrderGroupService; import cc.hiver.mall.service.mybatis.MallOrderService; -import cc.hiver.mall.utils.ShopGroupOrderCacheUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -31,6 +30,8 @@ import java.util.stream.Collectors; @RequestMapping("/hiver/mall/admin/orderGroup") public class AdminMallOrderGroupController { + private static final int GROUP_STATUS_FACE_TO_FACE = 3; + @Autowired private MallOrderGroupService mallOrderGroupService; @@ -40,9 +41,6 @@ public class AdminMallOrderGroupController { @Autowired private MallOrderGoodsMapper mallOrderGoodsMapper; - @Autowired - private ShopGroupOrderCacheUtil shopGroupOrderCacheUtil; - @Autowired private RedisTemplateHelper redisTemplateHelper; @@ -59,6 +57,7 @@ public class AdminMallOrderGroupController { private String headUserId; private Integer status; private String productName; + private String shopName; private String keyWord; private Integer isFace; private Integer merchantType; @@ -98,18 +97,8 @@ public class AdminMallOrderGroupController { if (query == null || StringUtils.isBlank(query.getRegionId())) { return ResultUtil.error("regionIdä¸èƒ½ä¸ºç©º"); } - if (query.getStatus() == null) { - query.setStatus(0); - } - if (query.getIsFace() == null) { - query.setIsFace(0); - } - List groups = shopGroupOrderCacheUtil.getAllByRegion(query.getRegionId()); - if (groups == null) { - groups = listGroupsFromDb(query); - shopGroupOrderCacheUtil.putAllByRegion(query.getRegionId(), groups); - } + List groups = listGroupsFromDb(query); groups = filterGroups(groups, query); Map shopMap = buildShopMap(groups, query.getRegionId()); @@ -148,6 +137,9 @@ public class AdminMallOrderGroupController { if (StringUtils.isNotBlank(query.getProductName())) { qw.like(MallOrderGroup::getProductName, query.getProductName()); } + if (StringUtils.isNotBlank(query.getShopName())) { + qw.like(MallOrderGroup::getShopName, query.getShopName()); + } if (query.getIsFace() != null) { qw.eq(MallOrderGroup::getIsFace, query.getIsFace()); } @@ -166,6 +158,10 @@ public class AdminMallOrderGroupController { .filter(group -> StringUtils.isBlank(query.getHeadUserId()) || query.getHeadUserId().equals(group.getHeadUserId())) .filter(group -> query.getStatus() == null || query.getStatus().equals(group.getStatus())) .filter(group -> query.getIsFace() == null || query.getIsFace().equals(group.getIsFace())) + .filter(group -> StringUtils.isBlank(query.getShopName()) || contains(group.getShopName(), query.getShopName())) + .filter(group -> query.getStatus() == null + || query.getStatus() != GROUP_STATUS_FACE_TO_FACE + || Integer.valueOf(1).equals(group.getIsFace())) .collect(Collectors.toList()); } @@ -310,32 +306,48 @@ public class AdminMallOrderGroupController { OrderGroupDetailVo vo = new OrderGroupDetailVo(); vo.setGroup(group); - // èŽ·å–æ‹¼å›¢çš„å­è®¢å• - if (StringUtils.isNotBlank(group.getGroupOrderIds())) { - List orderIds = Arrays.asList(group.getGroupOrderIds().split(",")); - if (!orderIds.isEmpty()) { - LambdaQueryWrapper oqw = new LambdaQueryWrapper<>(); - oqw.in(MallOrder::getId, orderIds); - List childOrders = mallOrderService.list(oqw); - // 2. 一次 IN æŸ¥è¯¢æ‰€æœ‰å•†å“æ˜Žç»† - List allGoods = mallOrderGoodsMapper.selectByOrderIds(orderIds); - - // 3. 按 orderId 分组 - java.util.Map> goodsMap = allGoods.stream() - .collect(java.util.stream.Collectors.groupingBy(MallOrderGoods::getOrderId)); - - // 4. 组装到æ¯ä¸ª VO - for (MallOrder order : childOrders) { - order.setGoodsList(goodsMap.getOrDefault(order.getId(), java.util.Collections.emptyList())); - } - vo.setChildOrders(childOrders); - } else { - vo.setChildOrders(new ArrayList<>()); + // èŽ·å–æ‹¼å›¢çš„æ‰€æœ‰è®¢å•,ä¸åŒ…嫿œªæ”¯ä»˜ã€å¤±è´¥/å–æ¶ˆç­‰çжæ€ã€‚ + List orderIds = buildGroupOrderIds(group); + if (!orderIds.isEmpty()) { + LambdaQueryWrapper oqw = new LambdaQueryWrapper<>(); + oqw.in(MallOrder::getId, orderIds).isNotNull(MallOrder::getPayTime) + .ne(MallOrder::getStatus, 6);; + List childOrders = mallOrderService.list(oqw); + List allGoods = mallOrderGoodsMapper.selectByOrderIds(orderIds); + if (allGoods == null) { + allGoods = Collections.emptyList(); } + + java.util.Map> goodsMap = allGoods.stream() + .collect(java.util.stream.Collectors.groupingBy(MallOrderGoods::getOrderId)); + + for (MallOrder order : childOrders) { + order.setGoodsList(goodsMap.getOrDefault(order.getId(), java.util.Collections.emptyList())); + } + java.util.Map orderMap = childOrders.stream() + .collect(java.util.stream.Collectors.toMap(MallOrder::getId, order -> order, (a, b) -> a)); + vo.setChildOrders(orderIds.stream() + .map(orderMap::get) + .filter(Objects::nonNull) + .collect(Collectors.toList())); } else { vo.setChildOrders(new ArrayList<>()); } return new ResultUtil().setData(vo); } + + private List buildGroupOrderIds(MallOrderGroup group) { + Set orderIds = new LinkedHashSet<>(); + if (StringUtils.isNotBlank(group.getHeadOrderId())) { + orderIds.add(group.getHeadOrderId()); + } + if (StringUtils.isNotBlank(group.getGroupOrderIds())) { + Arrays.stream(group.getGroupOrderIds().split(",")) + .map(String::trim) + .filter(StringUtils::isNotBlank) + .forEach(orderIds::add); + } + return new ArrayList<>(orderIds); + } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java index d01c7e63..c06a91ed 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java @@ -22,7 +22,9 @@ import cc.hiver.core.common.utils.StringUtils; import cc.hiver.core.common.vo.Result; import cc.hiver.core.entity.Worker; import cc.hiver.core.serviceimpl.WorkerServiceImpl; +import cc.hiver.mall.dao.mapper.MallOrderGoodsMapper; import cc.hiver.mall.entity.Comment; +import cc.hiver.mall.entity.MallOrderGoods; import cc.hiver.mall.entity.Shop; import cc.hiver.mall.pojo.dto.ShopCacheDTO; import cc.hiver.mall.pojo.query.CommentQuery; @@ -46,6 +48,8 @@ import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * è¯„è®ºæŽ¥å£ @@ -76,6 +80,9 @@ public class CommentController { @Autowired private WorkerServiceImpl workerServiceImpl; + @Autowired + private MallOrderGoodsMapper mallOrderGoodsMapper; + @RequestMapping(value = "/save", method = RequestMethod.POST) @ApiOperation("ä¿å­˜") @@ -208,9 +215,21 @@ public class CommentController { //评论分页 final Page commentsPage = commentService.getCommentList(commentQuery); final List parentIds = new ArrayList<>(); + final List orderIds = new ArrayList<>(); commentsPage.getRecords().forEach(e -> { parentIds.add(e.getId()); + if (StringUtils.isNotBlank(e.getOrderId())) { + orderIds.add(e.getOrderId()); + } }); + //æŒ‰æœ¬é¡µè®¢å•æ‰¹é‡æŸ¥è¯¢å•†å“,在内存按订å•组装到评论上 + if(orderIds.size() > 0){ + List goodsList = mallOrderGoodsMapper.selectByOrderIds(orderIds.stream().distinct().collect(Collectors.toList())); + Map> goodsMap = goodsList.stream() + .filter(goods -> StringUtils.isNotBlank(goods.getOrderId())) + .collect(Collectors.groupingBy(MallOrderGoods::getOrderId)); + commentsPage.getRecords().forEach(e -> e.setGoodsList(goodsMap.getOrDefault(e.getOrderId(), new ArrayList<>()))); + } //å°è£…å­çº§è¯„论 if(parentIds.size() > 0){ final List comments = commentService.getCommentListByParentId(parentIds); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java index f220981a..000e0e8e 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java @@ -157,6 +157,21 @@ public class MallDeliveryOrderController { return new ResultUtil().setData(cacheResult); } + @PostMapping("/admin/page") + @ApiOperation(value = "åŽå°ç®¡ç†ç«¯åˆ†é¡µæŸ¥è¯¢æŠ¢å•大厅é…é€å•", notes = "直接查数æ®åº“,ä¸èµ°ç”¨æˆ·ç«¯ç¼“å­˜") + public Result adminPage(@RequestBody MallDeliveryOrderPageQuery q) { + IPage page = mallDeliveryOrderService.pageDeliveryAdminHall(q); + Map result = new HashMap<>(); + result.put("records", page.getRecords()); + result.put("total", page.getTotal()); + result.put("size", page.getSize()); + result.put("current", page.getCurrent()); + result.put("pages", page.getPages()); + result.put("orderCount", mallDeliveryOrderService.countOrdersByTypeAdmin(q)); + result.put("zhipaiCount", mallDeliveryOrderService.countAssignedWaitOrdersAdmin(q)); + return new ResultUtil().setData(result); + } + private String currentUserId() { try { User user = securityUtil.getCurrUser(); @@ -208,6 +223,13 @@ public class MallDeliveryOrderController { return new ResultUtil().setData(page); } + @PostMapping("/admin/pagebyworker") + @ApiOperation(value = "åŽå°ç®¡ç†ç«¯åˆ†é¡µæŸ¥è¯¢é…é€ä¸­è®¢å•", notes = "直接查数æ®åº“ï¼Œä¸æŒ‰ workerId 缓存维度查询") + public Result adminPageByWorker(@RequestBody MallDeliveryOrderPageQuery q) { + IPage page = mallDeliveryOrderService.pageDeliveryByStatusAdmin(q); + return new ResultUtil().setData(page); + } + @PostMapping("/pageShopDelivery") @ApiOperation(value = "分页查询商家自é…é€å•") public Result pageShopDelivery(@RequestBody MallDeliveryOrderPageQuery q) { @@ -222,8 +244,6 @@ public class MallDeliveryOrderController { public Result pageTransferDelivery(@RequestBody MallDeliveryOrderPageQuery q) { q.setTransferDelivery(1); q.setDeliveryType(1); - q.setStatus(null); - q.setTransferArriveEmpty(null); q.setOrder("transferDelivery"); IPage page = mallDeliveryOrderService.pageDelivery(q); return new ResultUtil().setData(page); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java index 683bf819..26f78912 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java @@ -150,23 +150,35 @@ public class WorkerController { @RequestMapping(value = "/admin/edit", method = RequestMethod.POST) @ApiOperation(value = "修改é…é€å‘˜ä¿¡æ¯", notes = "需è¦é€šè¿‡ä¸‹å•ç¼–å·èŽ·å–订å•ä¿¡æ¯") public Result edit(@RequestBody Worker u) { + Worker worker = workerService.findByWorkerId(u.getWorkerId()); + if (worker == null) { + return ResultUtil.error("é…é€å‘˜ä¸å­˜åœ¨"); + } + String oldRegion = worker.getRegion(); + org.springframework.beans.BeanUtils.copyProperties(u, worker, BeanUtils.getNullPropertyNames(u)); - if (StrUtil.isNotBlank(u.getRegion())) { - ShopArea d = shopAreaService.get(u.getRegion()); + if (StrUtil.isNotBlank(worker.getRegion())) { + ShopArea d = shopAreaService.get(worker.getRegion()); if (d != null) { - u.setRegionTitle(d.getTitle()); + worker.setRegionTitle(d.getTitle()); } } else { - u.setRegion(null); - u.setRegionTitle(""); + worker.setRegion(null); + worker.setRegionTitle(""); } - workerService.update(u); - Worker worker = workerService.findByWorkerId(u.getWorkerId()); - WorkerRedisVo workerRedisVo = workerRedisCacheUtil.get(worker.getRegion(), worker.getWorkerId()); + workerService.update(worker); + 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); + } + } } - workerRedisCacheUtil.update(worker.getRegion(), workerRedisVo); return ResultUtil.success("修改æˆåŠŸ"); } @@ -216,10 +228,15 @@ public class WorkerController { @ApiOperation(value = "åŽå°äººå·¥ç¦ç”¨é…é€å‘˜") public Result disable(@ApiParam("用户唯一id标识") @PathVariable String workerId) { Worker worker = workerService.get(workerId); + if (worker == null) { + return ResultUtil.error("é…é€å‘˜ä¸å­˜åœ¨"); + } worker.setWorkerStatus(WorkerConstant.WORKER_STATUS_DISABLE); + worker.setIsOnLine(CommonConstant.OFF_LINE); workerService.update(worker); - // 手动更新缓存 - //redisTemplate.delete(WORKER + worker.getWorkerId()); + if (StrUtil.isNotBlank(worker.getRegion())) { + workerRedisCacheUtil.remove(worker.getRegion(), worker.getWorkerId()); + } return ResultUtil.success("æ“作æˆåŠŸ"); } @@ -227,6 +244,9 @@ public class WorkerController { @ApiOperation(value = "åŽå°äººå·¥å¯ç”¨é…é€å‘˜") public Result enable(@ApiParam("é…é€å‘˜å”¯ä¸€id标识") @PathVariable String workerId) { Worker worker = workerService.get(workerId); + if (worker == null) { + return ResultUtil.error("é…é€å‘˜ä¸å­˜åœ¨"); + } //这儿暂时有bug,å¯ç”¨çš„æ—¶å€™å…¶å®žéœ€è¦åˆ¤å®šåŽŸçŠ¶æ€æ˜¯å¯ç”¨è¿˜æ˜¯ä¸å¯æŽ¥å•状æ€ï¼Œéœ€è¦è¿›è¡Œé€»è¾‘判断 worker.setWorkerStatus(WorkerConstant.WORKER_STATUS_NORMAL); workerService.update(worker); @@ -247,9 +267,16 @@ public class WorkerController { @ApiOperation(value = "é…é€å‘˜ä¸Šçº¿") public Result onLine(@RequestParam("id") String id) { try { + Worker worker = workerService.get(id); + if (worker == null) { + return ResultUtil.error("é…é€å‘˜ä¸å­˜åœ¨"); + } + if (WorkerConstant.WORKER_STATUS_DISABLE.equals(worker.getWorkerStatus())) { + return ResultUtil.error("é…é€å‘˜å·²ç¦ç”¨ï¼Œæ— æ³•上线"); + } workerService.onLine(id); //添加缓存 - Worker worker = workerService.get(id); + worker = workerService.get(id); WorkerRedisVo workerVO = new WorkerRedisVo(); workerVO.setWorkerId(worker.getWorkerId()); workerVO.setWorker(worker); @@ -482,6 +509,7 @@ public class WorkerController { IPage pageParam = new Page<>(pageNum, pageSize); IPage pageResult = workerRelaPriceMapper.getMatchingWorkerList( pageParam, + dto.getRegionId(), dto.getShopAreaId(), dto.getOrderType(), dto.getPutAreaId(), diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/MallDeliveryOrderMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/MallDeliveryOrderMapper.java index d6ef3c1b..56298d6b 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/MallDeliveryOrderMapper.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/MallDeliveryOrderMapper.java @@ -23,11 +23,21 @@ public interface MallDeliveryOrderMapper extends BaseMapper { */ IPage selectPageVO(IPage page, @Param("q") MallDeliveryOrderPageQuery q); + /** + * åŽå°ç®¡ç†ç«¯æŠ¢å•大厅查询,直接查库。 + */ + IPage selectAdminHallPageVO(IPage page, @Param("q") MallDeliveryOrderPageQuery q); + /** * 分页查询é…é€å• */ IPage selectPageVOByStatus(IPage page, @Param("q") MallDeliveryOrderPageQuery q); + /** + * åŽå°ç®¡ç†ç«¯é…é€ä¸­è®¢å•查询,直接查库。 + */ + IPage selectAdminPageVOByStatus(IPage page, @Param("q") MallDeliveryOrderPageQuery q); + IPage selectPageVOByStatusHis(IPage page, @Param("q") MallDeliveryOrderPageQuery q); /** @@ -37,6 +47,10 @@ public interface MallDeliveryOrderMapper extends BaseMapper { List> countOrdersByType(@Param("regionId") String regionId); + List> countOrdersByTypeAdmin(@Param("q") MallDeliveryOrderPageQuery q); + + long countAssignedWaitOrdersAdmin(@Param("q") MallDeliveryOrderPageQuery q); + List countOrdersLimit(@Param("regionId") String regionId); List> countOrdersByStatus(@Param("workerId") String workerId); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java index d1b3f7b3..3601d0c4 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/WorkerRelaPriceMapper.java @@ -36,6 +36,7 @@ public interface WorkerRelaPriceMapper extends BaseMapper { */ IPage getMatchingWorkerList( IPage page, + @Param("regionId") String regionId, @Param("shopAreaId") String shopAreaId, @Param("orderType") Integer orderType, @Param("putAreaId") String putAreaId, diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Comment.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Comment.java index 3a944858..86f77e9a 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Comment.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Comment.java @@ -63,4 +63,9 @@ public class Comment implements Serializable { @ApiModelProperty(value = "å­çº§è¯„论") private List comments; + @Transient + @TableField(exist = false) + @ApiModelProperty(value = "订å•商å“") + private List goodsList; + } \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/MallOrder.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/MallOrder.java index 816acdbf..8429b6c3 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/MallOrder.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/MallOrder.java @@ -89,6 +89,9 @@ public class MallOrder implements Serializable { @ApiModelProperty("å…å•金é¢") private BigDecimal freeAmount; + @ApiModelProperty("本å•å·²çœé‡‘é¢") + private BigDecimal savedAmount; + @ApiModelProperty("是å¦å•†å®¶è‡ªé…é€ 0å¦ 1是") private Integer shopDelivery; diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ShopArea.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ShopArea.java index 428fd5da..830bba00 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ShopArea.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ShopArea.java @@ -34,7 +34,7 @@ public class ShopArea extends HiverBaseEntity { @ApiModelProperty(value = "圈层åç§°") private String title; - @ApiModelProperty(value = "1 是食堂") + @ApiModelProperty(value = "1 是食堂 2é©¿ç«™") private Integer isCanteen; @ApiModelProperty(value = "父id") diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncConsumer.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncConsumer.java index 1638769e..7f583722 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncConsumer.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/mq/OrderAsyncConsumer.java @@ -307,6 +307,7 @@ public class OrderAsyncConsumer { MallOrder order = mallOrderMapper.selectById(orderId); if (order != null) { regionId = StringUtils.defaultIfBlank(order.getRegionId(), regionId); + mallOrderService.addUserSavedAmountAfterFinish(order); } if (StringUtils.isBlank(regionId)) { log.warn("[白嫖星çƒ] é…é€å®Œæˆå‘券缺少商圈 orderId={}, userId={}", orderId, userId); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/controller/ProblemFeedbackController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/controller/ProblemFeedbackController.java index 62decb10..79d7eebe 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/controller/ProblemFeedbackController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/controller/ProblemFeedbackController.java @@ -3,6 +3,7 @@ package cc.hiver.mall.problemfeedback.controller; import cc.hiver.core.common.utils.ResultUtil; import cc.hiver.core.common.utils.SecurityUtil; import cc.hiver.core.common.vo.Result; +import cc.hiver.core.entity.User; import cc.hiver.mall.problemfeedback.entity.ProblemFeedback; import cc.hiver.mall.problemfeedback.pojo.ProblemFeedbackPageQuery; import cc.hiver.mall.problemfeedback.service.ProblemFeedbackService; @@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.util.Date; + /** * 问题å馈控制层 * @author 王富康 @@ -40,11 +43,34 @@ public class ProblemFeedbackController { @RequestMapping(value = "/saveOrUpdateProblemFeedback", method = RequestMethod.POST) @ApiOperation("新增或者修改问题å馈信æ¯") public Result saveOrUpdateProblemFeedback(@RequestBody ProblemFeedback problemFeedback) { - - // 店铺å称从å‰å°ä¼ é€’è¿‡æ¥ - // 从缓存中获å–店铺的id - final String shopId = securityUtil.getShopId(); - problemFeedback.setShopId(shopId); + if (problemFeedback == null) { + return ResultUtil.error("å馈信æ¯ä¸èƒ½ä¸ºç©ºï¼"); + } + if (StringUtils.isEmpty(problemFeedback.getProblemContent())) { + return ResultUtil.error("å馈内容ä¸èƒ½ä¸ºç©ºï¼"); + } + if (StringUtils.isEmpty(problemFeedback.getId())) { + if (problemFeedback.getStatus() == null) { + problemFeedback.setStatus(0); + } + try { + User user = securityUtil.getCurrUser(); + if (user != null) { + if (StringUtils.isEmpty(problemFeedback.getUserId())) { + problemFeedback.setUserId(user.getId()); + } + if (StringUtils.isEmpty(problemFeedback.getUserName())) { + problemFeedback.setUserName(user.getNickname()); + } + if (StringUtils.isEmpty(problemFeedback.getContactPhone())) { + problemFeedback.setContactPhone(user.getMobile()); + } + problemFeedback.setCreateBy(user.getId()); + } + } catch (Exception e) { + log.warn("ä¿å­˜é—®é¢˜å馈时获å–当å‰ç”¨æˆ·å¤±è´¥", e); + } + } final boolean b = problemFeedbackService.saveOrUpdate(problemFeedback); if (b) { return ResultUtil.success("ä¿å­˜æˆåŠŸï¼"); @@ -100,4 +126,36 @@ public class ProblemFeedbackController { final IPage result = problemFeedbackService.getProblemFeedbackList(problemFeedbackPageQuery); return new ResultUtil>().setData(result); } + + @RequestMapping(value = "/replyProblemFeedback", method = RequestMethod.POST) + @ApiOperation("回å¤é—®é¢˜å馈") + public Result replyProblemFeedback(@RequestBody ProblemFeedback problemFeedback) { + if (problemFeedback == null || StringUtils.isEmpty(problemFeedback.getId())) { + return ResultUtil.error("主键idä¸èƒ½ä¸ºç©ºï¼"); + } + if (StringUtils.isEmpty(problemFeedback.getHandleOpinion())) { + return ResultUtil.error("å¤„ç†æ„è§ä¸èƒ½ä¸ºç©ºï¼"); + } + ProblemFeedback update = new ProblemFeedback(); + update.setId(problemFeedback.getId()); + update.setHandleOpinion(problemFeedback.getHandleOpinion()); + update.setStatus(1); + update.setHandleTime(new Date()); + try { + User user = securityUtil.getCurrUser(); + if (user != null) { + update.setHandleUserId(user.getId()); + update.setHandleUserName(user.getNickname()); + update.setUpdateBy(user.getId()); + } + } catch (Exception e) { + log.warn("回å¤é—®é¢˜å馈时获å–当å‰ç”¨æˆ·å¤±è´¥", e); + } + final boolean b = problemFeedbackService.updateById(update); + if (b) { + return ResultUtil.success("å¤„ç†æˆåŠŸï¼"); + } else { + return ResultUtil.error("处ç†å¤±è´¥ï¼"); + } + } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/entity/ProblemFeedback.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/entity/ProblemFeedback.java index 6a59302b..601e1ae4 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/entity/ProblemFeedback.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/entity/ProblemFeedback.java @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + @Data @ApiModel(value = "问题å馈表") @TableName(value = "t_problem_feedback", autoResultMap = true) @@ -19,11 +21,36 @@ public class ProblemFeedback extends HiverBaseEntity { @ApiModelProperty(value = "问题图片") private String problemPicture; - @ApiModelProperty(value = "店铺id") - private String shopId; + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "用户昵称") + private String userName; + + @ApiModelProperty(value = "è”系电è¯") + private String contactPhone; + + @ApiModelProperty(value = "å馈类型") + private String feedbackType; + + @ApiModelProperty(value = "区域id") + private String regionId; + + @ApiModelProperty(value = "区域åç§°") + private String regionName; + + @ApiModelProperty(value = "状æ€ï¼š0待回å¤ï¼Œ1已回å¤") + private Integer status; + + @ApiModelProperty(value = "å¤„ç†æ„è§") + private String handleOpinion; - @ApiModelProperty(value = "店铺åç§°") - private String shopName; + @ApiModelProperty(value = "处ç†äººid") + private String handleUserId; + @ApiModelProperty(value = "处ç†äººåç§°") + private String handleUserName; + @ApiModelProperty(value = "å¤„ç†æ—¶é—´") + private Date handleTime; } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/pojo/ProblemFeedbackPageQuery.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/pojo/ProblemFeedbackPageQuery.java index d0608c9c..c194eb96 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/pojo/ProblemFeedbackPageQuery.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/pojo/ProblemFeedbackPageQuery.java @@ -13,4 +13,16 @@ public class ProblemFeedbackPageQuery extends HiverBasePageQuery { @ApiModelProperty(value = "问题内容") private String problemContent; + + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "区域id") + private String regionId; + + @ApiModelProperty(value = "状æ€ï¼š0待回å¤ï¼Œ1已回å¤") + private Integer status; + + @ApiModelProperty(value = "å馈类型") + private String feedbackType; } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/service/impl/ProblemFeedbackServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/service/impl/ProblemFeedbackServiceImpl.java index 18609bbb..0ca07c20 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/service/impl/ProblemFeedbackServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/service/impl/ProblemFeedbackServiceImpl.java @@ -24,6 +24,9 @@ public class ProblemFeedbackServiceImpl extends ServiceImpl getProblemFeedbackList(ProblemFeedbackPageQuery problemFeedbackPageQuery) { + if (problemFeedbackPageQuery == null) { + problemFeedbackPageQuery = new ProblemFeedbackPageQuery(); + } final Page page = new Page<>(problemFeedbackPageQuery.getPageNum(), problemFeedbackPageQuery.getPageSize()); return problemFeedbackMapper.getProblemFeedbackList(page, problemFeedbackPageQuery); } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/vo/ProblemFeedbackPageVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/vo/ProblemFeedbackPageVo.java index 938dc5ba..90be9239 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/vo/ProblemFeedbackPageVo.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/problemfeedback/vo/ProblemFeedbackPageVo.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Date; + @Data @Accessors(chain = true) @TableName(autoResultMap = true) @@ -19,9 +21,39 @@ public class ProblemFeedbackPageVo { @ApiModelProperty(value = "问题图片") private String problemPicture; - @ApiModelProperty(value = "店铺id") - private String shopId; + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "用户昵称") + private String userName; + + @ApiModelProperty(value = "è”系电è¯") + private String contactPhone; + + @ApiModelProperty(value = "å馈类型") + private String feedbackType; + + @ApiModelProperty(value = "区域id") + private String regionId; + + @ApiModelProperty(value = "区域åç§°") + private String regionName; + + @ApiModelProperty(value = "状æ€ï¼š0待回å¤ï¼Œ1已回å¤") + private Integer status; + + @ApiModelProperty(value = "å¤„ç†æ„è§") + private String handleOpinion; + + @ApiModelProperty(value = "处ç†äººid") + private String handleUserId; + + @ApiModelProperty(value = "处ç†äººåç§°") + private String handleUserName; + + @ApiModelProperty(value = "å¤„ç†æ—¶é—´") + private Date handleTime; - @ApiModelProperty(value = "店铺åç§°") - private String shopName; + @ApiModelProperty(value = "创建时间") + private Date createTime; } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java index e1c3cafc..d1f0cc43 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java @@ -22,11 +22,21 @@ public interface MallDeliveryOrderService extends IService { */ IPage pageDelivery(MallDeliveryOrderPageQuery q); + /** + * åŽå°ç®¡ç†ç«¯æŸ¥è¯¢æŠ¢å•大厅,直接查库,ä¸èµ°ç”¨æˆ·ç«¯ç¼“存逻辑。 + */ + IPage pageDeliveryAdminHall(MallDeliveryOrderPageQuery q); + /** * 分页查询é…é€å‘˜çš„é…é€å• */ IPage pageDeliveryByStatus(MallDeliveryOrderPageQuery q); + /** + * åŽå°ç®¡ç†ç«¯æŸ¥è¯¢é…é€ä¸­è®¢å•ï¼Œç›´æŽ¥æŸ¥åº“ï¼Œä¸æŒ‰ workerId 缓存维度查询。 + */ + IPage pageDeliveryByStatusAdmin(MallDeliveryOrderPageQuery q); + IPage pageDeliveryByStatusHis(MallDeliveryOrderPageQuery q); /** @@ -74,6 +84,10 @@ public interface MallDeliveryOrderService extends IService { List> countOrdersByType(String regionId); + List> countOrdersByTypeAdmin(MallDeliveryOrderPageQuery q); + + long countAssignedWaitOrdersAdmin(MallDeliveryOrderPageQuery q); + List> countOrdersByStatus(String workerId,String regionId); List> countOrdersByStatus1(String workerId,String regionId); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java index 68ced18f..6a9f4e2d 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java @@ -170,6 +170,14 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl pageDeliveryAdminHall(MallDeliveryOrderPageQuery q) { + IPage page = new Page<>(q.getPageNum(), q.getPageSize()); + page = this.baseMapper.selectAdminHallPageVO(page, q); + assembleOrderGoodsForDeliveries(page.getRecords()); + return page; + } + @Override public IPage pageDeliveryByStatus(MallDeliveryOrderPageQuery q) { IPage page = new Page<>(q.getPageNum(), q.getPageSize()); @@ -179,6 +187,14 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl pageDeliveryByStatusAdmin(MallDeliveryOrderPageQuery q) { + IPage page = new Page<>(q.getPageNum(), q.getPageSize()); + page = this.baseMapper.selectAdminPageVOByStatus(page, q); + assembleOrderGoodsForDeliveries(page.getRecords()); + return page; + } + @Override public IPage pageDeliveryByStatusHis(MallDeliveryOrderPageQuery q) { IPage page = new Page<>(q.getPageNum(), q.getPageSize()); @@ -207,6 +223,12 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl> countOrdersByTypeAdmin(MallDeliveryOrderPageQuery q) { + return this.baseMapper.countOrdersByTypeAdmin(q); + } + + @Override + public long countAssignedWaitOrdersAdmin(MallDeliveryOrderPageQuery q) { + return this.baseMapper.countAssignedWaitOrdersAdmin(q); + } + @Override public List> countOrdersByStatus(String workerId,String regionId) { List> returnList = new ArrayList<>(); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java index b0d84b51..3a971317 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java @@ -212,7 +212,8 @@ public class MallOrderGroupServiceImpl extends ServiceImpl goodsSnapshots = new ArrayList<>(); // 一次性查出所有商å“,é¿å…循环查询 @@ -236,6 +241,7 @@ public class MallOrderServiceImpl extends ServiceImpl goodsSnapshots) { + BigDecimal packageFee, BigDecimal savedAmount, + List goodsSnapshots) { BigDecimal deliveryFee = BigDecimal.ZERO; if (DELIVERY_TYPE_EXPRESS == dto.getDeliveryType()) { if (dto.getWorkerParam() != null && StringUtils.isNotBlank(dto.getWorkerParam().getWorkerId())) { @@ -298,6 +336,7 @@ public class MallOrderServiceImpl extends ServiceImpl goodsSnapshots) { + BigDecimal packageFee, BigDecimal savedAmount, + List goodsSnapshots) { CreateOrderDTO.GroupParam gp = dto.getGroupParam(); if (gp == null || gp.getTargetMembers() == null || gp.getTargetMembers() < 2) { throw new RuntimeException("拼团人数ä¸èƒ½å°‘于2人"); @@ -393,6 +434,7 @@ public class MallOrderServiceImpl extends ServiceImpl goodsSnapshots) { + BigDecimal packageFee, BigDecimal savedAmount, + List goodsSnapshots) { MallOrderGroup group = mallOrderGroupMapper.selectById(dto.getGroupId()); if (group == null) { throw new RuntimeException("拼团ä¸å­˜åœ¨"); @@ -542,6 +586,7 @@ public class MallOrderServiceImpl extends ServiceImpl 0){ + mallRefundRecord.setRefundAmount(order.getTotalAmount()); + } //订å•金é¢ä¼˜æƒ åŽ å˜æˆ0.01åŽé€€æ¬¾å˜æˆ0.01 if(order.getTotalAmount().compareTo(new BigDecimal("0.01")) == 0){ mallRefundRecord.setRefundAmount(BigDecimal.valueOf(0.01)); @@ -291,7 +294,8 @@ public class MallRefundRecordServiceImpl extends ServiceImpl + @@ -115,6 +115,9 @@ AND d.transfer_arrive_time IS NULL + + AND d.transfer_arrive_time IS NOT NULL + ORDER BY @@ -147,6 +150,61 @@ + + + + + + + + SELECT COUNT(id) AS orderCount, - SUM(delivery_fee) as amount + SUM(delivery_fee + delivery_fee_marketplace) as amount FROM mall_delivery_order WHERE `status` = 3 and worker_id = #{workerId} AND finish_time >= CURDATE() @@ -342,9 +526,9 @@ #{id} - UNION -- 使用 UNION 自动去é‡ï¼ˆå¦‚果想去é‡ï¼‰ + UNION -- 使用 UNION è‡ªåŠ¨åŽ»é‡ - -- 第二部分:通过 group_id å…³è”æŸ¥ + -- 第二部分:通过 group_id å…³è”æŸ¥è¯¢ SELECT * FROM mall_delivery_order WHERE group_id IN ( SELECT id FROM mall_order_group @@ -362,3 +546,4 @@ + diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml index 5deafabf..00f65104 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml @@ -33,6 +33,7 @@ + @@ -50,6 +51,7 @@ SELECT COUNT(*) AS count, CASE + WHEN (`status` = 2) THEN 'daipeisongjiedan' WHEN (`status` = 3 AND delivery_type = 1 AND shop_make_time IS NOT NULL) THEN 'daiqu' WHEN (`status` = 3 AND delivery_type = 2 AND user_require_make = 1) OR @@ -133,7 +135,7 @@ o.receiver_name, o.receiver_phone, o.receiver_address, o.shop_name, o.shop_phone, o.shop_address,o.number_code,o.region_id, o.settlement_status,o.shop_make_time,o.other_order,o.user_require_make - ,o.is_free_order,o.free_amount,o.is_pack,o.shop_delivery, + ,o.is_free_order,o.free_amount,o.saved_amount,o.is_pack,o.shop_delivery, o.transfer_delivery,o.transfer_address_id,o.transfer_address_name FROM mall_order o @@ -151,7 +153,15 @@ ) - AND o.shop_id = #{q.shopId} and o.status not in (0,10,2) + AND o.shop_id = #{q.shopId} + + + AND o.status NOT IN (0, 10) + + + AND o.status NOT IN (0, 10, 2) + + AND o.region_id = #{q.regionId} diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/ProblemFeedbackMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/ProblemFeedbackMapper.xml index df4e7b94..a25e448a 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/ProblemFeedbackMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/ProblemFeedbackMapper.xml @@ -10,12 +10,23 @@ - - + + + + + + + + + + + - id, create_by, create_time, del_flag, update_by, update_time, problem_content, problem_picture,shop_id,shop_name + id, create_by, create_time, del_flag, update_by, update_time, problem_content, problem_picture, user_id, + user_name, contact_phone, feedback_type, region_id, region_name, status, handle_opinion, handle_user_id, + handle_user_name, handle_time select - t.id, t.create_by,t.create_time,t.del_flag,t.problem_content, t.problem_picture, t.shop_id, t.shop_name + t.id, t.create_by, t.create_time, t.del_flag, t.problem_content, t.problem_picture, t.user_id, + t.user_name, t.contact_phone, t.feedback_type, t.region_id, t.region_name, t.status, t.handle_opinion, + t.handle_user_id, t.handle_user_name, t.handle_time from t_problem_feedback t + AND ifnull(t.del_flag, 0) = 0 AND t.problem_content like concat('%',#{queryParams.problemContent},'%') + + AND t.user_id = #{queryParams.userId} + + + AND t.region_id = #{queryParams.regionId} + + + AND t.status = #{queryParams.status} + + + AND t.feedback_type = #{queryParams.feedbackType} + ORDER BY - t.create_time desc + CASE WHEN t.status = 0 THEN 0 ELSE 1 END ASC, + t.create_time DESC \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml index 04f0ca0f..91259398 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml @@ -772,6 +772,9 @@ AND t.product_name like concat('%',#{queryParams.productName},'%') + + AND t.product_name like concat('%',#{queryParams.keywords},'%') + and t.id in diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml index c7d25817..9c3a0137 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/WorkerRelaPriceMapper.xml @@ -115,6 +115,9 @@ w.worker_status = 1 AND w.is_on_line = 1 AND w.get_push_order = 1 + + AND w.region = #{regionId} + /* 交易ä¿éšœï¼šrebate_amount > 0 */ AND w.rebate_amount > 0