7 changed files with 264 additions and 0 deletions
@ -0,0 +1,43 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.controller; |
||||
|
|
||||
|
import cc.hiver.core.common.utils.ResultUtil; |
||||
|
import cc.hiver.core.common.vo.Result; |
||||
|
import cc.hiver.mall.logisticsaddressbook.entity.LogisticsAddressBook; |
||||
|
import cc.hiver.mall.logisticsaddressbook.service.LogisticsAddressBookService; |
||||
|
import cc.hiver.mall.logisticsaddressbook.vo.LogisticsAddressBookQueryVo; |
||||
|
import cc.hiver.mall.logisticsorder.entity.LogisticsOrder; |
||||
|
import cc.hiver.mall.logisticsorder.service.LogisticsOrderService; |
||||
|
import cc.hiver.mall.logisticsorder.vo.LogisticsOrderQueryVo; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import io.swagger.annotations.Api; |
||||
|
import io.swagger.annotations.ApiOperation; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
|
||||
|
@Slf4j |
||||
|
@RestController |
||||
|
@Api(tags = "收发货地址信息接口") |
||||
|
@RequestMapping("/hiver/app/logisticsAddressBook/") |
||||
|
@Transactional |
||||
|
public class LogisticsAddressBookController { |
||||
|
|
||||
|
@Autowired |
||||
|
private LogisticsAddressBookService logisticsAddressBookService; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询收发货地址簿的控制器方法 |
||||
|
* |
||||
|
* @param logisticsAddressBookQueryVo 查询条件封装类 |
||||
|
* @return 包含分页查询结果的响应对象 |
||||
|
*/ |
||||
|
@RequestMapping(value = "/getLogisticsAddressBookPageList", method = RequestMethod.POST) |
||||
|
@ApiOperation(value = "分页查询收发货地址簿") |
||||
|
public Result<IPage<LogisticsAddressBook>> getLogisticsOrderPageList(@RequestBody(required = false)LogisticsAddressBookQueryVo logisticsAddressBookQueryVo) { |
||||
|
final IPage<LogisticsAddressBook> result = logisticsAddressBookService.getLogisticsAddressBookPageList(logisticsAddressBookQueryVo); |
||||
|
return new ResultUtil<IPage<LogisticsAddressBook>>().setData(result); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,41 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.entity; |
||||
|
|
||||
|
import cc.hiver.core.base.HiverBaseEntity; |
||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
/** |
||||
|
* 收发货地址簿实体 |
||||
|
* |
||||
|
* @author 乔徽 |
||||
|
* @date 2024/9/8 |
||||
|
*/ |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@Data |
||||
|
@ApiModel(value = "收发货人地址簿表") |
||||
|
@TableName(value = "t_logistics_address_book", autoResultMap = true) |
||||
|
public class LogisticsAddressBook extends HiverBaseEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
@ApiModelProperty(value = "货运类型") |
||||
|
private int addressType; |
||||
|
|
||||
|
@ApiModelProperty(value = "收发货人名称") |
||||
|
private String shipperOrReceiverName; |
||||
|
|
||||
|
@ApiModelProperty(value = "联系电话") |
||||
|
private String mobile; |
||||
|
|
||||
|
@ApiModelProperty(value = "地址") |
||||
|
private String addressInfo; |
||||
|
|
||||
|
@ApiModelProperty(value = "物流公司id") |
||||
|
private String companyId; |
||||
|
|
||||
|
@ApiModelProperty(value = "物流公司名称") |
||||
|
private String companyName; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.mapper; |
||||
|
|
||||
|
import cc.hiver.mall.logisticsaddressbook.entity.LogisticsAddressBook; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
|
||||
|
public interface LogisticsAddressBookMapper extends BaseMapper<LogisticsAddressBook> { |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.service; |
||||
|
|
||||
|
import cc.hiver.mall.logisticsaddressbook.entity.LogisticsAddressBook; |
||||
|
import cc.hiver.mall.logisticsaddressbook.vo.LogisticsAddressBookQueryVo; |
||||
|
import cc.hiver.mall.logisticsorder.entity.LogisticsOrder; |
||||
|
import cc.hiver.mall.logisticsorder.vo.LogisticsOrderQueryVo; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
|
||||
|
public interface LogisticsAddressBookService extends IService<LogisticsAddressBook> { |
||||
|
|
||||
|
|
||||
|
boolean saveLogisticsAddressBook(LogisticsOrder logisticsOrder); |
||||
|
|
||||
|
|
||||
|
IPage<LogisticsAddressBook> getLogisticsAddressBookPageList(LogisticsAddressBookQueryVo logisticsAddressBookQueryVo); |
||||
|
} |
||||
@ -0,0 +1,123 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.service.impl; |
||||
|
|
||||
|
import cc.hiver.mall.logisticsaddressbook.entity.LogisticsAddressBook; |
||||
|
import cc.hiver.mall.logisticsaddressbook.mapper.LogisticsAddressBookMapper; |
||||
|
import cc.hiver.mall.logisticsaddressbook.service.LogisticsAddressBookService; |
||||
|
import cc.hiver.mall.logisticsaddressbook.vo.LogisticsAddressBookQueryVo; |
||||
|
import cc.hiver.mall.logisticsorder.entity.LogisticsOrder; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.google.gson.Gson; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @ClassName:LogisticsAddressBookServiceImpl |
||||
|
* @Author: qiaohui |
||||
|
* @Date: 2024/9/8 10:15 |
||||
|
* @Description: 收发货地址簿接口 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class LogisticsAddressBookServiceImpl extends ServiceImpl<LogisticsAddressBookMapper, LogisticsAddressBook>implements LogisticsAddressBookService { |
||||
|
|
||||
|
|
||||
|
@Autowired |
||||
|
private LogisticsAddressBookMapper logisticsAddressBookMapper; |
||||
|
|
||||
|
/** |
||||
|
* 保存物流地址簿信息 |
||||
|
* |
||||
|
* @param logisticsOrder 物流订单对象,包含地址簿所需的信息 |
||||
|
* @return 保存成功返回true,否则返回false |
||||
|
*/ |
||||
|
@Override |
||||
|
public boolean saveLogisticsAddressBook(LogisticsOrder logisticsOrder) { |
||||
|
|
||||
|
List<LogisticsAddressBook> list = new ArrayList<>(); |
||||
|
|
||||
|
//根据名称、电话、地址查询看是不是存在,如果不存在则新建一条
|
||||
|
LambdaQueryWrapper<LogisticsAddressBook> stuQuery = new LambdaQueryWrapper<>(); |
||||
|
stuQuery.eq(LogisticsAddressBook::getShipperOrReceiverName, logisticsOrder.getShipperName()) |
||||
|
.eq(LogisticsAddressBook::getAddressType, 1) |
||||
|
.eq(LogisticsAddressBook::getMobile, logisticsOrder.getShipperMobile()) |
||||
|
.eq(LogisticsAddressBook::getAddressInfo, logisticsOrder.getShipperAddress()); |
||||
|
Long count = getBaseMapper().selectCount(stuQuery); |
||||
|
|
||||
|
if(count == 0){ |
||||
|
// 创建发货人地址簿
|
||||
|
LogisticsAddressBook shipperAddressBook = new LogisticsAddressBook(); |
||||
|
// 设置发货人名称,从物流订单的发货人名称中获取
|
||||
|
shipperAddressBook.setShipperOrReceiverName(logisticsOrder.getShipperName()); |
||||
|
// 设置地址信息,从物流订单的发货人地址获取
|
||||
|
shipperAddressBook.setAddressInfo(logisticsOrder.getShipperAddress()); |
||||
|
// 设置地址类型,1表示发货人地址
|
||||
|
shipperAddressBook.setAddressType(1); |
||||
|
// 设置公司ID,从物流订单中获取
|
||||
|
shipperAddressBook.setCompanyId(logisticsOrder.getCompanyId()); |
||||
|
// 设置公司名称,从物流订单中获取
|
||||
|
shipperAddressBook.setCompanyName(logisticsOrder.getCompanyName()); |
||||
|
// 设置创建人,从物流订单中获取
|
||||
|
shipperAddressBook.setCreateBy(logisticsOrder.getCreateBy()); |
||||
|
// 设置联系电话,从物流订单的发货人手机信息中获取
|
||||
|
shipperAddressBook.setMobile(logisticsOrder.getShipperMobile()); |
||||
|
// 设置收发货人名称,从物流订单的发货人名称中获取
|
||||
|
shipperAddressBook.setShipperOrReceiverName(logisticsOrder.getShipperName()); |
||||
|
// 设置创建人
|
||||
|
shipperAddressBook.setCreateBy(logisticsOrder.getCreateBy()); |
||||
|
list.add(shipperAddressBook); |
||||
|
} |
||||
|
|
||||
|
LambdaQueryWrapper<LogisticsAddressBook> stuQuery2 = new LambdaQueryWrapper<>(); |
||||
|
stuQuery2.eq(LogisticsAddressBook::getShipperOrReceiverName, logisticsOrder.getReceiverName()) |
||||
|
.eq(LogisticsAddressBook::getAddressType, 2) |
||||
|
.eq(LogisticsAddressBook::getMobile, logisticsOrder.getReceiverMobile()) |
||||
|
.eq(LogisticsAddressBook::getAddressInfo, logisticsOrder.getReceiverAddress()); |
||||
|
Long count2 = getBaseMapper().selectCount(stuQuery2); |
||||
|
|
||||
|
if(count2 == 0) { |
||||
|
// 创建收货人地址簿
|
||||
|
LogisticsAddressBook reciverAddressBook = new LogisticsAddressBook(); |
||||
|
// 设置收货人名称,从物流订单的收货人名称中获取
|
||||
|
reciverAddressBook.setShipperOrReceiverName(logisticsOrder.getReceiverName()); |
||||
|
// 设置地址信息,从物流订单的发货人地址获取
|
||||
|
reciverAddressBook.setAddressInfo(logisticsOrder.getReceiverAddress()); |
||||
|
// 设置地址类型,1表示发货人地址
|
||||
|
reciverAddressBook.setAddressType(2); |
||||
|
// 设置公司ID,从物流订单中获取
|
||||
|
reciverAddressBook.setCompanyId(logisticsOrder.getCompanyId()); |
||||
|
// 设置公司名称,从物流订单中获取
|
||||
|
reciverAddressBook.setCompanyName(logisticsOrder.getCompanyName()); |
||||
|
// 设置创建人,从物流订单中获取
|
||||
|
reciverAddressBook.setCreateBy(logisticsOrder.getCreateBy()); |
||||
|
// 设置联系电话,从物流订单的发货人手机信息中获取
|
||||
|
reciverAddressBook.setMobile(logisticsOrder.getReceiverMobile()); |
||||
|
// 设置创建人
|
||||
|
reciverAddressBook.setCreateBy(logisticsOrder.getCreateBy()); |
||||
|
list.add(reciverAddressBook); |
||||
|
} |
||||
|
// 调用save方法保存地址簿信息,返回保存结果
|
||||
|
Gson gson = new Gson(); |
||||
|
System.out.println(gson.toJson(list)); |
||||
|
return saveBatch(list); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public IPage<LogisticsAddressBook> getLogisticsAddressBookPageList(LogisticsAddressBookQueryVo logisticsAddressBookQueryVo) { |
||||
|
Page<LogisticsAddressBook> page = new Page<>(); |
||||
|
LambdaQueryWrapper<LogisticsAddressBook> wrapper = new LambdaQueryWrapper<>(); |
||||
|
if(logisticsAddressBookQueryVo != null && StringUtils.isNotEmpty(logisticsAddressBookQueryVo.getShipperOrReceiverName())){ |
||||
|
wrapper.like(LogisticsAddressBook::getShipperOrReceiverName, logisticsAddressBookQueryVo.getShipperOrReceiverName()); |
||||
|
} |
||||
|
if(logisticsAddressBookQueryVo != null && StringUtils.isNotEmpty(logisticsAddressBookQueryVo.getMobile())){ |
||||
|
wrapper.like(StringUtils.isNotEmpty(logisticsAddressBookQueryVo.getMobile()), LogisticsAddressBook::getMobile, logisticsAddressBookQueryVo.getMobile()); |
||||
|
} |
||||
|
return logisticsAddressBookMapper.selectPage(page,wrapper); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
package cc.hiver.mall.logisticsaddressbook.vo; |
||||
|
|
||||
|
import cc.hiver.core.base.HiverBasePageQuery; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
|
||||
|
/** |
||||
|
* 收发货地址簿查询条件 |
||||
|
* |
||||
|
* @author 乔徽 |
||||
|
* @date 2024/9/8 |
||||
|
*/ |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@Data |
||||
|
public class LogisticsAddressBookQueryVo extends HiverBasePageQuery { |
||||
|
|
||||
|
@ApiModelProperty(value = "联系电话") |
||||
|
private String mobile; |
||||
|
|
||||
|
@ApiModelProperty(value = "收发货人名称") |
||||
|
private String shipperOrReceiverName; |
||||
|
} |
||||
Loading…
Reference in new issue