Browse Source

对接拼团数据1

master
wangfukang 5 days ago
parent
commit
c3ddfb0f98
  1. 16
      hiver-admin/test-output/test-report.html
  2. 6
      hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java
  3. 7
      hiver-core/src/main/java/cc/hiver/core/entity/Worker.java
  4. 11
      hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java
  5. 106
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java
  6. 65
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java
  7. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ShopController.java
  8. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java
  9. 3
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/MallDeliveryOrderPageQuery.java
  10. 3
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/MallOrderPageQuery.java
  11. 4
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/ShopServiceImpl.java
  12. 16
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java
  13. 6
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java
  14. 28
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java
  15. 7
      hiver-modules/hiver-mall/src/main/resources/mapper/MallDeliveryOrderMapper.xml
  16. 5
      hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml

16
hiver-admin/test-output/test-report.html

@ -35,7 +35,7 @@
<a href="#"><span class="badge badge-primary">Hiver</span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">四月 18, 2026 14:58:33</span></a>
<a href="#"><span class="badge badge-primary">四月 19, 2026 15:11:39</span></a>
</li>
</ul>
</div>
@ -84,7 +84,7 @@
<div class="test-detail">
<span class="meta text-white badge badge-sm"></span>
<p class="name">passTest</p>
<p class="text-sm"><span>14:58:34 下午</span> / <span>0.017 secs</span></p>
<p class="text-sm"><span>15:11:39 下午</span> / <span>0.015 secs</span></p>
</div>
<div class="test-contents d-none">
<div class="detail-head">
@ -92,9 +92,9 @@
<div class="info">
<div class='float-right'><span class='badge badge-default'>#test-id=1</span></div>
<h5 class="test-status text-pass">passTest</h5>
<span class='badge badge-success'>04.18.2026 14:58:34</span>
<span class='badge badge-danger'>04.18.2026 14:58:34</span>
<span class='badge badge-default'>0.017 secs</span>
<span class='badge badge-success'>04.19.2026 15:11:39</span>
<span class='badge badge-danger'>04.19.2026 15:11:39</span>
<span class='badge badge-default'>0.015 secs</span>
</div>
<div class="m-t-10 m-l-5"></div>
</div>
@ -104,7 +104,7 @@
<tbody>
<tr class="event-row">
<td><span class="badge log pass-bg">Pass</span></td>
<td>14:58:34</td>
<td>15:11:39</td>
<td>
Test passed
</td>
@ -128,13 +128,13 @@
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>四月 18, 2026 14:58:33</h3>
<h3>四月 19, 2026 15:11:39</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>四月 18, 2026 14:58:34</h3>
<h3>四月 19, 2026 15:11:39</h3>
</div></div>
</div>
<div class="col-md-3">

6
hiver-core/src/main/java/cc/hiver/core/common/constant/SettingConstant.java

@ -101,10 +101,14 @@ public interface SettingConstant {
SMS_ACTIVITI,
// 无人接单用户通知
SMS_NO_ORDER,
//配送员下线
SMS_WORKEROUT,
// 拒绝接单通知
SMS_REJECT_ORDER,
// 被指定未处理通知
SMS_TIMEOUT
SMS_TIMEOUT,
//订单退款
SMS_ORDERRETURN
}
/**

7
hiver-core/src/main/java/cc/hiver/core/entity/Worker.java

@ -67,6 +67,13 @@ public class Worker implements Serializable {
@ApiModelProperty("接单状态 1-可抢单 2-不可接单() 3-已禁用(手工预置状态)")
private Integer workerStatus = 1;
/**
* 配送单量
*/
@Column(name = "order_count")
@ApiModelProperty("配送单量")
private Integer orderCount = 1;
@ApiModelProperty("配送员创建人")
@CreatedBy

11
hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java

@ -63,6 +63,8 @@ public class WorkerServiceImpl implements WorkerService {
final Path<String> workerIdField = root.get("workerId");
final Path<String> workerNameField = root.get("workerName");
final Path<Integer> workerStatusField = root.get("workerStatus");
final Path<String> regionField = root.get("region");
final Path<String> getPushOrderField = root.get("getPushOrder");
final Path<String> mobileField = root.get("mobile");
final Path<Date> createTimeField = root.get("createTime");
//final Path<Date> signPersonField = root.get("signPerson");
@ -75,7 +77,9 @@ public class WorkerServiceImpl implements WorkerService {
if (CharSequenceUtil.isNotBlank(worker.getWorkerId())) {
list.add(cb.equal(workerIdField, worker.getWorkerId()));
}
if (CharSequenceUtil.isNotBlank(worker.getRegion())) {
list.add(cb.equal(regionField, worker.getRegion()));
}
if (CharSequenceUtil.isNotBlank(worker.getUserId())) {
list.add(cb.equal(userIdField, worker.getUserId()));
}
@ -101,6 +105,11 @@ public class WorkerServiceImpl implements WorkerService {
list.add(cb.equal(isOnLineField, worker.getIsOnLine()));
}
// 是否接收指派单状态
if (worker.getGetPushOrder() != null) {
list.add(cb.equal(getPushOrderField, worker.getGetPushOrder()));
}
// 模糊搜素
// 根据配送员姓名及电话,模糊匹配
if (CharSequenceUtil.isNotEmpty(worker.getSearchStr())) {

106
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/AdminMallOrderGroupController.java

@ -0,0 +1,106 @@
package cc.hiver.mall.controller;
import cc.hiver.core.common.utils.ResultUtil;
import cc.hiver.core.common.vo.Result;
import cc.hiver.mall.entity.MallOrder;
import cc.hiver.mall.entity.MallOrderGroup;
import cc.hiver.mall.service.mybatis.MallOrderGroupService;
import cc.hiver.mall.service.mybatis.MallOrderService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
@RestController
@Api(tags = "后台管理系统拼团数据接口")
@RequestMapping("/hiver/mall/admin/orderGroup")
public class AdminMallOrderGroupController {
@Autowired
private MallOrderGroupService mallOrderGroupService;
@Autowired
private MallOrderService mallOrderService;
@Data
public static class OrderGroupQuery {
private String shopId;
private String headUserId;
private Integer status;
private String productName;
private Integer isFace;
private int pageNumber = 1;
private int pageSize = 10;
}
@PostMapping("/page")
@ApiOperation(value = "分页查询拼团列表")
public Result<Page<MallOrderGroup>> page(@RequestBody OrderGroupQuery query) {
LambdaQueryWrapper<MallOrderGroup> qw = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(query.getShopId())) {
qw.eq(MallOrderGroup::getShopId, query.getShopId());
}
if (StringUtils.isNotBlank(query.getHeadUserId())) {
qw.eq(MallOrderGroup::getHeadUserId, query.getHeadUserId());
}
if (query.getStatus() != null) {
qw.eq(MallOrderGroup::getStatus, query.getStatus());
}
if (StringUtils.isNotBlank(query.getProductName())) {
qw.like(MallOrderGroup::getProductName, query.getProductName());
}
if (query.getIsFace() != null) {
qw.eq(MallOrderGroup::getIsFace, query.getIsFace());
}
qw.orderByDesc(MallOrderGroup::getCreateTime);
Page<MallOrderGroup> page = new Page<>(query.getPageNumber(), query.getPageSize());
Page<MallOrderGroup> result = mallOrderGroupService.page(page, qw);
return new ResultUtil<Page<MallOrderGroup>>().setData(result);
}
@Data
public static class OrderGroupDetailVo {
private MallOrderGroup group;
private List<MallOrder> childOrders;
}
@GetMapping("/detail/{id}")
@ApiOperation(value = "获取拼团详情")
public Result<OrderGroupDetailVo> detail(@PathVariable("id") String id) {
MallOrderGroup group = mallOrderGroupService.getById(id);
if (group == null) {
return ResultUtil.error("拼团不存在");
}
OrderGroupDetailVo vo = new OrderGroupDetailVo();
vo.setGroup(group);
// 获取拼团的子订单
if (StringUtils.isNotBlank(group.getGroupOrderIds())) {
List<String> orderIds = Arrays.asList(group.getGroupOrderIds().split(","));
if (!orderIds.isEmpty()) {
LambdaQueryWrapper<MallOrder> oqw = new LambdaQueryWrapper<>();
oqw.in(MallOrder::getId, orderIds);
List<MallOrder> childOrders = mallOrderService.list(oqw);
vo.setChildOrders(childOrders);
} else {
vo.setChildOrders(new ArrayList<>());
}
} else {
vo.setChildOrders(new ArrayList<>());
}
return new ResultUtil<OrderGroupDetailVo>().setData(vo);
}
}

65
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommentController.java

@ -16,12 +16,19 @@ limitations under the License.
package cc.hiver.mall.controller;
import cc.hiver.core.common.constant.ShopConstant;
import cc.hiver.core.common.redis.RedisTemplateHelper;
import cc.hiver.core.common.utils.ResultUtil;
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.entity.Comment;
import cc.hiver.mall.entity.Shop;
import cc.hiver.mall.pojo.dto.ShopCacheDTO;
import cc.hiver.mall.pojo.query.CommentQuery;
import cc.hiver.mall.service.CommentService;
import cc.hiver.mall.service.ShopService;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -29,6 +36,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -47,6 +56,15 @@ public class CommentController {
@Autowired
private CommentService commentService;
@Autowired
private ShopService shopService;
@Autowired
private RedisTemplateHelper redisTemplateHelper;
@Autowired
private WorkerServiceImpl workerServiceImpl;
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation("保存")
public Result save( @RequestBody List<Comment> comment) {
@ -57,6 +75,53 @@ public class CommentController {
}else{
e.setLevel(ShopConstant.SHOP_STATUS_NORMAL);
}
if(e.getShopId().toUpperCase().startsWith("W")){
//更新配送员评分
Worker worker = workerServiceImpl.findByWorkerId(e.getShopId());
Integer oldCount = worker.getOrderCount();
BigDecimal oldScore = worker.getScore();
BigDecimal score = e.getScore();
// 1. 更新单量
int newCount = oldCount + 1;
// 2. 计算新评分:(旧总分 + 本次评分) / 新单量
BigDecimal newScore = oldScore.multiply(new BigDecimal(oldCount))
.add(score)
.divide(new BigDecimal(newCount), 2, RoundingMode.HALF_UP); // 保留2位小数
worker.setScore(newScore);
// 3. 保存更新
workerServiceImpl.update(worker);
}else{
//更新店铺评分
Shop shop = shopService.findById(e.getShopId());
Integer oldSaleCount = shop.getSaleCount() + 1;
BigDecimal oldScore = shop.getShopScore();
BigDecimal score = e.getScore();
int newCount = oldSaleCount + 1;
// 2. 计算新评分:(旧总分 + 本次评分) / 新单量
BigDecimal newScore = oldScore.multiply(new BigDecimal(oldSaleCount))
.add(score)
.divide(new BigDecimal(newCount), 2, RoundingMode.HALF_UP); // 保留2位小数
shop.setShopScore(newScore);
shopService.update(shop);
String shopCacheKey = "SHOP_CACHE:" + shop.getRegionId();
String shopJson = (String) redisTemplateHelper.hGet(shopCacheKey, shop.getId());
if (org.apache.commons.lang3.StringUtils.isNotBlank(shopJson)) {
ShopCacheDTO cacheDTO = JSONUtil.toBean(shopJson, ShopCacheDTO.class);
if (cacheDTO.getShop() != null) {
cacheDTO.getShop().setShopScore(newScore);
redisTemplateHelper.hPut(shopCacheKey, shop.getId(), JSONUtil.toJsonStr(cacheDTO));
}
}
}
});
if(comment != null && comment.get(0).getParentId()!=null){
Comment commentPar = commentService.getById(comment.get(0).getParentId());

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ShopController.java

@ -251,7 +251,7 @@ public class ShopController {
}
}
//已禁用
if(s.getStatus() < 1){
if(s.getStatus() < 1 && CharSequenceUtil.isBlank(shop.getShopIcon())){
continue;
}
if (CharSequenceUtil.isNotBlank(shop.getShopType())) {

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java

@ -126,7 +126,7 @@ public class WorkerController {
@RequestMapping(value = "/admin/edit", method = RequestMethod.POST)
@ApiOperation(value = "修改配送员信息", notes = "需要通过下单编号获取订单信息")
public Result edit(Worker u) {
public Result edit(@RequestBody Worker u) {
if (StrUtil.isNotBlank(u.getRegion())) {
ShopArea d = shopAreaService.get(u.getRegion());

3
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/MallDeliveryOrderPageQuery.java

@ -21,6 +21,9 @@ public class MallDeliveryOrderPageQuery extends HiverBasePageQuery {
@ApiModelProperty("店铺ID")
private String shopId;
@ApiModelProperty("店铺name")
private String shopName;
@ApiModelProperty("配送状态 0:待接单 1:待取货 2:配送中 3:已送达 4:已取消")
private Integer status;

3
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/MallOrderPageQuery.java

@ -15,6 +15,9 @@ public class MallOrderPageQuery extends HiverBasePageQuery {
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("用户电话")
private String receiverPhone;
@ApiModelProperty("店铺ID")
private String shopId;

4
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/ShopServiceImpl.java

@ -117,6 +117,7 @@ public class ShopServiceImpl implements ShopService {
final Path<String> regionField = root.get("regionId");
final Path<String> shopAreaField = root.get("shopArea");
final Path<String> isStudentField = root.get("isStudent");
final Path<String> statusField = root.get("status");
final List<Predicate> list = new ArrayList<>();
@ -147,6 +148,9 @@ public class ShopServiceImpl implements ShopService {
if (CharSequenceUtil.isNotBlank(shop.getShopName())) {
list.add(cb.like(ShopNameField, '%' + shop.getShopName() + '%'));
}
if (CharSequenceUtil.isBlank(shop.getShopIcon())) {
list.add(cb.notEqual(statusField, 0));
}
if (CharSequenceUtil.isNotBlank(shop.getRegionId())) {
list.add(cb.equal(regionField, shop.getRegionId()));
}

16
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java

@ -31,6 +31,8 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.ZoneId;
@ -325,7 +327,21 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl<MallDeliveryOrderM
}
//增加配送员余额
Worker worker = workerServiceImpl.findByWorkerId(delivery.getWorkerId());
//更新余额
worker.setDepoBal(worker.getDepoBal().add(delivery.getDeliveryFee()));
Integer oldCount = worker.getOrderCount();
//更新单量
worker.setOrderCount(worker.getOrderGetCount() + 1);
//更新配送时间
// 3.1 计算本次配送耗时 (毫秒)
long currentDuration = delivery.getFinishTime().getTime() - delivery.getAcceptTime().getTime();
BigDecimal oldAvgTime = worker.getAvgTime();
Integer newCount = oldCount + 1;
// 新的平均时间 = (旧平均时间 * 旧单量 + 本次配送时间) / 新单量
BigDecimal newAvgTime = oldAvgTime.multiply(new BigDecimal(oldCount))
.add(new BigDecimal(currentDuration))
.divide(new BigDecimal(newCount), 2, RoundingMode.HALF_UP);
worker.setAvgTime(newAvgTime);
workerServiceImpl.update(worker);
}

6
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java

@ -1,5 +1,7 @@
package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.constant.SettingConstant;
import cc.hiver.core.common.sms.SmsUtil;
import cc.hiver.core.entity.Worker;
import cc.hiver.core.service.WorkerService;
import cc.hiver.mall.dao.mapper.*;
@ -57,6 +59,9 @@ public class MallOrderGroupServiceImpl extends ServiceImpl<MallOrderGroupMapper,
@Autowired
private MallUserCouponService mallUserCouponService;
@Autowired
private SmsUtil smsUtil;
@Autowired
private MerchantOrderSeqUtil merchantOrderSeqUtil;
@ -170,6 +175,7 @@ public class MallOrderGroupServiceImpl extends ServiceImpl<MallOrderGroupMapper,
if (!isValid) {
// 配送员下线或规则关闭 -> 去掉 workerId 进入抢单大厅,保留原有补贴金
delivery.setWorkerId("");
smsUtil.sendCode(delivery.getReceiverPhone(), null, SettingConstant.SMS_TYPE.SMS_WORKEROUT.name());
}
}

28
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java

@ -1,7 +1,11 @@
package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.constant.SettingConstant;
import cc.hiver.core.common.redis.RedisTemplateHelper;
import cc.hiver.core.common.sms.SmsUtil;
import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.utils.SnowFlakeUtil;
import cc.hiver.core.entity.User;
import cc.hiver.core.serviceimpl.JPushServiceImpl;
import cc.hiver.mall.dao.mapper.*;
import cc.hiver.mall.entity.*;
@ -90,9 +94,15 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
@Autowired
JPushServiceImpl jPushService;
@Autowired
private SecurityUtil securityUtil;
@Autowired
private MallOrderGroupMapper mallOrderGroupMapper;
@Autowired
private SmsUtil smsUtil;
@Autowired
private MallDeliveryOrderMapper mallDeliveryOrderMapper;
@ -554,7 +564,9 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
MallDeliveryOrder delivery = mallDeliveryOrderMapper.selectByGroupId(orderId);
mallDeliveryOrderService.addDeliveryFee(order,delivery, totalFee,order.getDeliveryFee());
}else{
MallDeliveryOrder delivery = mallDeliveryOrderMapper.selectById(orderId);
LambdaQueryWrapper<MallDeliveryOrder> qw = new LambdaQueryWrapper<>();
qw.eq(MallDeliveryOrder::getOrderId, orderId);
MallDeliveryOrder delivery = mallDeliveryOrderMapper.selectOne(qw);
mallDeliveryOrderService.addDeliveryFee(order,delivery, totalFee,order.getDeliveryFee());
}
}
@ -1229,9 +1241,11 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
private MallOrder buildBaseOrder(CreateOrderDTO dto, int orderType, BigDecimal goodsAmount,
BigDecimal deliveryFee, BigDecimal packageFee) {
MallOrder order = new MallOrder();
final User user = securityUtil.getCurrUser();
order.setUserId(dto.getUserId());
order.setShopId(dto.getShopId());
order.setOrderType(orderType);
order.setReceiverPhone(user.getMobile());
order.setDeliveryType(dto.getDeliveryType());
order.setAddressId(dto.getAddressId());
order.setGetAreaId(dto.getGetAreaId());
@ -1501,6 +1515,18 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
mallRefundRecordMapper.insert(mallRefundRecord1);
}
}
//给配送员发短信
if(order.getDeliveryType() == DELIVERY_TYPE_EXPRESS){
if(order.getOrderType() == ORDER_TYPE_FACETOFACE){
MallDeliveryOrder delivery = mallDeliveryOrderMapper.selectByGroupId(order.getId());
smsUtil.sendCode(delivery.getWorkerPhone(), null, SettingConstant.SMS_TYPE.SMS_ORDERRETURN.name());
}else{
LambdaQueryWrapper<MallDeliveryOrder> qw = new LambdaQueryWrapper<>();
qw.eq(MallDeliveryOrder::getOrderId, order.getId());
MallDeliveryOrder delivery = mallDeliveryOrderMapper.selectOne(qw);
smsUtil.sendCode(delivery.getWorkerPhone(), null, SettingConstant.SMS_TYPE.SMS_ORDERRETURN.name());
}
}
List<MallOrderGoods> goodsList = mallOrderGoodsMapper.selectByOrderId(order.getId());
if (goodsList == null || goodsList.isEmpty()) return;

7
hiver-modules/hiver-mall/src/main/resources/mapper/MallDeliveryOrderMapper.xml

@ -65,6 +65,11 @@
<if test="q.shopId != null and q.shopId != ''">
AND d.shop_id = #{q.shopId}
</if>
<if test="q.shopName != null and q.shopName != ''">
and (
d.shop_name like concat('%',#{q.shopName},'%')
)
</if>
<if test="q.status != null">
AND d.status = #{q.status}
</if>
@ -122,7 +127,7 @@
d.is_big,d.is_return,d.worker_name,d.arrive_time,d.new_worker
FROM mall_delivery_order d
<where>
d.status not in (-1,4,0)
d.status not in (-1,4)
<if test="q.regionId != null and q.regionId != ''">
AND d.region_id = #{q.regionId}
</if>

5
hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderMapper.xml

@ -98,6 +98,11 @@
<if test="q.userId != null and q.userId != ''">
AND o.user_id = #{q.userId}
</if>
<if test="q.receiverPhone != null and q.receiverPhone != ''">
and (
o.receiver_phone like concat('%',#{q.receiverPhone},'%')
)
</if>
<if test="q.shopName != null and q.shopName != ''">
and (
o.shop_name like concat('%',#{q.shopName},'%')

Loading…
Cancel
Save