运费设置业务类 添加相关方法

This commit is contained in:
Jack 2024-11-25 00:27:31 +08:00
parent 046aff7463
commit 1d6c4bdf5b
13 changed files with 157 additions and 33 deletions

View File

@ -3,11 +3,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@ -75,9 +77,13 @@ public class ShopStorePrinter implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -3,6 +3,7 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
@ -10,6 +11,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@ -85,9 +87,13 @@ public class ShopStorePrinterLog implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -3,11 +3,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@ -57,9 +59,13 @@ public class ShopStorePrinterModel implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -3,11 +3,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@ -48,9 +50,13 @@ public class ShopStorePrinterRegion implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -3,11 +3,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@ -60,9 +62,13 @@ public class ShopStorePrinterTemplate implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -11,11 +11,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
@ -74,9 +76,13 @@ public class ShopStoreSameCityTransport implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -11,11 +11,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
@ -89,9 +91,13 @@ public class ShopStoreSameCityTransportBase implements Serializable {
@ApiModelProperty(value = "更新用户ID")
private Integer updated_by;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "新增时间")
private Date created_at;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "修改时间")
private Date updated_at;
}

View File

@ -31,4 +31,24 @@ public class ShopStoreSameCityTransportBaseDTO implements Serializable {
@ApiModelProperty(value = "店铺同城快递运费设置(起送条件+优惠条件)")
public List<ShopStoreSameCityTransport> transportList;
public void rebuildTransportList() {
if (this.transportBase == null || this.transportList.isEmpty()) {
return;
}
for (ShopStoreSameCityTransport transport : this.transportList) {
transport.setTransport_base_id(this.transportBase.getTransport_base_id());
transport.setUpdated_by(this.transportBase.getUpdated_by());
transport.setUpdated_at(this.transportBase.getUpdated_at());
if (transport.getCreated_by() == null) {
transport.setCreated_by(transport.getUpdated_by());
}
if (transport.getCreated_at() == null) {
transport.setCreated_at(transport.getUpdated_at());
}
}
}
}

View File

@ -1,20 +1,21 @@
package com.suisung.mall.shop.store.controller.admin;
import cn.hutool.json.JSONUtil;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.modules.store.ShopStorePrinter;
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase;
import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO;
import com.suisung.mall.common.utils.JsonUtil;
import com.suisung.mall.shop.store.service.ShopStorePrinterService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "门店打票机打印业务")
@Api(tags = "同城配送运费设置控制器")
@RestController
@RequestMapping("/admin/shop/store/same-city-transport")
public class ShopStoreSameCityTransportBaseController {
@ -22,10 +23,16 @@ public class ShopStoreSameCityTransportBaseController {
@Resource
private ShopStoreSameCityTransportBaseService transportBaseService;
@ApiOperation(value = "同城配送运费设置详情", notes = "同城配送运费设置详情")
@ApiOperation(value = "获取同城配送运费设置详情", notes = "获取同城配送运费设置详情")
@RequestMapping(value = "/detail", method = {RequestMethod.GET})
public CommonResult shopStorePrinterDetail() {
public CommonResult shopStoreSameCityTransportBaseDetail() {
return transportBaseService.ShopStoreSameCityTransportBaseDetail();
}
@ApiOperation(value = "保存(新增或修改)同城配送运费设置", notes = "保存(新增或修改)同城配送运费设置")
@RequestMapping(value = "/save", method = {RequestMethod.POST})
public CommonResult shopStoreSameCityTransportBaseSettingDetail(@RequestBody(required = true) String requestBody) {
ShopStoreSameCityTransportBaseDTO params = JsonUtil.json2object(requestBody, ShopStoreSameCityTransportBaseDTO.class);
return transportBaseService.saveOrUpdateSameCityTransport(params);
}
}

View File

@ -11,17 +11,20 @@ package com.suisung.mall.shop.store.service;
import com.suisung.mall.common.api.CommonResult;
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase;
import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO;
import org.springframework.data.util.Pair;
public interface ShopStoreSameCityTransportBaseService {
/**
* 获取同城配送设置详情信息
*
* @return
*/
CommonResult ShopStoreSameCityTransportBaseDetail();
/**
* 保存或更新同城配送各项设置
*
* @param shopStoreSameCityTransportBaseDTO
* @return
*/
@ -29,6 +32,7 @@ public interface ShopStoreSameCityTransportBaseService {
/**
* 根据店铺 Id 获取同城配送设置详情信息
*
* @param storeId
* @return
*/
@ -37,8 +41,9 @@ public interface ShopStoreSameCityTransportBaseService {
/**
* 保存同城配送基础设置存在更新不存在新增
*
* @param shopStoreSameCityTransportBase
* @return
*/
Boolean saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase shopStoreSameCityTransportBase);
Pair<Long, String> saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase shopStoreSameCityTransportBase);
}

View File

@ -26,9 +26,8 @@ public interface ShopStoreSameCityTransportService {
/**
* 保存同城配送扩展设置列表存在就更新不存在就新增
* @param transportBaseId
* @param transportList
* @return 成功的记录数
*/
Integer saveOrUpdateShopStoreSameCityTransportList(Long transportBaseId, List<ShopStoreSameCityTransport> transportList);
Integer saveOrUpdateShopStoreSameCityTransportList(List<ShopStoreSameCityTransport> transportList);
}

View File

@ -25,6 +25,7 @@ import com.suisung.mall.shop.store.service.ShopStoreBaseService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.util.Pair;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -76,12 +77,12 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
@Override
public CommonResult saveOrUpdateSameCityTransport(ShopStoreSameCityTransportBaseDTO shopStoreSameCityTransportBaseDTO) {
// 判断有没有权限
UserDto user = getCurrentUser();
if (user == null || !user.isStore()) {
return CommonResult.failed("无权限操作!");
}
// UserDto user = getCurrentUser();
// if (user == null || !user.isStore()) {
// return CommonResult.failed("无权限操作!");
// }
Integer userId = user.getId();
Integer userId = 3;//user.getId();
if (shopStoreSameCityTransportBaseDTO == null || shopStoreSameCityTransportBaseDTO.getTransportBase() == null) {
return CommonResult.failed("参数有误");
@ -90,16 +91,18 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
ShopStoreSameCityTransportBase transportBase = shopStoreSameCityTransportBaseDTO.getTransportBase();
transportBase.setUpdated_by(userId);
// 新增或更新同城配送基础设置
boolean success = saveOrUpdateShopStoreSameCityTransportBase(transportBase);
Pair<Long,String> pair = saveOrUpdateShopStoreSameCityTransportBase(transportBase);
// 新增或更新同城配送扩展设置列表
shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(transportBase.getTransport_base_id(), shopStoreSameCityTransportBaseDTO.getTransportList());
shopStoreSameCityTransportBaseDTO.setTransportBase(transportBase);
shopStoreSameCityTransportBaseDTO.rebuildTransportList();
shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(shopStoreSameCityTransportBaseDTO.getTransportList());
if (success) {
CommonResult.success();
if (pair.getFirst()>0) {
return CommonResult.success(null, pair.getSecond());
}
return CommonResult.failed("操作失败!");
return CommonResult.failed(pair.getSecond());
}
/**
@ -160,26 +163,50 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl<S
return shopStoreSameCityTransportBaseDTO;
}
public Boolean saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase transportBase) {
public Pair<Long,String> saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase transportBase) {
if (transportBase == null || transportBase.getStore_id() == null || transportBase.getStore_id() <= 0) {
return false;
return Pair.of(0L, "缺少店铺Id必要参数");
}
if (transportBase.getDistance_base() == null || transportBase.getDistance_base() <= 0) {
return Pair.of(0L, "请输入距离!");
}
if (transportBase.getWeight_base() == null || transportBase.getWeight_base() <= 0) {
return Pair.of(0L, "请输入重量!");
}
if (transportBase.getDelivery_base_fee() == null || BigDecimal.ZERO.compareTo(transportBase.getDelivery_base_fee()) >= 0) {
return Pair.of(0L, "请输入配送运费!");
}
QueryWrapper<ShopStoreSameCityTransportBase> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id", transportBase.getStore_id());
ShopStoreSameCityTransportBase transportBaseExist = getOne(queryWrapper);
if (transportBase == null) {
if (transportBaseExist == null) {
// 新增记录
transportBase.setCreated_by(transportBase.getUpdated_by());
return save(transportBase);
if (save(transportBase)) {
// 应返回自增id
transportBaseExist = getOne(queryWrapper);
transportBase.setTransport_base_id(transportBaseExist.getTransport_base_id());
return Pair.of(transportBaseExist.getTransport_base_id(), "添加成功!");
} else {
return Pair.of(0L, "添加失败!");
}
}
// 记录已经存在就直接更新
Long transportBaseId = transportBase.getTransport_base_id();
if (transportBaseId == null || transportBase.getTransport_base_id() <= 0) {
transportBase.setTransport_base_id(transportBaseExist.getTransport_base_id());
}
// 更新记录
return updateById(transportBase);
if (updateById(transportBase)) {
return Pair.of(transportBase.getTransport_base_id(), "更新成功!");
} else {
return Pair.of(0L, "更新失败!");
}
}
}

View File

@ -15,14 +15,18 @@ import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport;
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportMapper;
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
@Service
public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopStoreSameCityTransportMapper, ShopStoreSameCityTransport> implements ShopStoreSameCityTransportService {
private static final Logger logger = LoggerFactory.getLogger(ShopStoreSameCityTransportServiceImpl.class);
/**
* 根据同城配送基础配置自增 Id 获取同城配送扩展设置列表
@ -52,28 +56,48 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl<ShopS
/**
* 保存同城配送扩展设置列表存在就更新不存在就新增
*
* @param transportBaseId
* @param transportList
* @return 成功的记录数
*/
@Override
public Integer saveOrUpdateShopStoreSameCityTransportList(Long transportBaseId, List<ShopStoreSameCityTransport> transportList) {
if (CollectionUtil.isEmpty(transportList) || transportBaseId == null || transportBaseId <= 0) {
public Integer saveOrUpdateShopStoreSameCityTransportList(List<ShopStoreSameCityTransport> transportList) {
if (CollectionUtil.isEmpty(transportList)) {
logger.error("缺少必要参数!");
return 0;
}
int count = 0;
for (ShopStoreSameCityTransport transport : transportList) {
if(transport.getTransport_base_id()==null||transport.getTransport_base_id()<=0){
logger.error("缺少 transport_base_id 必要参数!");
continue;
}
// 检验参数完整性
if (transport.getArea_type() == null) {
transport.setArea_type(1);//业务分类1-圆半径2-多边形
}
if (transport.getMax_delivery_radius() == null || transport.getMax_delivery_radius() <= 0) {
logger.error("缺少配送范围,忽略保存!");
continue;
}
// 未选起送金额条件起送金额为0
if (transport.getMin_delivery_amount_type() == null && transport.getMin_delivery_amount() != null) {
transport.setMin_delivery_amount(BigDecimal.ZERO);
}
// 未选减免的金额条件减免的金额为0
if ((transport.getDelivery_discount_type() == null || transport.getMin_delivery_discount_amount() == null) && transport.getDelivery_discount() != null) {
transport.setDelivery_discount(BigDecimal.ZERO);
}
if (transport == null || transport.getTransport_id() == null || transport.getTransport_id() <= 0) {
transport.setTransport_base_id(transportBaseId);
// 新增
if (save(transport)) {
count += 1;
}
} else {
if (transport.getTransport_base_id() == null || transport.getTransport_base_id() <= 0) {
transport.setTransport_base_id(transportBaseId);
}
// 修改
if (updateById(transport)) {
count += 1;
}