Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg

This commit is contained in:
paulGao
2021-11-08 16:21:12 +08:00
144 changed files with 204 additions and 2252 deletions

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.member.entity.aop.annotation;
package cn.lili.modules.member.aop.annotation;
import java.lang.annotation.*;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.member.entity.aop.interceptor;
package cn.lili.modules.member.aop.interceptor;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberPointsHistory;
@@ -29,7 +29,7 @@ public class PointLogInterceptor {
@Autowired
private MemberService memberService;
@After("@annotation(cn.lili.modules.member.entity.aop.annotation.PointLogPoint)")
@After("@annotation(cn.lili.modules.member.aop.annotation.PointLogPoint)")
public void doAfter(JoinPoint pjp) {
//参数
Object[] obj = pjp.getArgs();

View File

@@ -21,7 +21,7 @@ import cn.lili.modules.connect.entity.Connect;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.connect.util.UuidUtils;
import cn.lili.modules.member.entity.aop.annotation.PointLogPoint;
import cn.lili.modules.member.aop.annotation.PointLogPoint;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO;
import cn.lili.modules.member.entity.dto.MemberAddDTO;

View File

@@ -1,7 +1,5 @@
package cn.lili.modules.message.entity.dos;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
@@ -99,4 +100,17 @@ public class CartVO extends CartBase implements Serializable {
}
}
/**
* 过滤购物车中已选择的sku
*
* @return
*/
public List<CartSkuVO> getCheckedSkuList() {
if (skuList != null && !skuList.isEmpty()) {
return skuList.stream().filter(CartSkuVO::getChecked).collect(Collectors.toList());
}
return skuList;
}
}

View File

@@ -59,10 +59,8 @@ public class CartPriceRender implements CartRenderStep {
cartVOS.forEach(cartVO -> {
List<PriceDetailDTO> skuPrices = cartVO.getSkuList().stream().filter(CartSkuVO::getChecked)
.map(CartSkuVO::getPriceDetailDTO).collect(Collectors.toList());
cartVO.getPriceDetailDTO().accumulationPriceDTO(
cartVO.getSkuList().stream().filter(CartSkuVO::getChecked)
cartVO.getCheckedSkuList().stream().filter(CartSkuVO::getChecked)
.map(CartSkuVO::getPriceDetailDTO).collect(Collectors.toList())
);
List<Integer> skuNum = cartVO.getSkuList().stream().filter(CartSkuVO::getChecked)

View File

@@ -36,7 +36,7 @@ public class CheckedFilterRender implements CartRenderStep {
//循环购物车信息
for (CartVO cartVO : tradeDTO.getCartList()) {
//如果商品选中,则加入到对应购物车
cartVO.setSkuList(cartVO.getSkuList().stream().filter(j -> Boolean.TRUE.equals(j.getChecked())).collect(Collectors.toList()));
cartVO.setSkuList(cartVO.getCheckedSkuList());
cartVOList.add(cartVO);
}
tradeDTO.setCartList(cartVOList);

View File

@@ -66,7 +66,7 @@ public class CommissionRender implements CartRenderStep {
//计算购物车价格
for (CartVO cart : cartVOS) {
//累加价格
for (CartSkuVO cartSkuVO : cart.getSkuList()) {
for (CartSkuVO cartSkuVO : cart.getCheckedSkuList()) {
PriceDetailDTO priceDetailDTO = cartSkuVO.getPriceDetailDTO();
//平台佣金根据分类计算

View File

@@ -58,14 +58,14 @@ public class DistributionPriceRender implements CartRenderStep {
//循环订单商品列表,如果是分销商品则计算商品佣金
tradeDTO.setDistributionId(distributionId);
List<String> skuIds = tradeDTO.getSkuList().stream().map(cartSkuVO -> {
List<String> skuIds = tradeDTO.getCheckedSkuList().stream().map(cartSkuVO -> {
return cartSkuVO.getGoodsSku().getId();
}).collect(Collectors.toList());
//是否包含分销商品
List<DistributionGoods> distributionGoods = distributionGoodsService.distributionGoods(skuIds);
if (distributionGoods != null && distributionGoods.size() > 0) {
distributionGoods.forEach(dg -> {
tradeDTO.getSkuList().forEach(cartSkuVO -> {
tradeDTO.getCheckedSkuList().forEach(cartSkuVO -> {
if (cartSkuVO.getGoodsSku().getId().equals(dg.getSkuId())) {
cartSkuVO.setDistributionGoods(dg);
}
@@ -73,7 +73,7 @@ public class DistributionPriceRender implements CartRenderStep {
});
}
for (CartSkuVO cartSkuVO : tradeDTO.getSkuList()) {
for (CartSkuVO cartSkuVO : tradeDTO.getCheckedSkuList()) {
if (cartSkuVO.getDistributionGoods() != null) {
cartSkuVO.getPriceDetailDTO().setDistributionCommission(CurrencyUtil.mul(cartSkuVO.getNum(), cartSkuVO.getDistributionGoods().getCommission()));
}

View File

@@ -46,8 +46,6 @@ public class FullDiscountRender implements CartRenderStep {
@Override
public void render(TradeDTO tradeDTO) {
//获取购物车中所有的商品
List<CartSkuVO> cartSkuList = tradeDTO.getSkuList();
//店铺集合
List<CartVO> cartList = tradeDTO.getCartList();
@@ -80,7 +78,7 @@ public class FullDiscountRender implements CartRenderStep {
cart.setFullDiscount(fullDiscount);
Map<String, Double> skuPriceDetail;
//参与活动的sku判定
skuPriceDetail = initFullDiscountGoods(fullDiscount, cartSkuList);
skuPriceDetail = initFullDiscountGoods(fullDiscount, cart.getCheckedSkuList());
//记录参与满减活动的sku
cart.setFullDiscountSkuIds(new ArrayList<>(skuPriceDetail.keySet()));
@@ -115,7 +113,7 @@ public class FullDiscountRender implements CartRenderStep {
*/
private void renderFullRate(CartVO cart, Map<String, Double> skuPriceDetail, Double rate) {
List<CartSkuVO> cartSkuVOS = cart.getSkuList().stream().filter(cartSkuVO -> {
List<CartSkuVO> cartSkuVOS = cart.getCheckedSkuList().stream().filter(cartSkuVO -> {
return skuPriceDetail.containsKey(cartSkuVO.getGoodsSku().getId());
}).collect(Collectors.toList());
@@ -186,7 +184,7 @@ public class FullDiscountRender implements CartRenderStep {
}
//如果满足判定是否免邮免邮的话需要渲染一边sku
if (fullDiscount.getIsFreeFreight()) {
for (CartSkuVO skuVO : cartVO.getSkuList()) {
for (CartSkuVO skuVO : cartVO.getCheckedSkuList()) {
skuVO.setIsFreeFreight(true);
}
}

View File

@@ -36,7 +36,7 @@ public class SkuFreightRender implements CartRenderStep {
@Override
public void render(TradeDTO tradeDTO) {
List<CartSkuVO> cartSkuVOS = tradeDTO.getSkuList();
List<CartSkuVO> cartSkuVOS = tradeDTO.getCheckedSkuList();
//会员收货地址问题处理
MemberAddress memberAddress = tradeDTO.getMemberAddress();
//如果收货地址为空,则抛出异常

View File

@@ -59,7 +59,7 @@ public class SkuPromotionRender implements CartRenderStep {
*/
private void renderBasePrice(TradeDTO tradeDTO) {
tradeDTO.getCartList().forEach(
cartVO -> cartVO.getSkuList().forEach(cartSkuVO -> {
cartVO -> cartVO.getCheckedSkuList().forEach(cartSkuVO -> {
PriceDetailDTO priceDetailDTO = cartSkuVO.getPriceDetailDTO();
priceDetailDTO.setGoodsPrice(cartSkuVO.getSubTotal());
priceDetailDTO.setDiscountPrice(CurrencyUtil.sub(priceDetailDTO.getOriginalPrice(), cartSkuVO.getSubTotal()));
@@ -82,7 +82,7 @@ public class SkuPromotionRender implements CartRenderStep {
case POINTS:
//处理积分商品购买
for (CartVO cartVO : tradeDTO.getCartList()) {
for (CartSkuVO cartSkuVO : cartVO.getSkuList()) {
for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) {
cartSkuVO.getPriceDetailDTO().setPayPoint(cartSkuVO.getPoint());
PromotionSkuVO promotionSkuVO = new PromotionSkuVO(PromotionTypeEnum.POINTS_GOODS.name(), cartSkuVO.getPointsId());
cartSkuVO.getPriceDetailDTO().getJoinPromotion().add(promotionSkuVO);
@@ -91,7 +91,7 @@ public class SkuPromotionRender implements CartRenderStep {
return;
case KANJIA:
for (CartVO cartVO : tradeDTO.getCartList()) {
for (CartSkuVO cartSkuVO : cartVO.getSkuList()) {
for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) {
KanjiaActivitySearchParams kanjiaActivitySearchParams = new KanjiaActivitySearchParams();
kanjiaActivitySearchParams.setGoodsSkuId(cartSkuVO.getGoodsSku().getId());
kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
@@ -112,7 +112,7 @@ public class SkuPromotionRender implements CartRenderStep {
return;
case PINTUAN:
for (CartVO cartVO : tradeDTO.getCartList()) {
for (CartSkuVO cartSkuVO : cartVO.getSkuList()) {
for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) {
PromotionSkuVO promotionSkuVO = new PromotionSkuVO(PromotionTypeEnum.PINTUAN.name(), cartSkuVO.getPintuanId());
cartSkuVO.getPriceDetailDTO().getJoinPromotion().add(promotionSkuVO);
}
@@ -125,7 +125,7 @@ public class SkuPromotionRender implements CartRenderStep {
//循环购物车
for (CartVO cartVO : tradeDTO.getCartList()) {
//循环sku
for (CartSkuVO cartSkuVO : cartVO.getSkuList()) {
for (CartSkuVO cartSkuVO : cartVO.getCheckedSkuList()) {
//更新商品促销
promotionGoodsService.updatePromotion(cartSkuVO);
//赋予商品促销信息

View File

@@ -264,7 +264,7 @@ public class Order extends BaseEntity {
this.setOrderType(OrderTypeEnum.VIRTUAL.name());
} else {
//促销订单(拼团、积分)-判断购买的是虚拟商品还是实物商品
String goodsType = cartVO.getSkuList().get(0).getGoodsSku().getGoodsType();
String goodsType = cartVO.getCheckedSkuList().get(0).getGoodsSku().getGoodsType();
if (StrUtil.isEmpty(goodsType) || goodsType.equals(GoodsTypeEnum.PHYSICAL_GOODS.name())) {
this.setOrderType(OrderTypeEnum.NORMAL.name());
} else {
@@ -275,7 +275,7 @@ public class Order extends BaseEntity {
//判断是否为拼团订单如果为拼团订单获取拼团ID判断是否为主订单
if (tradeDTO.getCartTypeEnum().name().equals(PromotionTypeEnum.PINTUAN.name())) {
Optional<String> pintuanId = cartVO.getSkuList().get(0).getPromotions().stream()
Optional<String> pintuanId = cartVO.getCheckedSkuList().get(0).getPromotions().stream()
.filter(i -> i.getPromotionType().equals(PromotionTypeEnum.PINTUAN.name())).map(PromotionGoods::getPromotionId).findFirst();
promotionId = pintuanId.get();
}

View File

@@ -7,7 +7,7 @@ import cn.lili.modules.order.order.entity.dos.Receipt;
import cn.lili.modules.order.order.entity.enums.DeliverStatusEnum;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum;
import cn.lili.modules.order.trade.entity.dos.OrderLog;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -7,7 +7,7 @@ import cn.lili.modules.order.order.entity.dto.AfterSaleDTO;
import cn.lili.modules.order.order.entity.vo.AfterSaleApplyVO;
import cn.lili.modules.order.order.entity.vo.AfterSaleSearchParams;
import cn.lili.modules.order.order.entity.vo.AfterSaleVO;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
import cn.lili.modules.system.entity.vo.Traces;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -9,7 +9,7 @@ import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.system.entity.vo.Traces;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

View File

@@ -33,8 +33,8 @@ import cn.lili.modules.order.trade.entity.enums.AfterSaleRefundWayEnum;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
import cn.lili.modules.payment.kit.RefundSupport;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
import cn.lili.modules.store.service.StoreDetailService;

View File

@@ -16,7 +16,6 @@ import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.aop.OrderLogPoint;
@@ -37,10 +36,10 @@ import cn.lili.modules.order.order.mapper.OrderMapper;
import cn.lili.modules.order.order.service.*;
import cn.lili.modules.order.trade.entity.dos.OrderLog;
import cn.lili.modules.order.trade.service.OrderLogService;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.promotion.entity.dos.Pintuan;
import cn.lili.modules.promotion.service.PintuanService;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import cn.lili.modules.system.entity.dos.Logistics;
@@ -169,7 +168,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
String message = "订单[" + item.getSn() + "]创建";
//记录日志
orderLogs.add(new OrderLog(item.getSn(), UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(), UserContext.getCurrentUser().getUsername(), message));
item.getSkuList().forEach(
item.getCheckedSkuList().forEach(
sku -> orderItems.add(new OrderItem(sku, item, tradeDTO))
);
//写入子订单信息

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.payment.kit.enums;
package cn.lili.modules.payment.entity.enums;
/**
* 订单类型

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.payment.kit.enums;
package cn.lili.modules.payment.entity.enums;
/**
* 支付方式枚举

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.payment.kit.enums;
package cn.lili.modules.payment.entity.enums;
/**
* 支付方式枚举

View File

@@ -9,8 +9,8 @@ import cn.lili.common.vo.ResultMessage;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.member.service.MemberWalletService;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.enums.PaymentClientEnum;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentClientEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.params.CashierExecute;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.system.entity.dos.Setting;

View File

@@ -5,7 +5,7 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.payment.entity.RefundLog;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

View File

@@ -8,7 +8,7 @@ import cn.lili.modules.order.order.service.AfterSaleService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.order.service.StoreFlowService;
import cn.lili.modules.payment.entity.RefundLog;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -2,7 +2,7 @@ package cn.lili.modules.payment.kit.params;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.enums.CashierEnum;
import cn.lili.modules.payment.entity.enums.CashierEnum;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
/**

View File

@@ -11,7 +11,7 @@ import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.CashierEnum;
import cn.lili.modules.payment.entity.enums.CashierEnum;
import cn.lili.modules.payment.kit.params.CashierExecute;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.system.entity.dto.BaseSetting;

View File

@@ -8,7 +8,7 @@ import cn.lili.modules.order.trade.entity.dos.Recharge;
import cn.lili.modules.order.trade.service.RechargeService;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.CashierEnum;
import cn.lili.modules.payment.entity.enums.CashierEnum;
import cn.lili.modules.payment.kit.params.CashierExecute;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.system.entity.dto.BaseSetting;

View File

@@ -11,7 +11,7 @@ import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.order.service.TradeService;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.CashierEnum;
import cn.lili.modules.payment.entity.enums.CashierEnum;
import cn.lili.modules.payment.kit.params.CashierExecute;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.system.entity.dto.BaseSetting;

View File

@@ -18,7 +18,7 @@ import cn.lili.modules.payment.kit.CashierSupport;
import cn.lili.modules.payment.kit.Payment;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.payment.service.PaymentService;
import cn.lili.modules.payment.service.RefundLogService;

View File

@@ -6,7 +6,7 @@ import cn.lili.modules.payment.entity.RefundLog;
import cn.lili.modules.payment.kit.Payment;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.payment.service.PaymentService;
import cn.lili.modules.payment.service.RefundLogService;

View File

@@ -12,8 +12,8 @@ import cn.lili.modules.payment.kit.CashierSupport;
import cn.lili.modules.payment.kit.Payment;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.CashierEnum;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.CashierEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.payment.service.PaymentService;
import cn.lili.modules.payment.service.RefundLogService;

View File

@@ -31,7 +31,7 @@ import cn.lili.modules.payment.kit.core.kit.*;
import cn.lili.modules.payment.kit.core.utils.DateTimeZoneUtil;
import cn.lili.modules.payment.kit.dto.PayParam;
import cn.lili.modules.payment.kit.dto.PaymentSuccessParams;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.payment.kit.params.dto.CashierParam;
import cn.lili.modules.payment.kit.plugin.wechat.enums.WechatApiEnum;
import cn.lili.modules.payment.kit.plugin.wechat.enums.WechatDomain;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.dos;
package cn.lili.modules.statistics.entity.dos;
import cn.lili.mybatis.BaseIdEntity;
import com.baomidou.mybatisplus.annotation.TableName;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.dos;
package cn.lili.modules.statistics.entity.dos;
import cn.lili.mybatis.BaseIdEntity;
import com.baomidou.mybatisplus.annotation.TableName;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.dto;
package cn.lili.modules.statistics.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.dto;
package cn.lili.modules.statistics.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.enums;
package cn.lili.modules.statistics.entity.enums;
/**
* 搜索类型

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.enums;
package cn.lili.modules.statistics.entity.enums;
/**
* 统计查询

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.enums;
package cn.lili.modules.statistics.entity.enums;
/**
* 时间类型

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.statistics.model.vo;
package cn.lili.modules.statistics.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,8 +1,8 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.model.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -1,6 +1,6 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.statistics.model.dos.MemberStatisticsData;
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.vo.OrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

View File

@@ -1,6 +1,6 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.statistics.model.dos.PlatformViewData;
import cn.lili.modules.statistics.entity.dos.PlatformViewData;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.vo.RefundOrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.RefundOrderStatisticsDataVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -1,8 +1,8 @@
package cn.lili.modules.statistics.mapper;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.model.vo.StoreStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.StoreStatisticsDataVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -1,9 +1,9 @@
package cn.lili.modules.statistics.service;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.model.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

View File

@@ -1,8 +1,8 @@
package cn.lili.modules.statistics.service;
import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.*;
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.*;
import java.util.List;

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.statistics.service;
import cn.lili.modules.statistics.model.dos.MemberStatisticsData;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;

View File

@@ -1,9 +1,9 @@
package cn.lili.modules.statistics.service;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.OrderOverviewVO;
import cn.lili.modules.statistics.model.vo.OrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

View File

@@ -1,10 +1,10 @@
package cn.lili.modules.statistics.service;
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
import cn.lili.modules.statistics.model.dos.PlatformViewData;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.OnlineMemberVO;
import cn.lili.modules.statistics.model.vo.PlatformViewVO;
import cn.lili.modules.statistics.entity.dos.PlatformViewData;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.OnlineMemberVO;
import cn.lili.modules.statistics.entity.vo.PlatformViewVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

View File

@@ -2,8 +2,8 @@ package cn.lili.modules.statistics.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.RefundOrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.RefundOrderStatisticsDataVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

View File

@@ -4,17 +4,16 @@ import cn.lili.common.utils.StringUtils;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
import cn.lili.modules.statistics.mapper.GoodsStatisticsDataMapper;
import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.StatisticsQuery;
import cn.lili.modules.statistics.model.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.model.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.StatisticsQuery;
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
import cn.lili.modules.statistics.service.GoodsStatisticsDataService;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;

View File

@@ -17,10 +17,10 @@ import cn.lili.modules.order.order.service.OrderComplaintService;
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
import cn.lili.modules.promotion.service.SeckillService;
import cn.lili.modules.statistics.mapper.StoreStatisticsDataMapper;
import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.SearchTypeEnum;
import cn.lili.modules.statistics.model.vo.*;
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
import cn.lili.modules.statistics.entity.vo.*;
import cn.lili.modules.statistics.service.*;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import cn.lili.modules.store.entity.enums.BillStatusEnum;

View File

@@ -2,9 +2,9 @@ package cn.lili.modules.statistics.serviceimpl;
import cn.hutool.core.date.DateUtil;
import cn.lili.modules.statistics.mapper.MemberStatisticsDataMapper;
import cn.lili.modules.statistics.model.dos.MemberStatisticsData;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.SearchTypeEnum;
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
import cn.lili.modules.statistics.service.MemberStatisticsDataService;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

View File

@@ -12,9 +12,9 @@ import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.statistics.mapper.OrderStatisticsDataMapper;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.vo.OrderOverviewVO;
import cn.lili.modules.statistics.model.vo.OrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
import cn.lili.modules.statistics.service.OrderStatisticsDataService;
import cn.lili.modules.statistics.service.PlatformViewDataService;
import cn.lili.modules.statistics.util.StatisticsDateUtil;

View File

@@ -11,11 +11,11 @@ import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.statistics.mapper.PlatformViewDataMapper;
import cn.lili.modules.statistics.model.dos.PlatformViewData;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.SearchTypeEnum;
import cn.lili.modules.statistics.model.vo.OnlineMemberVO;
import cn.lili.modules.statistics.model.vo.PlatformViewVO;
import cn.lili.modules.statistics.entity.dos.PlatformViewData;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
import cn.lili.modules.statistics.entity.vo.OnlineMemberVO;
import cn.lili.modules.statistics.entity.vo.PlatformViewVO;
import cn.lili.modules.statistics.service.PlatformViewDataService;
import cn.lili.modules.statistics.util.StatisticsDateUtil;
import cn.lili.modules.statistics.util.StatisticsSuffix;

View File

@@ -7,9 +7,9 @@ import cn.lili.common.vo.PageVO;
import cn.lili.modules.order.order.entity.dos.StoreFlow;
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
import cn.lili.modules.statistics.mapper.RefundOrderStatisticsDataMapper;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.TimeTypeEnum;
import cn.lili.modules.statistics.model.vo.RefundOrderStatisticsDataVO;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.TimeTypeEnum;
import cn.lili.modules.statistics.entity.vo.RefundOrderStatisticsDataVO;
import cn.lili.modules.statistics.service.RefundOrderStatisticsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -3,8 +3,8 @@ package cn.lili.modules.statistics.util;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.utils.StringUtils;
import cn.lili.modules.statistics.model.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.model.enums.SearchTypeEnum;
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
import java.util.Calendar;
import java.util.Date;

View File

@@ -1,67 +0,0 @@
package cn.lili.modules.system.entity.dos;
import cn.lili.mybatis.BaseEntity;
import cn.lili.modules.system.entity.vo.InstantDeliveryVO;
import com.baomidou.mybatisplus.annotation.TableName;
import com.google.gson.Gson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 即时配送
*
* @author pikachu
* @since 2020/12/01 15:58
*/
@Data
@TableName("li_instant_delivery")
@ApiModel(value = "即时配送")
@AllArgsConstructor
@NoArgsConstructor
public class InstantDelivery extends BaseEntity {
/**
* 即时配送名称
*/
@ApiModelProperty(value = "即时配送名称")
private String deliveryName;
/**
* 是否开启即时配送,1开启0未开启
*/
@ApiModelProperty(value = "是否开启即时配送,1开启0未开启")
private Integer deliveryOpen;
/**
* 即时配送配置
*/
@ApiModelProperty(value = "即时配送配置")
private String deliveryConfig;
/**
* 即时配送bean
*/
@ApiModelProperty(value = "即时配送bean")
private String deliveryBean;
@ApiModelProperty(value = "封面图片")
private String images;
/**
* 根据vo参数构建do
*
* @param instantDeliveryVO
*/
public InstantDelivery(InstantDeliveryVO instantDeliveryVO) {
this.setDeliveryName(instantDeliveryVO.getDeliveryName());
this.setDeliveryOpen(instantDeliveryVO.getDeliveryOpen());
this.setDeliveryBean(instantDeliveryVO.getDeliveryBean());
Gson gson = new Gson();
this.setDeliveryConfig(gson.toJson(instantDeliveryVO.getConfigItems()));
}
}

View File

@@ -1,99 +0,0 @@
package cn.lili.modules.system.entity.dos;
import cn.lili.common.utils.StringUtils;
import cn.lili.modules.system.entity.plugin.logistics.dada.enums.DadaOrderStatusEnum;
import cn.lili.modules.system.entity.plugin.logistics.dada.vo.DdOrderBackVO;
import cn.lili.mybatis.BaseIdEntity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
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;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 即时配送日志
*
* @author pikachu
* @since 2020/12/01 15:58
*/
@Data
@TableName("li_instant_delivery_log")
@ApiModel(value = "即时配送日志")
@AllArgsConstructor
@NoArgsConstructor
public class InstantDeliveryLog extends BaseIdEntity {
@CreatedDate
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", hidden = true)
private Date createTime;
/**
* 即时配送订单号
*/
@ApiModelProperty(value = "即时配送订单号")
private String deliveryOrderSn;
/**
* 商城订单号
*/
@ApiModelProperty(value = "商城订单号")
private String orderSn;
/**
* 即时配送订单状态
*
* @see DadaOrderStatusEnum
*/
@ApiModelProperty(value = "即时配送订单状态")
private String deliveryOrderStatus;
/**
* 配送员ID
*/
@ApiModelProperty(value = "即时配送骑手编号")
private String distributorNumber;
/**
* 配送员姓名,接单以后会存储
*/
@ApiModelProperty(value = "配送员姓名,接单以后会存储")
private String distributorName;
/**
* 配送员手机号,接单以后存储
*/
@ApiModelProperty(value = "配送员手机号,接单以后存储")
private String distributorMobile;
/**
* 订单取消原因,其他状态下默认值为空字符串
*/
@ApiModelProperty(value = "订单取消原因,其他状态下默认值为空字符串")
private String cancelReason;
public InstantDeliveryLog(DdOrderBackVO ddOrderBackVO) {
this.setCancelReason(ddOrderBackVO.getCancelReason());
this.setOrderSn(ddOrderBackVO.getOrderId());
this.setDeliveryOrderSn(ddOrderBackVO.getClientId());
if (!StringUtils.isEmpty(ddOrderBackVO.getDmMobile())) {
this.setDistributorMobile(ddOrderBackVO.getDmMobile());
}
if (!StringUtils.isEmpty(ddOrderBackVO.getDmName())) {
this.setDistributorName(ddOrderBackVO.getDmName());
}
if (ddOrderBackVO.getDmId() != null) {
this.setDistributorNumber(ddOrderBackVO.getDmId().toString());
}
this.setDeliveryOrderStatus(DadaOrderStatusEnum.getText(100));
}
}

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.system.entity.dto.payment;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import cn.lili.modules.system.entity.dto.payment.dto.PaymentSupportForm;
import cn.lili.modules.system.entity.dto.payment.dto.PaymentSupportItem;
import lombok.Data;

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.system.entity.dto.payment.dto;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import lombok.Data;
import lombok.experimental.Accessors;

View File

@@ -1,63 +0,0 @@
package cn.lili.modules.system.entity.enums;
import lombok.Getter;
import lombok.Setter;
/**
* 即时配送url接口地址
*
* @author pikachu
* @since 2020/9/11 17:03
*/
public enum InstantDeliveryUrl {
/**
* 订单推送
*/
DD_ADD_ORDER("/api/order/addOrder"),
/**
* 订单重发
*/
DD_RE_ADD_ORDER("/api/order/reAddOrder"),
/**
* 订单妥投异常后,商家确认收货
*/
DD_CONFIRM_ORDER("/api/order/confirm/goods"),
/**
* 店铺添加
*/
DD_ADD_SHOP("/api/store/add"),
/**
* 店铺修改
*/
DD_UPDATE_SHOP("/api/store/update"),
/**
* 订单详细信息
*/
DD_QUERY_ORDER("/api/order/status/query"),
/**
* 订单取消
*/
DD_CANDLE_ORDER("/api/order/formalCancel"),
/**
* 城市code获取
*/
DD_CITY_CODE("/api/cityCode/list");
/**
* 类型
*/
@Getter
@Setter
private final String url;
InstantDeliveryUrl(String url) {
this.url = url;
}
}

View File

@@ -1,40 +0,0 @@
package cn.lili.modules.system.entity.plugin;
import lombok.Data;
import lombok.ToString;
import java.util.List;
/**
* 插件配置类
*
* @author pikachu
* @version v4.0
* @since 2020/12/01 15:58
*/
@Data
@ToString
public class ConfigItem {
/**
* 配置文件name值
*/
private String name;
/**
* 配置文件name映射文本值
*/
private String text;
/**
* 配置文件显示在浏览器时input的type属性
*/
private String type;
/**
* 配置的值
*/
private Object value;
/**
* 如果是select 是需要将可选项传递到前台
*/
private List<RadioOption> options;
}

View File

@@ -1,28 +0,0 @@
package cn.lili.modules.system.entity.plugin;
import lombok.Data;
import lombok.ToString;
/**
* 单选配置类
*
* @author pikachu
* @version v4.0
* @Description:单选配置类
* @since 2020/12/01 15:58
*/
@Data
@ToString
public class RadioOption {
/**
* 选项
*/
private String label;
/**
* 选项值
*/
private Object value;
}

View File

@@ -1,119 +0,0 @@
package cn.lili.modules.system.entity.plugin.logistics;
import cn.lili.modules.member.entity.dos.MemberAddress;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.store.entity.vos.StoreDetailVO;
import cn.lili.modules.system.entity.plugin.ConfigItem;
import cn.lili.modules.system.entity.vo.InstantDeliveryResultVO;
import java.util.List;
import java.util.Map;
/**
* 即时配送插件方法
*
* @author pikachu
* @version v1.0
* @since 2020/12/01 15:58
*/
public interface InstantDeliveryPlugin {
/**
* 获取即时配送的插件ID
*
* @return
*/
String getPluginId();
/**
* 获取即时配送的插件名称
*
* @return 插件名称
*/
String getPluginName();
/**
* 即时配送是否开启
*
* @return 0 不开启 1 开启
*/
Integer getOpen();
/**
* 获取取消原因id
*
* @return
*/
Integer cancelReasonId();
/**
* 配置各个即时配送的参数
*
* @return 在页面加载的即时配送参数
*/
List<ConfigItem> getDefaultConfigItem();
/**
* 同城配送新建店铺
*
* @param storeDetailVO 店铺信息
* @param config 配送参数
* @return
*/
InstantDeliveryResultVO addStore(StoreDetailVO storeDetailVO, Map config);
/**
* 同城配送新建店铺
*
* @param storeDetailVO 店铺信息
* @param config 配送参数
* @return
*/
InstantDeliveryResultVO editStore(StoreDetailVO storeDetailVO, Map config);
/**
* 查询订单详细
*
* @param orderSn 传递到达达的订单sn目前使用的是商城订单sn传递的所有只需要传递商城sn就可以
* @param config 配置参数
* @return
*/
InstantDeliveryResultVO getOrderDetail(String orderSn, Map config);
/**
* 妥投异常之物品返回完成
*
* @param orderSn 传递到达达的订单sn目前使用的是商城订单sn传递的所有只需要传递商城sn就可以
* @param config 配置参数
* @return
*/
InstantDeliveryResultVO orderConfirm(String orderSn, Map config);
/**
* 妥投异常之物品返回完成
*
* @param orderSn 传递到达达的订单sn目前使用的是商城订单sn传递的所有只需要传递商城sn就可以
* @param cancelReason 取消原因
* @param config 配置参数
* @return
*/
InstantDeliveryResultVO orderCandle(String orderSn, String cancelReason, Map config);
/**
* 发送同城配送订单
*
* @param order 订单
* @param memberAddress 会员地址
* @param type 类型
* @param config 配置
* @param storeDetailVO 店铺详情VO
* @return 配送订单返回
*/
InstantDeliveryResultVO sendReOrder(Order order, StoreDetailVO storeDetailVO, MemberAddress memberAddress, Integer type, Map config);
/**
* 即时配送回调
*
* @param object 因为不同配送的返回对象不同所以需要obj 去传递参数,在不同的插件中转换
*/
void callBack(Object object);
}

View File

@@ -1,346 +0,0 @@
package cn.lili.modules.system.entity.plugin.logistics.dada;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.lili.common.utils.DateUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.modules.member.entity.dos.MemberAddress;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.store.entity.enums.StoreStatusEnum;
import cn.lili.modules.store.entity.vos.StoreDetailVO;
import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.system.entity.dos.InstantDeliveryLog;
import cn.lili.modules.system.entity.enums.InstantDeliveryUrl;
import cn.lili.modules.system.entity.plugin.ConfigItem;
import cn.lili.modules.system.entity.plugin.logistics.InstantDeliveryPlugin;
import cn.lili.modules.system.entity.plugin.logistics.dada.vo.DdOrderBackVO;
import cn.lili.modules.system.entity.vo.CityResult;
import cn.lili.modules.system.entity.vo.InstantDeliveryResultVO;
import cn.lili.modules.system.service.InstantDeliveryLogService;
import cn.lili.modules.system.utils.HttpUtils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 达达同城配送
*
* @author pikachu
* @version v4.0
* @since 2020/12/01 15:58
*/
@Slf4j
@Component("ddPlugin")
public class DadaPlugin implements InstantDeliveryPlugin {
@Autowired
private StoreDetailService storeDetailService;
@Autowired
private InstantDeliveryLogService instantDeliveryLogService;
@Override
public String getPluginId() {
return "ddPlugin";
}
@Override
public String getPluginName() {
return "达达";
}
@Override
public Integer getOpen() {
return 0;
}
@Override
public List<ConfigItem> getDefaultConfigItem() {
List<ConfigItem> list = new ArrayList();
ConfigItem url = new ConfigItem();
url.setType("text");
url.setName("url");
url.setText("调用地址");
ConfigItem appKey = new ConfigItem();
appKey.setType("text");
appKey.setName("app_key");
appKey.setText("app_key");
ConfigItem appSecret = new ConfigItem();
appSecret.setType("text");
appSecret.setName("app_secret");
appSecret.setText("app_secret");
ConfigItem merchantsId = new ConfigItem();
merchantsId.setType("text");
merchantsId.setName("merchants_id");
merchantsId.setText("商户Id");
list.add(url);
list.add(appKey);
list.add(appSecret);
list.add(merchantsId);
return list;
}
@Override
public InstantDeliveryResultVO addStore(StoreDetailVO storeDetailVO, Map config) {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
//业务类型(食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,数码-28,小龙虾-29,火锅-51,其他-5)
jsonObject.set("business", 19);
//门店地址
jsonObject.set("station_address", storeDetailVO.getCompanyAddress());
//联系人姓名
jsonObject.set("contact_name", storeDetailVO.getLinkName());
//联系人电话
jsonObject.set("phone", storeDetailVO.getLinkPhone());
//达达商家app账号
jsonObject.set("username", storeDetailVO.getLinkPhone());
//达达商家app密码
jsonObject.set("password", "a" + storeDetailVO.getLinkPhone());
jsonArray.add(jsonObject);
//发送请求的url
String url = StringUtils.toString(config.get("url"));
Map<String, String> requestJson = getConfig(config, jsonArray.toString());
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_ADD_SHOP.getUrl(), requestJson);
//组织返回参数
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
Map<String, List> map = (Map<String, List>) instantDeliveryResultVO.getResult();
List<Map<String, Object>> successList = map.get("successList");
if (successList.size() > 0) {
for (Map<String, Object> obj : successList) {
//如果成功调用店铺修改 将门店编码写入数据库
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.in("id", storeDetailVO.getStoreId());
updateWrapper.set("dd_code", obj.get("originStoreId").toString());
storeDetailService.update(updateWrapper);
}
}
List<Map<String, Object>> errorList = map.get("failedList");
if (errorList != null && errorList.size() > 0) {
for (Map<String, Object> obj : errorList) {
throw new RuntimeException(obj.get("msg").toString());
}
}
return instantDeliveryResultVO;
}
@Override
public InstantDeliveryResultVO editStore(StoreDetailVO storeDetailVO, Map config) {
//如果达达code没有则不进行修改
if (StringUtils.isEmpty(storeDetailVO.getDdCode())) {
return null;
}
JSONObject jsonObject = new JSONObject();
//门店编号
jsonObject.set("origin_store_id", storeDetailVO.getDdCode());
//门店名称
// jsonObject.put("station_name", storeDetailVO.getStoreName());
//业务类型(食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,数码-28,小龙虾-29,火锅-51,其他-5)
jsonObject.set("business", 19);
//城市名称(如,上海)
// jsonObject.put("city_name", storeDetailVO.getCompanyCity());
//区域名称(如,浦东新区)
// jsonObject.put("area_name", storeDetailVO.getCompanyCounty());
//门店地址
jsonObject.set("station_address", storeDetailVO.getCompanyAddress());
// //门店经度
// jsonObject.put("lng", storeDetailVO.getStoreLongitude());
// //门店纬度
// jsonObject.put("lat", storeDetailVO.getStoreLatitude());
//联系人姓名
jsonObject.set("contact_name", storeDetailVO.getLinkName());
//联系人电话
jsonObject.set("phone", storeDetailVO.getLinkPhone());
if (storeDetailVO.getStoreDisable().equals(StoreStatusEnum.OPEN.value())) {
jsonObject.set("status", 1);
} else {
jsonObject.set("status", 0);
}
//发送请求的url
String url = StringUtils.toString(config.get("url"));
Map<String, String> requestJson = getConfig(config, jsonObject.toString());
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_UPDATE_SHOP.getUrl(), requestJson);
//组织返回参数
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
if ("fail".equals(instantDeliveryResultVO.getStatus())) {
log.error("达达店铺信息修改失败",instantDeliveryResultVO.getMsg());
}
return instantDeliveryResultVO;
}
@Override
public InstantDeliveryResultVO getOrderDetail(String orderSn, Map config) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("order_id", orderSn);
//发送请求的url
String url = StringUtils.toString(config.get("url"));
Map<String, String> requestJson = getConfig(config, jsonObject.toString());
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_QUERY_ORDER.getUrl(), requestJson);
//组织返回参数
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
return instantDeliveryResultVO;
}
@Override
public InstantDeliveryResultVO orderConfirm(String orderSn, Map config) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("order_id", orderSn);
//发送请求的url
String url = StringUtils.toString(config.get("url"));
Map<String, String> requstJson = getConfig(config, jsonObject.toString());
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_CONFIRM_ORDER.getUrl(), requstJson);
//组织返回参数
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
return instantDeliveryResultVO;
}
@Override
public InstantDeliveryResultVO orderCandle(String orderSn, String cancelReason, Map config) {
JSONObject jsonObject = new JSONObject();
jsonObject.set("order_id", orderSn);
jsonObject.set("cancel_reason_id", this.cancelReasonId());
jsonObject.set("cancel_reason", cancelReason);
//发送请求的url
String url = StringUtils.toString(config.get("url"));
Map<String, String> requstJson = getConfig(config, jsonObject.toString());
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_CANDLE_ORDER.getUrl(), requstJson);
//组织返回参数
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
return instantDeliveryResultVO;
}
@Override
public InstantDeliveryResultVO sendReOrder(Order order, StoreDetailVO storeDetailVO, MemberAddress memberAddress, Integer type, Map config) {
JSONObject jsonObject = new JSONObject();
//门店编号,门店创建后可在门店列表和单页查看
jsonObject.set("store_no", storeDetailVO.getDdCode());
//第三方订单ID
jsonObject.set("origin_id", order.getSn());
//订单所在城市的code http://newopen.imdada.cn/#/development/file/cityList?_k=l76a7s
String city = memberAddress.getConsigneeAddressPath().substring(memberAddress.getConsigneeAddressPath().indexOf(",") + 1, memberAddress.getConsigneeAddressPath().indexOf(",", memberAddress.getConsigneeAddressPath().indexOf(",") + 1));
jsonObject.set("city_code", this.getCityCode(city, config));
//订单金额
jsonObject.set("cargo_price", order.getFlowPrice());
//是否需要垫付 1:是 0:否 (垫付订单金额,非运费)
jsonObject.set("is_prepay", 0);
//收货人姓名
jsonObject.set("receiver_name", memberAddress.getName());
//收货人地址
jsonObject.set("receiver_address", memberAddress.getDetail());
//收货人地址纬度(高德坐标系,若是其他地图经纬度需要转化成高德地图经纬度
jsonObject.set("receiver_lat", memberAddress.getLat());
//收货人地址经度(高德坐标系,若是其他地图经纬度需要转化成高德地图经纬度
jsonObject.set("receiver_lng", memberAddress.getLat());
//回调URL
//jsonObject.put("callback", domainHelper.getCallback() + "/trade/delivery/order/call-back");
//收货人手机号(手机号和座机号必填一项)
jsonObject.set("receiver_phone", memberAddress.getMobile());
//是否使用保价费0不使用保价1使用保价 同时请确保填写了订单金额cargo_price
jsonObject.set("is_use_insurance", 0);
//订单重量单位Kg
jsonObject.set("cargo_weight", order.getWeight());
Map<String, String> requstJson = getConfig(config, jsonObject.toString());
//发送请求的url
String url = StringUtils.toString(config.get("url"));
String result = null;
if (type == 0) {
result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_ADD_ORDER.getUrl(), requstJson);
} else {
result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_RE_ADD_ORDER.getUrl(), requstJson);
}
InstantDeliveryResultVO instantDeliveryResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
if ("fail".equals(instantDeliveryResultVO.getStatus())) {
log.error("达达订单发送失败,订单号为",order.getSn() + "," + instantDeliveryResultVO.getMsg());
//如果发送失败择等待一秒重新发送,如果失败择记录日志
try {
Thread.sleep(1000);
} catch (Exception e) {
log.error("达达订单发布失败",e);
}
result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_RE_ADD_ORDER.getUrl(), requstJson);
InstantDeliveryResultVO instantDeliveryResResultVO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
if ("fail".equals(instantDeliveryResResultVO.getStatus())) {
log.error("达达订单重试发送失败,订单号为" + order.getSn() + "," + instantDeliveryResultVO.getMsg());
}
}
return instantDeliveryResultVO;
}
@Override
public Integer cancelReasonId() {
return 4;
}
/**
* 达达配送统一参数整合
*
* @param config
* @param json
* @return
*/
private Map<String, String> getConfig(Map config, String json) {
//组织参数
String appKey = StringUtils.toString(config.get("app_key"));
String appSecret = StringUtils.toString(config.get("app_secret"));
String merchantsId = StringUtils.toString(config.get("merchants_id"));
//签名发送请求
String mysing = appSecret + "app_key" + appKey + "body" + json + "formatjsonsource_id" + merchantsId + "timestamp" + DateUtil.getDateline() + "v1.0" + appSecret;
String signature = StringUtils.md5(mysing).toUpperCase();
Map<String, String> requstJson = new HashMap<>(8);
requstJson.put("source_id", merchantsId);
requstJson.put("app_key", appKey);
requstJson.put("format", "json");
requstJson.put("timestamp", StringUtils.toString(DateUtil.getDateline()));
requstJson.put("signature", signature);
requstJson.put("body", json);
requstJson.put("v", "1.0");
return requstJson;
}
/**
* 获取城市code
*
* @param cityName 城市名称
* @return 城市编码
*/
private String getCityCode(String cityName, Map config) {
//获取参数
String url = StringUtils.toString(config.get("url"));
JSONObject jsonObject = new JSONObject();
Map<String, String> requstJson = getConfig(config, jsonObject.toString());
//获取所有城市编码
String result = HttpUtils.doPostWithJson(url + InstantDeliveryUrl.DD_CITY_CODE.getUrl(), requstJson);
InstantDeliveryResultVO resultDO = JSONUtil.toBean(result, InstantDeliveryResultVO.class);
//对数据进行格式化
List<CityResult> list = JSONUtil.toList(JSONUtil.parseArray(resultDO.getResult()), CityResult.class);
for (CityResult cityResult : list) {
if (cityName.contains(cityResult.getCityName())) {
return cityResult.getCityCode();
}
}
//如果找不到默认哈尔滨
return "0451";
}
@Override
public void callBack(Object object) {
//强制将obj转换成达达对应的参数对象
DdOrderBackVO ddOrderBackVO = (DdOrderBackVO) object;
//数据类型转换
InstantDeliveryLog instantDeliveryLog = new InstantDeliveryLog(ddOrderBackVO);
//保存数据
instantDeliveryLogService.save(instantDeliveryLog);
}
}

View File

@@ -1,68 +0,0 @@
package cn.lili.modules.system.entity.plugin.logistics.dada.enums;
import lombok.Getter;
import lombok.Setter;
/**
* 达达配送订单状态
*
* @author pikachu
*/
public enum DadaOrderStatusEnum {
//待接单
WAIT_RECEIVING(1, "待接单"),
//待取货
WAIT_PICK_UP(2, "待取货"),
//配送中
DELIVERY_IN_PROGRESS(3, "配送中"),
//已完成
COMPLETED(4, "已完成"),
//已取消
CANCELLED(5, "已取消"),
//派单中
DISTRIBUTION_LEAFLETS(8, "派单中"),
//妥投异常之物品返回中
ABNORMAL_BACK(9, "妥投异常之物品返回中"),
//妥投异常之物品返回完成
ABNORMAL_COMPLETED(10, "妥投异常之物品返回完成"),
//骑士到店
TO_IN_STORE(100, "骑士到店");
/**
* 状态
*/
@Setter
@Getter
private Integer status;
/**
* 状态文本
*/
@Setter
@Getter
private String text;
DadaOrderStatusEnum(Integer status, String text) {
this.status = status;
this.text = text;
}
/**
* 获取配送模版
* @param status 状态
* @return 配送模板
*/
public static String getText(Integer status) {
//如果空,则直接返回
if (status == null) {
return null;
}
//对状态枚举值进行处理
for (DadaOrderStatusEnum dadaOrderStatusEnum : DadaOrderStatusEnum.values()) {
if (status.equals(dadaOrderStatusEnum.getStatus())) {
return dadaOrderStatusEnum.getText();
}
}
return WAIT_RECEIVING.getText();
}
}

View File

@@ -1,50 +0,0 @@
package cn.lili.modules.system.entity.plugin.logistics.dada.vo;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* @author 86133
* @description: pikachu
* @since 2020/9/1215:35
*/
@ApiModel(description = "达达订单回调参数")
@Data
@ToString
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class DdOrderBackVO {
@ApiModelProperty(value = "达达运单号", required = false)
private String clientId;
@ApiModelProperty(value = "交易编号", required = true)
private String orderId;
@ApiModelProperty(value = "订单状态 待接单1,待取货2,配送中3,已完成4,已取消5, 指派单=8,妥投异常之物品返回中=9, 妥投异常之物品返回完成=10, 骑士到店=100,创建达达运单失败=1000", required = true)
private Integer orderStatus;
@ApiModelProperty(value = "订单取消原因,其他状态下默认值为空字符串", required = true)
private String cancelReason;
@ApiModelProperty(value = "订单取消原因来源(1:达达配送员取消2:商家主动取消3:系统或客服取消0:默认值)", required = true)
private Integer cancelFrom;
@ApiModelProperty(value = "更新时间", required = true)
private Long updateTime;
@ApiModelProperty(value = "加密串", required = true)
private String signature;
@ApiModelProperty(value = "达达配送员id接单以后会传", required = false)
private Integer dmId;
@ApiModelProperty(value = "配送员姓名,接单以后会传", required = false)
private String dmName;
@ApiModelProperty(value = "配送员手机号,接单以后会传", required = false)
private String dmMobile;
}

View File

@@ -1,24 +0,0 @@
package cn.lili.modules.system.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 达达返回值
*
* @author Chopper
* @since 2020/9/12 14:05
*/
@ApiModel
@Data
public class InstantDeliveryResultVO {
@ApiModelProperty(value = "响应状态成功为success失败为fail", required = false)
private String status;
@ApiModelProperty(value = "响应返回码, 0 成功 其他失败", required = false)
private Integer code;
@ApiModelProperty(value = "响应描述", required = false)
private String msg;
@ApiModelProperty(value = "响应结果", required = false)
private Object result;
}

View File

@@ -1,64 +0,0 @@
package cn.lili.modules.system.entity.vo;
import cn.lili.modules.system.entity.dos.InstantDelivery;
import cn.lili.modules.system.entity.plugin.ConfigItem;
import cn.lili.modules.system.entity.plugin.logistics.InstantDeliveryPlugin;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 即时配送VO
*
* @author pikachu
* @since 2020/12/01 15:58
*/
@Data
@ApiModel(value = "即时配送VO")
@AllArgsConstructor
@NoArgsConstructor
public class InstantDeliveryVO extends InstantDelivery {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "即时配送配置项", required = true)
private List<ConfigItem> configItems;
/**
* 构建新的vo参数
*
* @param instantDelivery
*/
public InstantDeliveryVO(InstantDelivery instantDelivery) {
this.setCreateTime(instantDelivery.getCreateTime());
this.setDeleteFlag(instantDelivery.getDeleteFlag());
this.setId(instantDelivery.getId());
this.setDeliveryName(instantDelivery.getDeliveryName());
this.setDeliveryOpen(instantDelivery.getDeliveryOpen());
this.setDeliveryBean(instantDelivery.getDeliveryBean());
this.setImages(instantDelivery.getImages());
Gson gson = new Gson();
this.setConfigItems(gson.fromJson(instantDelivery.getDeliveryConfig(), new TypeToken<List<ConfigItem>>() {
}.getType()));
}
/**
* 根据插件构建默认参数
*
* @param instantDeliveryPlugin
*/
public InstantDeliveryVO(InstantDeliveryPlugin instantDeliveryPlugin) {
this.setId("0");
this.setDeliveryName(instantDeliveryPlugin.getPluginName());
this.setDeliveryOpen(instantDeliveryPlugin.getOpen());
this.setDeliveryBean(instantDeliveryPlugin.getPluginId());
this.setConfigItems(instantDeliveryPlugin.getDefaultConfigItem());
}
}

View File

@@ -1,14 +0,0 @@
package cn.lili.modules.system.mapper;
import cn.lili.modules.system.entity.dos.InstantDeliveryLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 即时配送日志数据处理层
*
* @author pikachu
* @since 2020/11/17 8:01 下午
*/
public interface InstantDeliveryLogMapper extends BaseMapper<InstantDeliveryLog> {
}

View File

@@ -1,14 +0,0 @@
package cn.lili.modules.system.mapper;
import cn.lili.modules.system.entity.dos.InstantDelivery;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 即时配送数据处理层
*
* @author pikachu
* @since 2020/11/17 8:01 下午
*/
public interface InstantDeliveryMapper extends BaseMapper<InstantDelivery> {
}

View File

@@ -1,6 +1,6 @@
package cn.lili.modules.system.mapper;
import cn.lili.modules.system.entity.dos.VerificationSource;
import cn.lili.modules.verification.entity.dos.VerificationSource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**

View File

@@ -1,15 +0,0 @@
package cn.lili.modules.system.service;
import cn.lili.modules.system.entity.dos.InstantDeliveryLog;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 即时配送日志业务层
*
* @author Chopper
* @since 2020/11/17 8:02 下午
*/
public interface InstantDeliveryLogService extends IService<InstantDeliveryLog> {
}

View File

@@ -1,50 +0,0 @@
package cn.lili.modules.system.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.system.entity.dos.InstantDelivery;
import cn.lili.modules.system.entity.vo.InstantDeliveryVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 即时配送业务层
*
* @author Chopper
* @since 2020/11/17 8:02 下午
*/
public interface InstantDeliveryService extends IService<InstantDelivery> {
/**
* 获取即时配送方案
*
* @param page 数据库即时配送方案
* @param pageVO 分页数据
* @return
*/
IPage<InstantDeliveryVO> getInstantDeliveryPage(IPage<InstantDelivery> page, PageVO pageVO);
/**
* 根据beanId查询即时配送方案
*
* @param bean beanId
* @return
*/
InstantDeliveryVO getInstantDeliveryConfig(String bean);
/**
* 开启某一个即时配送方案
*
* @param bean bean
* @return
*/
void openInstantDelivery(String bean);
/**
* 修改即时配送方案
*
* @param instantDeliveryVO 即时配送方案
* @return
*/
InstantDeliveryVO edit(InstantDeliveryVO instantDeliveryVO);
}

View File

@@ -1,21 +0,0 @@
package cn.lili.modules.system.serviceimpl;
import cn.lili.modules.system.entity.dos.InstantDeliveryLog;
import cn.lili.modules.system.mapper.InstantDeliveryLogMapper;
import cn.lili.modules.system.service.InstantDeliveryLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 即时配送业务层实现
*
* @author Chopper
* @since 2020/11/17 8:02 下午
*/
@Service
public class InstantDeliveryLogServiceImpl extends ServiceImpl<InstantDeliveryLogMapper, InstantDeliveryLog> implements InstantDeliveryLogService {
}

View File

@@ -1,124 +0,0 @@
package cn.lili.modules.system.serviceimpl;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.system.entity.dos.InstantDelivery;
import cn.lili.modules.system.entity.plugin.logistics.InstantDeliveryPlugin;
import cn.lili.modules.system.entity.vo.InstantDeliveryVO;
import cn.lili.modules.system.mapper.InstantDeliveryMapper;
import cn.lili.modules.system.service.InstantDeliveryService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.elasticsearch.ResourceNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 即时配送业务层实现
*
* @author pikachu
* @since 2020/11/17 8:02 下午
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class InstantDeliveryServiceImpl extends ServiceImpl<InstantDeliveryMapper, InstantDelivery> implements InstantDeliveryService {
@Autowired
private List<InstantDeliveryPlugin> instantDeliveryPlugins;
@Override
public IPage<InstantDeliveryVO> getInstantDeliveryPage(IPage<InstantDelivery> page, PageVO pageVO) {
//获取插件和数据库中所有的就是配送方案
List<InstantDeliveryVO> resultList = this.getInstantDeliveryVOList(page);
//循环数据,对未入库的数据进行入库操作
for (InstantDeliveryVO instantDeliveryVO : resultList) {
//根据id是否为0校验 如果为0则不在数据中进行入库操作
if (("0").equals(instantDeliveryVO.getId())) {
//入库
InstantDelivery instantDelivery = new InstantDelivery(instantDeliveryVO);
this.baseMapper.insert(instantDelivery);
}
}
IPage<InstantDeliveryVO> iPage = new Page<>(pageVO.getPageNumber(), pageVO.getPageSize(), resultList.size());
iPage.setRecords(PageUtil.listToPage(pageVO, resultList));
return iPage;
}
/**
* 获取即时配送的方案
*
* @return 即时配送
*/
private List<InstantDeliveryVO> getInstantDeliveryVOList(IPage<InstantDelivery> page) {
//用来构建新的即时配送数据
List<InstantDeliveryVO> resultList = new ArrayList<>();
//获取即时配送数据
List<InstantDelivery> list = page.getRecords();
Map<String, InstantDelivery> map = new HashMap<>(16);
for (InstantDelivery instantDelivery : list) {
map.put(instantDelivery.getDeliveryBean(), instantDelivery);
}
//循环检查是否有新的即时配送方式,识别插入数据库
for (InstantDeliveryPlugin plugin : instantDeliveryPlugins) {
InstantDelivery instantDelivery = map.get(plugin.getPluginId());
InstantDeliveryVO result;
//如果不为空则构建vo参数否则的话根据插件属性构建vo参数
if (instantDelivery != null) {
result = new InstantDeliveryVO(instantDelivery);
} else {
result = new InstantDeliveryVO(plugin);
}
resultList.add(result);
}
return resultList;
}
@Override
public InstantDeliveryVO getInstantDeliveryConfig(String bean) {
//根据bean获取即时配送方案
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("delivery_bean", bean);
InstantDelivery instantDelivery = this.baseMapper.selectOne(queryWrapper);
if (instantDelivery == null) {
throw new ResourceNotFoundException("该即时配送方案不存在");
}
return new InstantDeliveryVO(instantDelivery);
}
@Override
public void openInstantDelivery(String bean) {
//关闭所有配送方案
UpdateWrapper<InstantDelivery> updateWrapper = new UpdateWrapper();
updateWrapper.set("delivery_open", 0);
this.update(updateWrapper);
//开启当前配送方案
updateWrapper = new UpdateWrapper();
updateWrapper.eq("delivery_bean", bean);
updateWrapper.set("delivery_open", 1);
this.update(updateWrapper);
}
@Override
public InstantDeliveryVO edit(InstantDeliveryVO instantDeliveryVO) {
//校验此方案是否存在
this.getInstantDeliveryConfig(instantDeliveryVO.getDeliveryBean());
//修改即时配送方案
Gson gson = new Gson();
UpdateWrapper<InstantDelivery> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("delivery_config", gson.toJson(instantDeliveryVO.getConfigItems()));
updateWrapper.eq("delivery_bean", instantDeliveryVO.getDeliveryBean());
this.update(updateWrapper);
return instantDeliveryVO;
}
}

View File

@@ -1,7 +1,7 @@
package cn.lili.modules.system.entity.dos;
package cn.lili.modules.verification.entity.dos;
import cn.lili.mybatis.BaseEntity;
import cn.lili.modules.system.entity.enums.VerificationSourceEnum;
import cn.lili.modules.verification.entity.enums.VerificationSourceEnum;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,6 +1,6 @@
package cn.lili.modules.system.entity.vo;
package cn.lili.modules.verification.entity.dto;
import cn.lili.modules.system.entity.dos.VerificationSource;
import cn.lili.modules.verification.entity.dos.VerificationSource;
import lombok.Data;
import java.io.Serializable;

View File

@@ -1,4 +1,4 @@
package cn.lili.modules.system.entity.enums;
package cn.lili.modules.verification.entity.enums;
/**

View File

@@ -1,8 +1,8 @@
package cn.lili.modules.system.service;
package cn.lili.modules.verification.service;
import cn.lili.cache.CachePrefix;
import cn.lili.modules.system.entity.dos.VerificationSource;
import cn.lili.modules.system.entity.vo.VerificationDTO;
import cn.lili.modules.verification.entity.dos.VerificationSource;
import cn.lili.modules.verification.entity.dto.VerificationDTO;
import com.baomidou.mybatisplus.extension.service.IService;
/**

View File

@@ -7,9 +7,9 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.properties.VerificationCodeProperties;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.SerializableStream;
import cn.lili.modules.system.entity.dos.VerificationSource;
import cn.lili.modules.system.entity.vo.VerificationDTO;
import cn.lili.modules.system.service.VerificationSourceService;
import cn.lili.modules.verification.entity.dos.VerificationSource;
import cn.lili.modules.verification.entity.dto.VerificationDTO;
import cn.lili.modules.verification.service.VerificationSourceService;
import cn.lili.modules.verification.SliderImageUtil;
import cn.lili.modules.verification.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService;

View File

@@ -1,11 +1,11 @@
package cn.lili.modules.system.serviceimpl;
package cn.lili.modules.verification.service.impl;
import cn.lili.cache.Cache;
import cn.lili.modules.system.entity.dos.VerificationSource;
import cn.lili.modules.system.entity.enums.VerificationSourceEnum;
import cn.lili.modules.system.entity.vo.VerificationDTO;
import cn.lili.modules.verification.entity.dos.VerificationSource;
import cn.lili.modules.verification.entity.enums.VerificationSourceEnum;
import cn.lili.modules.verification.entity.dto.VerificationDTO;
import cn.lili.modules.system.mapper.VerificationSourceMapper;
import cn.lili.modules.system.service.VerificationSourceService;
import cn.lili.modules.verification.service.VerificationSourceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;