Browse Source

修复下单端系统派单

master
前端-胡立永 4 days ago
parent
commit
c236dafcd8
16 changed files with 170 additions and 17 deletions
  1. +97
    -4
      ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java
  2. +6
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IMallOrderServiceImpl.java
  3. +6
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletAddress.java
  4. +9
    -0
      ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletOrder.java
  5. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletAddressMapper.java
  6. +3
    -2
      ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOrderMapper.java
  7. +4
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOutDateMapper.java
  8. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletAddressService.java
  9. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOrderService.java
  10. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOutDateService.java
  11. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletAddressServiceImpl.java
  12. +3
    -2
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOrderServiceImpl.java
  13. +3
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOutDateServiceImpl.java
  14. +13
    -2
      ruoyi-catdog/src/main/resources/mapper/model/AppletOrderMapper.xml
  15. +6
    -0
      ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberAddressDTO.java
  16. +5
    -0
      ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberAddressVO.java

+ 97
- 4
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java View File

@ -2,6 +2,7 @@ package com.ruoyi.applet.contoller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.service.H5OrderService;
import com.cyl.h5.service.H5PetCareService;
@ -23,6 +24,7 @@ import com.ruoyi.applet.service.IMallOrderService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.model.domain.*;
import com.ruoyi.model.service.*;
@ -36,6 +38,7 @@ import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -83,10 +86,16 @@ public class ApiAppletOrderController extends BaseController {
@Autowired
private OmsOrderServiceMapper omsOrderServiceMapper;
@Autowired
private IAppletAddressService appletAddressService;
@Autowired
private IAppletOutDateService appletOutDateService;
@Autowired
private IAppletOrderDateFrequencyService appletOrderDateFrequencyService;
@ApiOperation("接单大厅列表-带分页")
@GetMapping("/list")
public AjaxResult outDateList(AppletOrder appletOrder){
@ -111,9 +120,95 @@ public class ApiAppletOrderController extends BaseController {
List<AppletOrderItem> itemList = null;
if(appletOrder.getType().equals("0")){
// TODO 这里需要加上伴宠师等级的筛选
//查询当前伴宠师地址
List<AppletAddress> addressList = appletAddressService.lambdaQuery()
.eq(AppletAddress::getUserId, appUsers.getUserId())
.list();
//没有接单地址无法接单
if (addressList.size() == 0){
return AjaxResult.error("补全接单地址,开始接单");
}
boolean addressBoolean = false;
list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder);
for (AppletAddress appletAddress : addressList) {
if (StringUtils.isNotEmpty(appletAddress.getLatitude()) &&
StringUtils.isNotEmpty(appletAddress.getLongitude()) &&
StringUtils.isNotEmpty(appletAddress.getRangeNo()) &&
"true".equals(appletAddress.getStatus())){
addressBoolean = true;
break;
}
}
list = appletOrderService.lambdaQuery()
.eq(AppletOrder::getStatus, 0)
.eq(AppletOrder::getType, appletOrder.getType())
.eq(AppletOrder::getCompanionLevel, appUsers.getUserBcsRole())
.like(appletOrder.getUserIdJson() != null, AppletOrder::getUserIdJson, appletOrder.getUserIdJson())
.and(addressList.size() > 0 && addressBoolean, q -> {
for (AppletAddress appletAddress : addressList) {
//
if (StringUtils.isNotEmpty(appletAddress.getLatitude()) &&
StringUtils.isNotEmpty(appletAddress.getLongitude()) &&
StringUtils.isNotEmpty(appletAddress.getRangeNo()) &&
"true".equals(appletAddress.getStatus())){
//计算地址范围 getRangeNo getLatitude getLongitude
BigDecimal latitude = new BigDecimal(appletAddress.getLatitude());
BigDecimal longitude = new BigDecimal(appletAddress.getLongitude());
BigDecimal range = new BigDecimal(appletAddress.getRangeNo());//公里数
// 将公里数转换为经纬度范围
// 1度纬度约等于111公里
// 1度经度约等于111*cos(纬度)公里
BigDecimal latRange = range.divide(new BigDecimal("111"), 6, RoundingMode.HALF_UP);
BigDecimal lngRange = range.divide(new BigDecimal("111").multiply(new BigDecimal(Math.cos(latitude.doubleValue() * Math.PI / 180))), 6, RoundingMode.HALF_UP);
// 计算经纬度范围
BigDecimal latMin = latitude.subtract(latRange);
BigDecimal latMax = latitude.add(latRange);
BigDecimal lngMin = longitude.subtract(lngRange);
BigDecimal lngMax = longitude.add(lngRange);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//查询当前地址不接单的日期
List<String> dates = appletOutDateService
.lambdaQuery()
.select(AppletOutDate::getDate)
.eq(AppletOutDate::getAddressId, appletAddress.getId())
.list().stream()
.map(n -> {
return sdf.format(n.getDate());
})
.collect(Collectors.toList());
q.or(w -> {
if(dates.size() > 0){
//根据当前日期从serviceList中查询不符合条件的订单id
List<Long> orderIds = omsOrderServiceMapper.selectList(
Wrappers.<OmsOrderService>lambdaQuery()
.select(OmsOrderService::getOrderId)
.groupBy(OmsOrderService::getOrderId)
.in(OmsOrderService::getServiceDate, dates))
.stream().map(n -> n.getOrderId()).collect(Collectors.toList());
if (orderIds.size() > 0){
w.notIn(AppletOrder::getOrderId, orderIds);
}
}
w.between(AppletOrder::getLatitude, latMin, latMax)
.between(AppletOrder::getLongitude, lngMin, lngMax);
});
}
}
})
.list();
// list = appletOrderService.selectAppletOrderListLikeUserIdJson(appletOrder);
for (AppletOrder order : list) {
H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getOrderId());
// 得到服务信息
@ -230,8 +325,6 @@ public class ApiAppletOrderController extends BaseController {
}
//接单大厅 - 根据订单标识查询订单详情的接口
@ApiOperation("接单大厅 - 根据订单标识查询订单详情的接口")
@GetMapping("/getByOrderId")


+ 6
- 0
ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IMallOrderServiceImpl.java View File

@ -103,6 +103,9 @@ public class IMallOrderServiceImpl implements IMallOrderService {
appletOrder.setAddress(address);//订单详细地址
appletOrder.setOrderSn(h5OrderVO.getOrderSn());
appletOrder.setOrderId(h5OrderVO.getOrderId());
appletOrder.setCompanionLevel(h5OrderVO.getCompanionLevel());
appletOrder.setLongitude(Double.valueOf(h5OrderVO.getLongitude()));
appletOrder.setLatitude(Double.valueOf(h5OrderVO.getLatitude()));
appletOrderService.insertAppletOrder(appletOrder);
@ -167,6 +170,9 @@ public class IMallOrderServiceImpl implements IMallOrderService {
appletOrder.setAddress(address);//订单详细地址
appletOrder.setOrderSn(h5OrderVO.getOrderSn());
appletOrder.setOrderId(h5OrderVO.getOrderId());
appletOrder.setCompanionLevel(h5OrderVO.getCompanionLevel());
appletOrder.setLongitude(Double.valueOf(h5OrderVO.getLongitude()));
appletOrder.setLatitude(Double.valueOf(h5OrderVO.getLatitude()));
appletOrderService.insertAppletOrder(appletOrder);


+ 6
- 0
ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletAddress.java View File

@ -80,6 +80,12 @@ public class AppletAddress extends BaseEntity
/** 删除标识 */
private Integer delFlag;
/**
* 备注
*/
@TableField(exist = false)
private String remark;
// public void setId(Long id)
// {
// this.id = id;


+ 9
- 0
ruoyi-catdog/src/main/java/com/ruoyi/model/domain/AppletOrder.java View File

@ -105,4 +105,13 @@ public class AppletOrder {
@TableField(exist = false)
private String userName;
//指定的伴宠师等级
private Integer companionLevel;
/** 经度 */
private Double longitude;
/** 纬度 */
private Double latitude;
}

+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletAddressMapper.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.model.domain.AppletAddress;
/**
@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletAddress;
* @author ruoyi
* @date 2025-03-28
*/
public interface AppletAddressMapper
public interface AppletAddressMapper extends BaseMapper<AppletAddress>
{
/**
* 查询地址信息


+ 3
- 2
ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOrderMapper.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.model.domain.AppletOrder;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -11,8 +13,7 @@ import org.apache.ibatis.annotations.Select;
* @author ruoyi
* @date 2025-03-28
*/
public interface AppletOrderMapper
{
public interface AppletOrderMapper extends BaseMapper<AppletOrder> {
/**
* 查询订单信息
*


+ 4
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/mapper/AppletOutDateMapper.java View File

@ -1,8 +1,11 @@
package com.ruoyi.model.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.model.domain.AppletOutDate;
import org.apache.ibatis.annotations.Delete;
import sun.misc.VM;
/**
* 不接单日期Mapper接口
@ -10,7 +13,7 @@ import org.apache.ibatis.annotations.Delete;
* @author ruoyi
* @date 2025-03-28
*/
public interface AppletOutDateMapper
public interface AppletOutDateMapper extends BaseMapper<AppletOutDate>
{
/**
* 查询不接单日期


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletAddressService.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.model.domain.AppletAddress;
/**
@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletAddress;
* @author ruoyi
* @date 2025-03-28
*/
public interface IAppletAddressService
public interface IAppletAddressService extends IService<AppletAddress>
{
/**
* 查询地址信息


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOrderService.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.model.domain.AppletOrder;
/**
@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletOrder;
* @author ruoyi
* @date 2025-03-28
*/
public interface IAppletOrderService
public interface IAppletOrderService extends IService<AppletOrder>
{
/**
* 查询订单信息


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/IAppletOutDateService.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.model.domain.AppletOutDate;
/**
@ -9,7 +11,7 @@ import com.ruoyi.model.domain.AppletOutDate;
* @author ruoyi
* @date 2025-03-28
*/
public interface IAppletOutDateService
public interface IAppletOutDateService extends IService<AppletOutDate>
{
/**
* 查询不接单日期


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletAddressServiceImpl.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -15,7 +17,7 @@ import com.ruoyi.model.service.IAppletAddressService;
* @date 2025-03-28
*/
@Service
public class AppletAddressServiceImpl implements IAppletAddressService
public class AppletAddressServiceImpl extends ServiceImpl<AppletAddressMapper, AppletAddress> implements IAppletAddressService
{
@Autowired
private AppletAddressMapper appletAddressMapper;


+ 3
- 2
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOrderServiceImpl.java View File

@ -2,6 +2,8 @@ package com.ruoyi.model.service.impl;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -16,8 +18,7 @@ import com.ruoyi.model.service.IAppletOrderService;
* @date 2025-03-28
*/
@Service
public class AppletOrderServiceImpl implements IAppletOrderService
{
public class AppletOrderServiceImpl extends ServiceImpl<AppletOrderMapper, AppletOrder> implements IAppletOrderService {
@Autowired
private AppletOrderMapper appletOrderMapper;


+ 3
- 1
ruoyi-catdog/src/main/java/com/ruoyi/model/service/impl/AppletOutDateServiceImpl.java View File

@ -1,6 +1,8 @@
package com.ruoyi.model.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -15,7 +17,7 @@ import com.ruoyi.model.service.IAppletOutDateService;
* @date 2025-03-28
*/
@Service
public class AppletOutDateServiceImpl implements IAppletOutDateService
public class AppletOutDateServiceImpl extends ServiceImpl<AppletOutDateMapper, AppletOutDate> implements IAppletOutDateService
{
@Autowired
private AppletOutDateMapper appletOutDateMapper;


+ 13
- 2
ruoyi-catdog/src/main/resources/mapper/model/AppletOrderMapper.xml View File

@ -23,11 +23,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="orderSn" column="order_sn"/>
<result property="orderId" column="order_id"/>
<result property="orderTime" column="order_time"/>
</resultMap>
<sql id="selectAppletOrderVo">
select id, create_time, create_by, update_time, update_by, pay_time, status, price, address, type, reason, user_id, pet_id,num,user_id_json,order_id,order_sn,order_time from applet_order
select id, create_time, create_by, update_time, update_by, pay_time, status, price, address, type, reason, user_id,
pet_id,num,user_id_json,order_id,order_sn,order_time,companion_level,
longitude, latitude
from applet_order
</sql>
<select id="selectAppletOrderList" parameterType="AppletOrder" resultMap="AppletOrderResult">
@ -112,6 +114,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderSn != null">order_sn,</if>
<if test="orderId != null">order_id,</if>
<if test="orderTime != null">order_time,</if>
<if test="companionLevel != null">companion_level,</if>
<if test="longitude != null">longitude,</if>
<if test="latitude != null">latitude,</if>
</trim>
@ -134,6 +139,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderSn != null">#{orderSn},</if>
<if test="orderId != null">#{orderId},</if>
<if test="orderTime != null">#{orderTime},</if>
<if test="companionLevel != null">#{companionLevel},</if>
<if test="longitude != null">#{longitude},</if>
<if test="latitude != null">#{latitude},</if>
@ -159,6 +167,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderSn != null">order_sn = #{orderSn},</if>
<if test="orderId != null">order_id = #{orderId},</if>
<if test="orderTime != null"> order_time = #{orderTime},</if>
<if test="companionLevel != null"> companion_level = #{companionLevel},</if>
<if test="longitude != null"> longitude = #{longitude},</if>
<if test="latitude != null"> latitude = #{latitude},</if>
</trim>


+ 6
- 0
ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberAddressDTO.java View File

@ -23,6 +23,12 @@ public class MemberAddressDTO {
private String city;
private String district;
private String detailAddress;
//纬度
private String latitude;
//经度
private String longitude;
private Integer isDefault;


+ 5
- 0
ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberAddressVO.java View File

@ -78,4 +78,9 @@ public class MemberAddressVO extends BaseAudit {
@ApiModelProperty("STAFF_ID")
@Excel(name = "STAFF_ID")
private Long staffId;
//纬度
private String latitude;
//经度
private String longitude;
}

Loading…
Cancel
Save