refactor code
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.modules.book.dao.BookClockinDao;
|
||||
import com.peanut.modules.book.entity.BookClockInEntity;
|
||||
import com.peanut.modules.book.service.BookClockInService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BookClockInServiceImpl extends ServiceImpl<BookClockinDao, BookClockInEntity> implements BookClockInService {
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
Object book = params.get("bookid");
|
||||
Object taskid = params.get("taskid");
|
||||
IPage<BookClockInEntity> page = this.page(
|
||||
new Query<BookClockInEntity>().getPage(params),
|
||||
new QueryWrapper<BookClockInEntity>()
|
||||
.eq("book_id", book)
|
||||
.eq("task_id", taskid)
|
||||
.orderByDesc("create_time")
|
||||
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageUtils queryPagemylist(Map<String, Object> params) {
|
||||
IPage<BookClockInEntity> page = this.page(
|
||||
new Query<BookClockInEntity>().getPage(params),
|
||||
new QueryWrapper<BookClockInEntity>()
|
||||
|
||||
);
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.modules.book.dao.BookClockinCommentDao;
|
||||
import com.peanut.modules.book.entity.BookClockinCommentEntity;
|
||||
import com.peanut.modules.book.service.BookClockinCommentService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BookClockinCommentServiceImpl extends ServiceImpl<BookClockinCommentDao,BookClockinCommentEntity> implements BookClockinCommentService{
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<BookClockinCommentEntity> page = this.page(
|
||||
new Query<BookClockinCommentEntity>().getPage(params),
|
||||
new QueryWrapper<BookClockinCommentEntity>().orderByDesc("create_time")
|
||||
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.modules.book.dao.BookClockinPunchDao;
|
||||
import com.peanut.modules.book.entity.BookClockinPunchEntity;
|
||||
import com.peanut.modules.book.service.BookClockinPunchService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BookClockinPunchServiceImp extends ServiceImpl<BookClockinPunchDao, BookClockinPunchEntity> implements BookClockinPunchService {
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
|
||||
Object book =params.get("bookid");
|
||||
Object days = params.get("days");
|
||||
IPage<BookClockinPunchEntity> page = this.page(
|
||||
new Query<BookClockinPunchEntity>().getPage(params),
|
||||
new QueryWrapper<BookClockinPunchEntity>()
|
||||
.eq("book_id",book)
|
||||
.eq("days",days)
|
||||
.orderByDesc("create_time")
|
||||
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.modules.book.dao.BookTaskDao;
|
||||
import com.peanut.modules.book.entity.BookTaskEntity;
|
||||
import com.peanut.modules.book.service.BookTaskService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BookTaskServiceImpl extends ServiceImpl<BookTaskDao, BookTaskEntity> implements BookTaskService {
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
Object bookid = params.get("bookid");
|
||||
IPage<BookTaskEntity> page = this.page(
|
||||
new Query<BookTaskEntity>().getPage(params),
|
||||
new QueryWrapper<BookTaskEntity>().eq("book_id",bookid).orderByAsc("days")
|
||||
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageUtils queryPageServi(Map<String, Object> params) {
|
||||
Object bookid = params.get("bookid");
|
||||
Object days = params.get("days");
|
||||
IPage<BookTaskEntity> page = this.page(
|
||||
new Query<BookTaskEntity>().getPage(params),
|
||||
new QueryWrapper<BookTaskEntity>().eq("book_id",bookid).orderByDesc("create_time").eq("days",days)
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,8 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.peanut.modules.book.entity.BookEntity;
|
||||
import com.peanut.modules.book.entity.ShopProductEntity;
|
||||
import com.peanut.modules.book.service.BookService;
|
||||
import com.peanut.modules.book.service.ShopProductService;
|
||||
import jodd.util.StringUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.awt.print.Book;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -74,13 +67,6 @@ public class BuyOrderDetailServiceImpl extends ServiceImpl<BuyOrderDetailDao, Bu
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageUtils querybuyss(Map<String, Object> params) {
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void batchUpdateByShippingSns(String[] shippingSnList) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.alibaba.druid.mock.MockConnection;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -9,19 +8,17 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.peanut.common.Interface.KdApiEOrder;
|
||||
import com.peanut.common.utils.ExcludeEmptyQueryWrapper;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.modules.book.dao.BuyOrderDao;
|
||||
import com.peanut.modules.book.dao.BuyOrderDetailDao;
|
||||
import com.peanut.modules.book.dao.ShopProductDao;
|
||||
import com.peanut.modules.book.entity.*;
|
||||
import com.peanut.modules.book.service.*;
|
||||
import com.peanut.modules.book.vo.ProductVo;
|
||||
import com.peanut.modules.book.vo.UserOrderVo;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -29,6 +26,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -44,17 +42,22 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
@Autowired
|
||||
private MyUserService myUserService;
|
||||
|
||||
//todo 6.2 buyOrderDao buyOrderDetailDao因为报红把 @Autowired 换成JDK注解 @Resource它不检查,所以也就不会报红。
|
||||
@Resource
|
||||
private BuyOrderDao buyOrderDao;
|
||||
@Resource
|
||||
private BuyOrderDetailDao buyOrderDetailDao;
|
||||
|
||||
@Autowired
|
||||
private FMSOrderDetailService fmsOrderDetailService;
|
||||
private ShopProductDao shopProductDao;
|
||||
|
||||
@Autowired
|
||||
private UserAddressService userAddressService;
|
||||
|
||||
@Autowired
|
||||
private ExpressFeeService expressFeeService;
|
||||
|
||||
|
||||
protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class);
|
||||
private MockConnection connection;
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) throws Exception {
|
||||
@@ -103,50 +106,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage1(Map<String, Object> params) {
|
||||
|
||||
String orderStatus = (String) params.get("orderStatus");
|
||||
if (orderStatus.equals("9")) {
|
||||
orderStatus = null;
|
||||
}
|
||||
|
||||
String userId = (String) params.get("userId");
|
||||
|
||||
IPage<BuyOrderEntity> page = this.page(
|
||||
new Query<BuyOrderEntity>().getPage(params),
|
||||
new QueryWrapper<BuyOrderEntity>()
|
||||
.eq("user_id", userId)
|
||||
.eq(StringUtils.isNotBlank(orderStatus), "order_status", orderStatus)
|
||||
.orderByDesc("create_time")
|
||||
);
|
||||
List<BuyOrderEntity> records = page.getRecords();
|
||||
for (BuyOrderEntity buyOrderEntity : records) {
|
||||
Integer orderId = buyOrderEntity.getOrderId();
|
||||
buyOrderEntity.setTimestamp(buyOrderEntity.getCreateTime().getTime()/1000);
|
||||
List<BuyOrderDetailEntity> entities = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
||||
.eq("order_id", orderId));
|
||||
if (entities != null) {
|
||||
for (BuyOrderDetailEntity entity : entities) {
|
||||
Integer productId = entity.getProductId();
|
||||
ShopProductEntity shopPro = shopProductService.getById(productId);
|
||||
if (shopPro != null) {
|
||||
String productImages = shopPro.getProductImages();
|
||||
|
||||
entity.setImage(productImages);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
buyOrderEntity.setProducts(entities);
|
||||
}
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateOrderStatus(Integer userId, String orderSn, String type) {
|
||||
|
||||
@@ -171,127 +130,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
updateById(orderEntity);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Param shipperCode 快递公司编码
|
||||
* @Param sendType 0:订单列表发货 1:商品列表发货
|
||||
* @Param type 合并发货/拆分发货
|
||||
* @Param ids 订单or商品id串
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void sendFMS(Integer[] orderIds, String shipperCode, String shipperName) {
|
||||
|
||||
logger.info("##########################开始批量发货!时间:" + new Date());
|
||||
try {
|
||||
String timeId = IdWorker.getTimeId();
|
||||
List<FMSOrderEntity> fmsOrderList = new ArrayList<>();
|
||||
// 查询订单详情
|
||||
List<BuyOrderEntity> orderList = this.buyOrderDao.queryListByOrderIds(orderIds);
|
||||
Map<Integer, Object> userMap = new HashMap<>();
|
||||
// 清洗出有哪些用户
|
||||
for (BuyOrderEntity order : orderList) {
|
||||
order.setOrderCode(timeId + order.getUserId());
|
||||
userMap.put(order.getUserId(), order);
|
||||
}
|
||||
this.saveOrUpdateBatch(orderList);
|
||||
List<Integer> keys = userMap.keySet().stream().collect(Collectors.toList());
|
||||
List<BuyOrderDetailEntity> buyOrderDetailList = this.buyOrderDetailDao.queryListByOrderIds(orderIds);
|
||||
for (int k : keys) {
|
||||
Object o = userMap.get(k);
|
||||
BuyOrderEntity order = new ObjectMapper().convertValue(o, BuyOrderEntity.class);
|
||||
|
||||
FMSOrderEntity fmsOrder = new FMSOrderEntity();
|
||||
// 生成一个新的订单号保存到订单表中
|
||||
fmsOrder.setOrderCode(order.getOrderCode());
|
||||
fmsOrder.setShipperCode(shipperCode);
|
||||
fmsOrder.setReceiverName(order.getShippingUser());
|
||||
fmsOrder.setReceiverMobile(order.getUserPhone());
|
||||
fmsOrder.setReceiverProvinceName(order.getProvince());
|
||||
fmsOrder.setReceiverCityName(order.getCity());
|
||||
fmsOrder.setReceiverExpAreaName(order.getDistrict());
|
||||
fmsOrder.setReceiverAddress(order.getAddress());
|
||||
fmsOrder.setRemark(order.getRemark());
|
||||
List<FMSCommodity> fmsCommoditylist = new ArrayList<>();
|
||||
for (BuyOrderDetailEntity orderDetail : buyOrderDetailList) {
|
||||
if (orderDetail.getUserId().equals(k)) {
|
||||
FMSCommodity fmsCommodity = new FMSCommodity();
|
||||
fmsCommodity.setGoodsName(orderDetail.getProductName());
|
||||
fmsCommodity.setGoodsQuantity(orderDetail.getQuantity());
|
||||
fmsCommodity.setGoodsPrice(orderDetail.getProductPrice());
|
||||
fmsCommodity.setGoodsWeight(orderDetail.getWeight());
|
||||
fmsCommodity.setGoodsDesc(orderDetail.getRemark());
|
||||
fmsCommodity.setFmsOrderId(orderDetail.getOrderId());
|
||||
fmsCommoditylist.add(fmsCommodity);
|
||||
fmsOrder.setCommodityList(fmsCommoditylist);
|
||||
}
|
||||
}
|
||||
fmsOrderList.add(fmsOrder);
|
||||
}
|
||||
|
||||
// 消息队列批量保存
|
||||
// fmsOrderDao.batchInsert(fmsOrderList);
|
||||
// fmsCommodityDao.batchInsert(fmsCommoditylist);
|
||||
|
||||
JSONArray jsonArr = KdApiEOrder.orderOnlineByJson(fmsOrderList);
|
||||
for (Object jsobj : jsonArr) {
|
||||
JSONObject json = JSONObject.parseObject(jsobj.toString());
|
||||
if ("true".equals(json.getString("Success"))) {
|
||||
JSONObject jsonObj = JSONObject.parseObject(json.getString("Order"));
|
||||
// 业务数据
|
||||
Map<Integer, Object> objMap = new HashMap<>();
|
||||
List<BuyOrderEntity> list = this.list(new QueryWrapper<BuyOrderEntity>().eq("order_code", jsonObj.getString("OrderCode")));
|
||||
for (BuyOrderEntity order : list) {
|
||||
// 改变订单状态为已发货
|
||||
order.setOrderStatus("2");
|
||||
// 改变订单信息为已有商品发货
|
||||
order.setIsSend("1");
|
||||
this.updateById(order);
|
||||
objMap.put(order.getOrderId(), order);
|
||||
}
|
||||
List<Integer> orderIdList = objMap.keySet().stream().collect(Collectors.toList());
|
||||
Integer[] oIds = orderIdList.toArray(new Integer[orderIdList.size()]);
|
||||
List<BuyOrderDetailEntity> buyOrderEntityList = this.buyOrderDetailDao.queryListByOrderIds(oIds);
|
||||
String SortingCode = jsonObj.getString("SortingCode");
|
||||
for (BuyOrderDetailEntity buy : buyOrderEntityList) {
|
||||
buy.setFmsHtml(json.getString("PrintTemplate"));
|
||||
buy.setCreatTime(new Date());
|
||||
buy.setShippingSn(SortingCode.substring(0, SortingCode.indexOf("/")));
|
||||
buy.setShipperCode(jsonObj.getString("ShipperCode"));
|
||||
buy.setShipperName(shipperName);
|
||||
buy.setIsPrint("0");
|
||||
this.buyOrderDetailService.updateById(buy);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
logger.info("##########################结束批量发货!时间:" + new Date());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消快递信息
|
||||
*
|
||||
* @param orderSn 订单编号
|
||||
* @param shipperCode 快递公司编码
|
||||
* @param expNo 快递单号
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void cancelFMS(String orderSn, String shipperCode, String expNo) {
|
||||
|
||||
Map<String, Object> param = new HashMap<>();
|
||||
param.put("orderSn", orderSn);
|
||||
param.put("ShipperCode", shipperCode);
|
||||
param.put("ExpNo", expNo);
|
||||
try {
|
||||
KdApiEOrder.cancelOrderByJson(param);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 及时查询快递信息
|
||||
@@ -305,16 +143,7 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
Map<String, Object> param = new HashMap<>();
|
||||
param.put("ShipperCode", shipperCode);
|
||||
param.put("LogisticCode", expNo);
|
||||
//todo 如果使用顺丰需要加上CustomerName手机号后四位才可以
|
||||
// param.put("CustomerName",phone)
|
||||
try {
|
||||
//todo expNo不等于1,则执行第一个代码块,否则执行第二个代码块。 5.5
|
||||
// if (!expNo.equals(1)) {
|
||||
// 列出所有包裹
|
||||
// }else {
|
||||
// 直接展示
|
||||
// }
|
||||
String A = expNo;
|
||||
if (!expNo.equals(1)) {
|
||||
String rntStr = KdApiEOrder.queryOrderOnlineByJson(param);
|
||||
JSONObject jsonObject = JSONObject.parseObject(rntStr);
|
||||
@@ -464,204 +293,16 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
return rntPage;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 混合发货
|
||||
*
|
||||
* @param orderDetailIds
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void blendSendFMS(Integer[] orderDetailIds, String shipperCode, String shipperName) {
|
||||
logger.info("##########################开始混合发货!:" + new Date());
|
||||
try {
|
||||
// 生成订单号
|
||||
String timeId = IdWorker.getTimeId();
|
||||
List<FMSOrderDetailEntity> fmsList = new ArrayList<>();
|
||||
List<BuyOrderDetailEntity> washDetailList = new ArrayList<>();
|
||||
List<BuyOrderDetailEntity> detailList = this.buyOrderDetailService.list(new QueryWrapper<BuyOrderDetailEntity>());
|
||||
public void createSplitPackageOrder(String expressCompanyCode, Integer userAddressId, List<Integer> shopProductIdList) {
|
||||
// 根据商品 id 获取总重量
|
||||
int totalWeight = shopProductDao.getTotalWeight(shopProductIdList);
|
||||
// 获取用户地址
|
||||
UserAddress address = userAddressService.getById(userAddressId);
|
||||
// 计算快递费用
|
||||
BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, address.getRegionCode());
|
||||
// 打印面单
|
||||
|
||||
for (BuyOrderDetailEntity buy : detailList) {
|
||||
for (int orderDetailId : orderDetailIds) {
|
||||
if (buy.getAllOrderId() == orderDetailId) {
|
||||
FMSOrderDetailEntity fms = new FMSOrderDetailEntity();
|
||||
fms.setDetailId(buy.getAllOrderId());
|
||||
fms.setOrderCode(timeId + buy.getUserId());
|
||||
fms.setOrderId(buy.getOrderId());
|
||||
fmsList.add(fms);
|
||||
washDetailList.add(buy);
|
||||
}
|
||||
}
|
||||
}
|
||||
fmsOrderDetailService.saveBatch(fmsList);
|
||||
|
||||
FMSOrderEntity fmsOrder = new FMSOrderEntity();
|
||||
// 初始化快递订单信息
|
||||
List<FMSOrderEntity> fmsOrderList = new ArrayList<>();
|
||||
// 初始化快递商品信息
|
||||
List<FMSCommodity> fmsCommoditylist = new ArrayList<>();
|
||||
|
||||
if (washDetailList != null && washDetailList.size() > 0) {
|
||||
BuyOrderEntity order = this.getById(washDetailList.get(0).getOrderId());
|
||||
fmsOrder.setOrderCode(timeId + order.getUserId());
|
||||
fmsOrder.setShipperCode(shipperCode);
|
||||
fmsOrder.setReceiverName(order.getShippingUser());
|
||||
fmsOrder.setReceiverMobile(order.getUserPhone());
|
||||
fmsOrder.setReceiverProvinceName(order.getProvince());
|
||||
fmsOrder.setReceiverCityName(order.getCity());
|
||||
fmsOrder.setReceiverExpAreaName(order.getDistrict());
|
||||
fmsOrder.setReceiverAddress(order.getAddress());
|
||||
for (BuyOrderDetailEntity buy : washDetailList) {
|
||||
FMSCommodity fmsCommodity = new FMSCommodity();
|
||||
fmsCommodity.setGoodsName(buy.getProductName());
|
||||
fmsCommodity.setGoodsQuantity(buy.getQuantity());
|
||||
fmsCommodity.setGoodsPrice(buy.getProductPrice());
|
||||
fmsCommodity.setGoodsWeight(buy.getWeight());
|
||||
fmsCommodity.setGoodsDesc(buy.getRemark());
|
||||
fmsCommodity.setFmsOrderId(buy.getOrderId());
|
||||
fmsCommoditylist.add(fmsCommodity);
|
||||
}
|
||||
fmsOrder.setCommodityList(fmsCommoditylist);
|
||||
fmsOrderList.add(fmsOrder);
|
||||
JSONArray jsonArr = KdApiEOrder.orderOnlineByJson(fmsOrderList);
|
||||
JSONObject json = JSONObject.parseObject(jsonArr.getString(0));
|
||||
if ("true".equals(json.getString("Success"))) {
|
||||
JSONObject jsonObj = JSONObject.parseObject(json.getString("Order"));
|
||||
String orderCode = jsonObj.getString("OrderCode");
|
||||
List<FMSOrderDetailEntity> fmsOrderDetailList = this.fmsOrderDetailService.list(new QueryWrapper<FMSOrderDetailEntity>().eq("order_code", orderCode));
|
||||
System.out.println("############################################开始进入判断4444444jsonArr!:" + jsonArr + "json=" + json + "orderCode=" + orderCode);
|
||||
String SortingCode = jsonObj.getString("LogisticCode");
|
||||
String ShipperCode = jsonObj.getString("ShipperCode");
|
||||
String PrintTemplate = json.getString("PrintTemplate");
|
||||
for (FMSOrderDetailEntity fms : fmsOrderDetailList) {
|
||||
BuyOrderEntity o = this.getById(fms.getOrderId());
|
||||
BuyOrderDetailEntity detail = this.buyOrderDetailService.getById(fms.getDetailId());
|
||||
detail.setOrderStatus("1");
|
||||
if (PrintTemplate.equals(buyOrderDetailService.getById(detail))) {
|
||||
return;
|
||||
} else {
|
||||
detail.setFmsHtml(PrintTemplate);
|
||||
}
|
||||
|
||||
// detail.setFmsHtml(PrintTemplate);
|
||||
detail.setCreatTime(new Date());
|
||||
detail.setShippingSn(SortingCode);
|
||||
detail.setShipperCode(ShipperCode);
|
||||
detail.setShipperName(shipperName);
|
||||
detail.setIsPrint("0");
|
||||
// this.buyOrderDetailService.updateById(detail);
|
||||
this.buyOrderDetailService.saveOrUpdate(detail);
|
||||
List<BuyOrderDetailEntity> list = this.buyOrderDetailService.list(new QueryWrapper<BuyOrderDetailEntity>().eq("order_id", fms.getOrderId())
|
||||
.eq("order_status", "0"));
|
||||
// .eq("order_status", "0")
|
||||
if (list.size() == 0) {
|
||||
o.setIsSend("1");
|
||||
o.setOrderStatus("2");
|
||||
} else {
|
||||
o.setIsSend("1");
|
||||
}
|
||||
this.updateById(o);
|
||||
buyOrderDao.updateById(o);
|
||||
|
||||
//todo 混合发货原本属于订单A的的信息无缘无故跑到订单B。或者订单C里面去
|
||||
|
||||
|
||||
// todo 打印面单快递单号重复 主要问题在html表格里面有 可能是数据太多导致混乱把数据清除再做一次混合发货 查看错误
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
buyOrderDetailService.querySheet(map);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
logger.info("##########################结束混合发货!时间:" + new Date());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品类型计算快递费
|
||||
*
|
||||
* @param param
|
||||
* @param productMap
|
||||
* @return
|
||||
*/
|
||||
|
||||
@Override
|
||||
public int getProductGoodsType(Map<String, Object> param, Map<String, Object> productMap) {
|
||||
// param : key商品Id,value商品数量
|
||||
// 定义不同种类的数组
|
||||
Map<String, Object> pictureMap = new HashMap<>();
|
||||
Map<String, Object> bookMap = new HashMap<>();
|
||||
List<ProductVo> advanceBookingList = new ArrayList<>();
|
||||
List<ProductVo> deviceList = new ArrayList<>();
|
||||
|
||||
int transPrice = 0;
|
||||
|
||||
if (!ObjectUtils.isEmpty(productMap)) {
|
||||
Set set = productMap.keySet();
|
||||
Iterator ite = set.iterator();
|
||||
while (ite.hasNext()) {
|
||||
int i = 1;
|
||||
Object next = ite.next();
|
||||
// 根据Id查询信息后 计算出各个种类商品的总重量
|
||||
ShopProductEntity product = this.shopProductService.getById(Integer.valueOf(next.toString()));
|
||||
if ("0".equals(product.getIsFreeMail())) {
|
||||
product.setWeight(0f);
|
||||
}
|
||||
if ("01".equals(product.getGoodsType())) {
|
||||
if (ObjectUtils.isEmpty(pictureMap)) {
|
||||
pictureMap.put("picture", (float) product.getWeight() * Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
} else {
|
||||
pictureMap.put("picture", (float) pictureMap.get("picture") + (float) product.getWeight() * Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
}
|
||||
}
|
||||
if ("02".equals(product.getGoodsType())) {
|
||||
if (ObjectUtils.isEmpty(bookMap)) {
|
||||
bookMap.put("book", (float) product.getWeight() * Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
} else {
|
||||
bookMap.put("book", (float) bookMap.get("book") + (float) product.getWeight() * Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
}
|
||||
}
|
||||
if ("03".equals(product.getGoodsType())) {
|
||||
ProductVo p = new ProductVo();
|
||||
p.setKdCode(param.get("kdCode").toString());
|
||||
p.setArea(param.get("area").toString());
|
||||
p.setNum(Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
p.setWeight(product.getWeight().intValue());
|
||||
deviceList.add(p);
|
||||
}
|
||||
if ("04".equals(product.getGoodsType())) {
|
||||
ProductVo p = new ProductVo();
|
||||
p.setKdCode(param.get("kdCode").toString());
|
||||
p.setArea(param.get("area").toString());
|
||||
p.setNum(Integer.valueOf(productMap.get(next.toString()).toString()));
|
||||
p.setWeight(product.getWeight().intValue());
|
||||
advanceBookingList.add(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!ObjectUtils.isEmpty(pictureMap)) {
|
||||
pictureMap.put("kdCode", param.get("kdCode"));
|
||||
pictureMap.put("area", param.get("area"));
|
||||
pictureMap.put("weight", pictureMap.get("picture"));
|
||||
transPrice += this.getTransPrice(pictureMap);
|
||||
}
|
||||
if (!ObjectUtils.isEmpty(bookMap)) {
|
||||
bookMap.put("kdCode", param.get("kdCode"));
|
||||
bookMap.put("area", param.get("area"));
|
||||
bookMap.put("weight", bookMap.get("book"));
|
||||
transPrice += this.getTransPrice(bookMap);
|
||||
}
|
||||
if (!ObjectUtils.isEmpty(deviceList)) {
|
||||
transPrice += this.getTransPrice(deviceList);
|
||||
}
|
||||
if (!ObjectUtils.isEmpty(advanceBookingList)) {
|
||||
transPrice += this.getTransPrice(advanceBookingList);
|
||||
}
|
||||
return transPrice;
|
||||
}
|
||||
|
||||
|
||||
@@ -674,65 +315,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
|
||||
return rs.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public R randomOrderCode(BuyOrderEntity buyOrder) {
|
||||
SimpleDateFormat dmDate = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String randata = getRandom(6);
|
||||
Date date = new Date();
|
||||
String dateran = dmDate.format(date);
|
||||
String Xsode = "XS" + dateran + randata;
|
||||
if (Xsode.length() < 24) {
|
||||
Xsode = Xsode + 0;
|
||||
}
|
||||
return R.ok(Xsode);
|
||||
}
|
||||
|
||||
/*
|
||||
打印时查重
|
||||
*/
|
||||
@Override
|
||||
public PageUtils querySheet(Map<String, Object> params) {
|
||||
IPage<BuyOrderEntity> page = this.page(
|
||||
new Query<BuyOrderEntity>().getPage(params),
|
||||
new QueryWrapper<BuyOrderEntity>().eq("is_print", "0")
|
||||
.groupBy("shipping_sn")
|
||||
);
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageUtils queryPages(Map<String, Object> params) {
|
||||
|
||||
String orderStatus = (String) params.get("orderStatus");
|
||||
if (orderStatus.equals("9")) {
|
||||
orderStatus = null;
|
||||
}
|
||||
|
||||
String userId = (String) params.get("userId");
|
||||
|
||||
IPage<BuyOrderEntity> page = this.page(
|
||||
new Query<BuyOrderEntity>().getPage(params),
|
||||
new QueryWrapper<BuyOrderEntity>()
|
||||
.eq("user_id", userId)
|
||||
.eq(StringUtils.isNotBlank(orderStatus), "order_status", orderStatus)
|
||||
.orderByDesc("create_time")
|
||||
);
|
||||
List<BuyOrderEntity> records = page.getRecords();
|
||||
for (BuyOrderEntity buyOrderEntity : records) {
|
||||
Integer orderId = buyOrderEntity.getOrderId();
|
||||
List<BuyOrderDetailEntity> entities = buyOrderDetailService.getBaseMapper().selectList(new QueryWrapper<BuyOrderDetailEntity>()
|
||||
.eq("order_id", orderId));
|
||||
for (BuyOrderDetailEntity entity : entities) {
|
||||
Integer productId = entity.getProductId();
|
||||
ShopProductEntity shopPro = shopProductService.getById(productId);
|
||||
entity.setImage(shopPro.getProductImages());
|
||||
}
|
||||
buyOrderEntity.setProducts(entities);
|
||||
}
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算仪器,预售快递费用
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.modules.book.dao.ExpressCompanyDao;
|
||||
import com.peanut.modules.book.entity.ExpressCompany;
|
||||
import com.peanut.modules.book.service.ExpressCompanyService;
|
||||
import com.peanut.modules.book.vo.ExpressCompanyVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 快递公司服务层实现类
|
||||
* @Author: Cauchy
|
||||
* @CreateTime: 2023/10/16
|
||||
*/
|
||||
@Service
|
||||
public class ExpressCompanyServiceImpl extends ServiceImpl<ExpressCompanyDao, ExpressCompany> implements ExpressCompanyService {
|
||||
@Autowired
|
||||
ExpressCompanyDao expressCompanyDao;
|
||||
|
||||
@Override
|
||||
public List<ExpressCompanyVo> getExpressCompanyList() {
|
||||
return expressCompanyDao.getExpressCompanyList();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.modules.book.dao.ExpressFeeDao;
|
||||
import com.peanut.modules.book.entity.ExpressFee;
|
||||
import com.peanut.modules.book.service.ExpressFeeService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
/**
|
||||
* @Description: 快递费用服务接口实现类
|
||||
* @Author: Cauchy
|
||||
* @CreateTime: 2023/10/16
|
||||
*/
|
||||
public class ExpressFeeServiceImpl extends ServiceImpl<ExpressFeeDao, ExpressFee> implements ExpressFeeService {
|
||||
@Override
|
||||
public BigDecimal calculateExpressFee(String expressCompanyCode, int weight, String regionCode) {
|
||||
int integerPart = weight / 100;
|
||||
int decimalPart = weight % 100;
|
||||
// 将重量转换为公斤
|
||||
BigDecimal realWeight = BigDecimal.valueOf(integerPart).add(BigDecimal.valueOf(decimalPart)
|
||||
.divide(new BigDecimal(100), MathContext.DECIMAL64));
|
||||
realWeight = realWeight.setScale(0, RoundingMode.UP);
|
||||
BigDecimal fee = null;
|
||||
switch (expressCompanyCode) {
|
||||
case "SF":
|
||||
fee = calculateSFExpressFee(realWeight, regionCode);
|
||||
break;
|
||||
case "YD":
|
||||
fee = calculateYDExpressFee(realWeight, regionCode);
|
||||
break;
|
||||
}
|
||||
return fee;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算顺丰快递运费
|
||||
*
|
||||
* @param weight 重量
|
||||
* @param regionCode 地区编码
|
||||
* @return 费用
|
||||
*/
|
||||
private BigDecimal calculateSFExpressFee(BigDecimal weight, String regionCode) {
|
||||
// 判断运费计算区间
|
||||
int weightInterval;
|
||||
BigDecimal additionalWeight = null;
|
||||
if (weight.compareTo(new BigDecimal(0)) >= 0 && weight.compareTo(new BigDecimal(3)) < 0) {
|
||||
weightInterval = 1;
|
||||
additionalWeight = weight.subtract(new BigDecimal(1));
|
||||
} else if (weight.compareTo(new BigDecimal(3)) >= 0 && weight.compareTo(new BigDecimal(15)) < 0) {
|
||||
weightInterval = 2;
|
||||
additionalWeight = weight.subtract(new BigDecimal(3));
|
||||
} else {
|
||||
weightInterval = 3;
|
||||
additionalWeight = weight.subtract(new BigDecimal(15));
|
||||
}
|
||||
QueryWrapper<ExpressFee> queryWrapper = new QueryWrapper<>();
|
||||
regionCode = regionCode.substring(0, 3).concat("00");
|
||||
queryWrapper.eq("dest_code", regionCode);
|
||||
queryWrapper.eq("weight_interval", weightInterval);
|
||||
queryWrapper.eq("express_code", "SF");
|
||||
ExpressFee expressFee = this.getOne(queryWrapper);
|
||||
BigDecimal firstWeightFee = expressFee.getFirstWeightFee();
|
||||
BigDecimal additionalWeightFee = (expressFee.getAdditionalWeightFee()).multiply(additionalWeight);
|
||||
return firstWeightFee.add(additionalWeightFee);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算韵达快递运费
|
||||
*
|
||||
* @param weight 重量
|
||||
* @param regionCode 地区编码
|
||||
* @return 费用
|
||||
*/
|
||||
private BigDecimal calculateYDExpressFee(BigDecimal weight, String regionCode) {
|
||||
regionCode = regionCode.substring(0, 3).concat("00");
|
||||
QueryWrapper<ExpressFee> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("dest_code", regionCode);
|
||||
queryWrapper.eq("express_code", "YD");
|
||||
ExpressFee expressFee = this.getOne(queryWrapper);
|
||||
BigDecimal firstWeightFee = expressFee.getFirstWeightFee();
|
||||
if (weight.compareTo(new BigDecimal(0)) >= 0 && weight.compareTo(new BigDecimal(1)) < 0) {
|
||||
return firstWeightFee;
|
||||
}
|
||||
BigDecimal additionalWeight = weight.subtract(new BigDecimal("1"));
|
||||
return firstWeightFee.add(additionalWeight.multiply(expressFee.getAdditionalWeightFee()));
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.peanut.modules.book.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.modules.book.dao.FMSOrderDetailDao;
|
||||
import com.peanut.modules.book.entity.FMSOrderDetailEntity;
|
||||
import com.peanut.modules.book.service.FMSOrderDetailService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Service("fmsOrderService")
|
||||
public class FMSOrderDetailServiceImpl extends ServiceImpl<FMSOrderDetailDao, FMSOrderDetailEntity>
|
||||
implements FMSOrderDetailService {
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -9,21 +9,19 @@ import com.peanut.common.utils.PageUtils;
|
||||
import com.peanut.common.utils.Query;
|
||||
|
||||
import com.peanut.modules.book.dao.UserAddressDao;
|
||||
import com.peanut.modules.book.entity.UserAddressEntity;
|
||||
import com.peanut.modules.book.entity.UserAddress;
|
||||
import com.peanut.modules.book.service.UserAddressService;
|
||||
|
||||
|
||||
@Service("userAddressService")
|
||||
public class UserAddressServiceImpl extends ServiceImpl<UserAddressDao, UserAddressEntity> implements UserAddressService {
|
||||
public class UserAddressServiceImpl extends ServiceImpl<UserAddressDao, UserAddress> implements UserAddressService {
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<UserAddressEntity> page = this.page(
|
||||
new Query<UserAddressEntity>().getPage(params),
|
||||
new QueryWrapper<UserAddressEntity>()
|
||||
IPage<UserAddress> page = this.page(
|
||||
new Query<UserAddress>().getPage(params),
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user