|
@@ -32,7 +32,8 @@ import java.util.*;
|
|
|
|
|
|
|
|
|
@Service("orderService")
|
|
|
-public class OrderServiceImpl implements OrderService {
|
|
|
+public class OrderServiceImpl
|
|
|
+ implements OrderService {
|
|
|
@Autowired
|
|
|
private OrderDao orderDao;
|
|
|
@Autowired
|
|
@@ -92,6 +93,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
/**
|
|
|
* 取消订单
|
|
|
+ *
|
|
|
* @param order
|
|
|
*/
|
|
|
@Override
|
|
@@ -116,11 +118,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
map.put("orderId", order.getId());
|
|
|
List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
|
|
|
for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
|
|
|
- ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao.queryByStoreIdProductId(Long.valueOf(order.getStoreId()), Long.valueOf(orderGoodsEntity.getProductId()));
|
|
|
+ ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
|
|
|
+ .queryByStoreIdProductId(Long.valueOf(order.getStoreId()),
|
|
|
+ Long.valueOf(orderGoodsEntity.getProductId()));
|
|
|
if (null == storeRelaEntity || null == storeRelaEntity.getSellVolume()) {
|
|
|
storeRelaEntity.setSellVolume(0);
|
|
|
}
|
|
|
- BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume()-orderGoodsEntity.getNumber());//销售量
|
|
|
+ BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume() - orderGoodsEntity.getNumber());//销售量
|
|
|
if (sellVolume.compareTo(Constant.ZERO) < 0) {
|
|
|
sellVolume = Constant.ZERO;
|
|
|
}
|
|
@@ -211,12 +215,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
// 获取门店
|
|
|
StoreEntity storeEntity = storeDao.queryObject(orderEntity.getStoreId());
|
|
|
// 获取清关信息
|
|
|
- OrderProcessRecordEntity orderProcessRecordEntity = orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
+ OrderProcessRecordEntity orderProcessRecordEntity =
|
|
|
+ orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
|
|
|
// 小票头
|
|
|
TicketHead head = new TicketHead();
|
|
|
head.setTitle(OmsMerchPropertiesBuilder.instance().getMerchName() + storeEntity.getStoreName());
|
|
|
-// head.setMemberId(orderEntity.getUserName().toString());
|
|
|
+ // head.setMemberId(orderEntity.getUserName().toString());
|
|
|
head.setOrderId(orderEntity.getOrderSn());
|
|
|
head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(new Date()));
|
|
|
|
|
@@ -226,8 +231,12 @@ public class OrderServiceImpl implements OrderService {
|
|
|
List<Goods> goodsList = new ArrayList<>();
|
|
|
for (OrderGoodsEntity orderGoods : orderGoodsEntityList) {
|
|
|
goodsTotal += orderGoods.getNumber();
|
|
|
- total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber()))).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- Goods goods = new Goods(orderGoods.getGoodsName(), orderGoods.getRetailPrice().toString(), orderGoods.getNumber().toString(), orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ total = total.add(orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber())))
|
|
|
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ Goods goods = new Goods(orderGoods.getGoodsName(), orderGoods.getRetailPrice().toString(),
|
|
|
+ orderGoods.getNumber().toString(),
|
|
|
+ orderGoods.getRetailPrice().multiply(new BigDecimal(orderGoods.getNumber()))
|
|
|
+ .setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
goodsList.add(goods);
|
|
|
}
|
|
|
|
|
@@ -238,13 +247,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
cashInfo.setReceipts(orderEntity.getActualPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
cashInfo.setOddChange("0.00");
|
|
|
cashInfo.setCoupon(orderEntity.getCouponPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
- cashInfo.setFreight(new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ cashInfo.setFreight(
|
|
|
+ new BigDecimal(orderEntity.getFreightPrice()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
cashInfo.setPaymentMode("微信支付");
|
|
|
|
|
|
// 海关清单
|
|
|
CusListing cusListing = new CusListing();
|
|
|
cusListing.setOrderId(orderEntity.getOrderSn());
|
|
|
- if(!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())){
|
|
|
+ if (!orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_11.getItem())) {
|
|
|
cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
|
|
|
cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo());
|
|
|
cusListing.setConsignee(orderEntity.getConsignee());
|
|
@@ -265,34 +275,41 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (order.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_201.getItem())) {
|
|
|
order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
|
|
|
}
|
|
|
- order.setPayStatus(Integer.parseInt(Dict.payStatus.item_3.getItem()));
|
|
|
+
|
|
|
+ if (Dict.payFlag.item_cash.getItem().equals(order.getPayFlag())) {
|
|
|
+ order.setPayStatus(Integer.parseInt(Dict.payStatus.item_4.getItem()));
|
|
|
+ }else{
|
|
|
+ order.setPayStatus(Integer.parseInt(Dict.payStatus.item_3.getItem()));
|
|
|
+
|
|
|
+ OrderRefundEntity mallOrderRefund = orderRefundDao.queryObjectByOrderId(order.getId());
|
|
|
+
|
|
|
+ OrderRefundEntity orderRefund = new OrderRefundEntity();
|
|
|
+ orderRefund.setRefundId(result.getRefund_id());
|
|
|
+ orderRefund.setOutRefundNo(result.getOut_refund_no());
|
|
|
+ orderRefund
|
|
|
+ .setRefundMoney(BigDecimal.valueOf(Long.valueOf(result.getRefund_fee())).divide(Constant.ONE_HUNDRED));
|
|
|
+ orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_5.getItem()));//退款处理中
|
|
|
+ orderRefund.setModTime(new Date());
|
|
|
+
|
|
|
+ if (mallOrderRefund != null) {
|
|
|
+ orderRefund.setId(mallOrderRefund.getId());
|
|
|
+ orderRefund.setRefundType(mallOrderRefund.getRefundType());
|
|
|
+ orderRefundDao.update(orderRefund);
|
|
|
+ } else {
|
|
|
+ orderRefund.setOrderId(Integer.parseInt(order.getId() + ""));
|
|
|
+ orderRefund.setUserId(Integer.parseInt(order.getUserId() + ""));
|
|
|
+ orderRefund.setCreateTime(new Date());
|
|
|
+ orderRefundDao.save(orderRefund);//退款记录
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ orderDao.update(order);//修改为退款中
|
|
|
|
|
|
// 判断是否有优惠券
|
|
|
UserCouponEntity couponVo = userCouponDao.queryByOrderId(order.getId());
|
|
|
if (null != couponVo) {
|
|
|
userCouponDao.cancelOrder(couponVo);
|
|
|
}
|
|
|
- orderDao.update(order);//修改为退款中
|
|
|
-
|
|
|
- OrderRefundEntity mallOrderRefund = orderRefundDao.queryObjectByOrderId(order.getId());
|
|
|
-
|
|
|
- OrderRefundEntity orderRefund = new OrderRefundEntity();
|
|
|
- orderRefund.setRefundId(result.getRefund_id());
|
|
|
- orderRefund.setOutRefundNo(result.getOut_refund_no());
|
|
|
- orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(result.getRefund_fee())).divide(Constant.ONE_HUNDRED));
|
|
|
- orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_5.getItem()));//退款处理中
|
|
|
- orderRefund.setModTime(new Date());
|
|
|
-
|
|
|
- if(mallOrderRefund !=null){
|
|
|
- orderRefund.setId(mallOrderRefund.getId());
|
|
|
- orderRefund.setRefundType(mallOrderRefund.getRefundType());
|
|
|
- orderRefundDao.update(orderRefund);
|
|
|
- }else{
|
|
|
- orderRefund.setOrderId(Integer.parseInt(order.getId()+""));
|
|
|
- orderRefund.setUserId(Integer.parseInt(order.getUserId()+""));
|
|
|
- orderRefund.setCreateTime(new Date());
|
|
|
- orderRefundDao.save(orderRefund);//退款记录
|
|
|
- }
|
|
|
|
|
|
if (!needUpdateStock) {
|
|
|
return;
|
|
@@ -302,11 +319,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
map.put("orderId", order.getId());
|
|
|
List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
|
|
|
for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
|
|
|
- ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao.queryByStoreIdProductId(Long.valueOf(order.getStoreId()), Long.valueOf(orderGoodsEntity.getProductId()));
|
|
|
+ ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
|
|
|
+ .queryByStoreIdProductId(Long.valueOf(order.getStoreId()),
|
|
|
+ Long.valueOf(orderGoodsEntity.getProductId()));
|
|
|
if (null == storeRelaEntity || null == storeRelaEntity.getSellVolume()) {
|
|
|
storeRelaEntity.setSellVolume(0);
|
|
|
}
|
|
|
- BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume()-orderGoodsEntity.getNumber());//销售量
|
|
|
+ BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume() - orderGoodsEntity.getNumber());//销售量
|
|
|
if (sellVolume.compareTo(Constant.ZERO) < 0) {
|
|
|
sellVolume = Constant.ZERO;
|
|
|
}
|
|
@@ -327,7 +346,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Transactional
|
|
|
public void applyRefundDeal(OrderEntity orderInfo, OrderRefundEntity refundEntity) {
|
|
|
refundEntity.setApprovalTime(new Date());
|
|
|
-// refundEntity.setApprover(ShiroUtils.getUserId());
|
|
|
+ // refundEntity.setApprover(ShiroUtils.getUserId());
|
|
|
// 退积分
|
|
|
try {
|
|
|
Integer integral = 1;
|
|
@@ -374,9 +393,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
result = orderDao.getTodayUserOrder();
|
|
|
} else if ("todayUserSales".equals(type)) {
|
|
|
result = orderDao.getTodayUserSales();
|
|
|
- } else if("incomeSum".equals(type)){
|
|
|
+ } else if ("incomeSum".equals(type)) {
|
|
|
result = orderDao.getIncomeSum();
|
|
|
- } else if("payedOrderCount".equals(type)){
|
|
|
+ } else if ("payedOrderCount".equals(type)) {
|
|
|
result = orderDao.getPayedOrderCount();
|
|
|
}
|
|
|
return result;
|
|
@@ -388,11 +407,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (orderEntity == null) {
|
|
|
throw new RRException("此订单不存在!");
|
|
|
}
|
|
|
- if(orderEntity.getShippingStatus() == 0){
|
|
|
- if(orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())
|
|
|
- || orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_02.getItem())){
|
|
|
+ if (orderEntity.getShippingStatus() == 0) {
|
|
|
+ if (orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem()) ||
|
|
|
+ orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_02.getItem())) {
|
|
|
throw new RRException("此订单还未发货!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
if (StringUtils.isNullOrEmpty(orderEntity.getShippingNo())) {
|
|
|
throw new RRException("此订单还未发货!");
|
|
|
}
|
|
@@ -401,22 +420,26 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
Map logisticsInfo = new HashMap();
|
|
|
List<WuliuEntity> wuliuEntityList = new ArrayList<>();
|
|
|
- OrderProcessRecordEntity orderProcessRecordEntity = orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
+ OrderProcessRecordEntity orderProcessRecordEntity =
|
|
|
+ orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
if (orderProcessRecordEntity != null) {
|
|
|
- if(orderEntity.getOrderBizType().equals(Dict.orderBizType.item_10.getItem())
|
|
|
- || orderEntity.getOrderBizType().equals(Dict.orderBizType.item_02.getItem())) {
|
|
|
+ if (orderEntity.getOrderBizType().equals(Dict.orderBizType.item_10.getItem()) ||
|
|
|
+ orderEntity.getOrderBizType().equals(Dict.orderBizType.item_02.getItem())) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getCustomsSuccTime()));
|
|
|
- wuliuEntity.setAcceptStation(PrintTicketPropertiesBuilder.instance().getAddress()
|
|
|
- + "送达" + storeDao.queryObject(orderEntity.getStoreId()).getStoreAddress()
|
|
|
- + ";交易完成,用户已提走");
|
|
|
+ wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(orderProcessRecordEntity.getCustomsSuccTime()));
|
|
|
+ wuliuEntity.setAcceptStation(PrintTicketPropertiesBuilder.instance().getAddress() + "送达" +
|
|
|
+ storeDao.queryObject(orderEntity.getStoreId()).getStoreAddress() +
|
|
|
+ ";交易完成,用户已提走");
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(orderEntity.getShippingCode())
|
|
|
- && StringUtils.isNotEmpty(orderEntity.getShippingNo()) &&orderProcessRecordEntity.getShipmentStartTime()!=null) {
|
|
|
- JSONObject traces = KdniaoUtil.getOrderTracesByJson(orderEntity.getShippingCode(), orderEntity.getShippingNo());
|
|
|
+ if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) &&
|
|
|
+ StringUtils.isNotEmpty(orderEntity.getShippingNo()) &&
|
|
|
+ orderProcessRecordEntity.getShipmentStartTime() != null) {
|
|
|
+ JSONObject traces =
|
|
|
+ KdniaoUtil.getOrderTracesByJson(orderEntity.getShippingCode(), orderEntity.getShippingNo());
|
|
|
List<Map> mapList = (List<Map>) traces.get("Traces");
|
|
|
- if(mapList!=null&&mapList.size()>0) {
|
|
|
+ if (mapList != null && mapList.size() > 0) {
|
|
|
for (Map map : mapList) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptTime(map.get("AcceptTime").toString());
|
|
@@ -424,24 +447,27 @@ public class OrderServiceImpl implements OrderService {
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
}
|
|
|
- String state = traces.get("State")+"";
|
|
|
+ String state = traces.get("State") + "";
|
|
|
if (Dict.logisticsStatus.item_0.getItem().equals(state) && traces.getBoolean("Success")) {
|
|
|
- String reason = traces.get("Reason")+"";
|
|
|
+ String reason = traces.get("Reason") + "";
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptStation(reason);
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
}
|
|
|
- if (Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsCustomsSend()) && orderProcessRecordEntity.getShipmentStartTime() != null) {
|
|
|
+ if (Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsCustomsSend()) &&
|
|
|
+ orderProcessRecordEntity.getShipmentStartTime() != null) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
- wuliuEntity.setAcceptStation( "订单已出库");
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getShipmentStartTime()));
|
|
|
+ wuliuEntity.setAcceptStation("订单已出库");
|
|
|
+ wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(orderProcessRecordEntity.getShipmentStartTime()));
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
if (Dict.isSend.item_1.getItem().equals(orderProcessRecordEntity.getIsCustomsSend())) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptStation("订单清关完成,等待仓库发货");
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getCustomsSuccTime()));
|
|
|
+ wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(orderProcessRecordEntity.getCustomsSuccTime()));
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
|
|
@@ -450,22 +476,26 @@ public class OrderServiceImpl implements OrderService {
|
|
|
wuliuEntity.setAcceptStation("订单清关失败");
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
- if (Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsEleOrderSend()) && orderProcessRecordEntity.getWaybillSuccTime()!=null) {
|
|
|
+ if (Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsEleOrderSend()) &&
|
|
|
+ orderProcessRecordEntity.getWaybillSuccTime() != null) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptStation("海关三单发送成功");
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getWaybillSuccTime()));
|
|
|
+ wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(orderProcessRecordEntity.getWaybillSuccTime()));
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
- if(Dict.isSend.item_1.getItem().equals(orderProcessRecordEntity.getIsPaymentSend())){
|
|
|
+ if (Dict.isSend.item_1.getItem().equals(orderProcessRecordEntity.getIsPaymentSend())) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptStation("订单支付成功");
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getPaySuccTime()));
|
|
|
+ wuliuEntity.setAcceptTime(
|
|
|
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getPaySuccTime()));
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
- if(Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsAddOrderSend())){
|
|
|
+ if (Dict.isSend.item_1.getItem().equalsIgnoreCase(orderProcessRecordEntity.getIsAddOrderSend())) {
|
|
|
WuliuEntity wuliuEntity = new WuliuEntity();
|
|
|
wuliuEntity.setAcceptStation("订单下单成功");
|
|
|
- wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(orderProcessRecordEntity.getAddOrderSuccTime()));
|
|
|
+ wuliuEntity.setAcceptTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
|
+ .format(orderProcessRecordEntity.getAddOrderSuccTime()));
|
|
|
wuliuEntityList.add(wuliuEntity);
|
|
|
}
|
|
|
}
|
|
@@ -487,10 +517,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public Map orderSubmit(List<OfflineCartEntity> offlineCartList,SysUserEntity user){
|
|
|
+ public Map orderSubmit(List<OfflineCartEntity> offlineCartList, SysUserEntity user) {
|
|
|
Map resultObj = new HashMap();
|
|
|
- try{
|
|
|
- if(user == null) {
|
|
|
+ try {
|
|
|
+ if (user == null) {
|
|
|
resultObj.put("errno", 400);
|
|
|
resultObj.put("errmsg", "用户登录超时,请重新登录");
|
|
|
return resultObj;
|
|
@@ -500,7 +530,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
resultObj.put("errmsg", "该操作只允许店员账户操作");
|
|
|
return resultObj;
|
|
|
}
|
|
|
- if(org.apache.commons.lang3.StringUtils.isEmpty(user.getMerchSn())){
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isEmpty(user.getMerchSn())) {
|
|
|
resultObj.put("errno", 400);
|
|
|
resultObj.put("errmsg", "操作用户的商户编号为空,请先维护用户商户编号信息再来操作");
|
|
|
return resultObj;
|
|
@@ -524,19 +554,21 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
// 检查库存和更新库存
|
|
|
for (OfflineCartEntity cartEntity : offlineCartEntityList) {
|
|
|
- if(goodsDao.queryObject(cartEntity.getGoodsId()) == null){
|
|
|
+ if (goodsDao.queryObject(cartEntity.getGoodsId()) == null) {
|
|
|
resultObj.put("errno", 400);
|
|
|
resultObj.put("errmsg", "订单提交失败:商品不存在");
|
|
|
return resultObj;
|
|
|
}
|
|
|
//取得规格的信息,判断规格库存
|
|
|
- ProductStoreRelaEntity productInfo = productStoreRelaDao.queryByGoodsIdAndStoreId(Long.valueOf(storeId),Long.valueOf(cartEntity.getGoodsId()));
|
|
|
- synchronized (productInfo){
|
|
|
- if (null == productInfo || null == productInfo.getStockNum() || productInfo.getStockNum() < cartEntity.getNumber()) {
|
|
|
+ ProductStoreRelaEntity productInfo = productStoreRelaDao
|
|
|
+ .queryByGoodsIdAndStoreId(Long.valueOf(storeId), Long.valueOf(cartEntity.getGoodsId()));
|
|
|
+ synchronized (productInfo) {
|
|
|
+ if (null == productInfo || null == productInfo.getStockNum() ||
|
|
|
+ productInfo.getStockNum() < cartEntity.getNumber()) {
|
|
|
resultObj.put("errno", 400);
|
|
|
resultObj.put("errmsg", "库存不足,仅剩余" + productInfo.getStockNum());
|
|
|
return resultObj;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
productInfo.setStockNum(productInfo.getStockNum() - cartEntity.getNumber());
|
|
|
productInfo.setStoreId(Long.valueOf(storeId));
|
|
|
productInfo.addSellVolume();
|
|
@@ -544,13 +576,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- String merchOrderSn = "EMATO"+CommonUtil.generateOrderNumber();
|
|
|
- OrderEntity order = setOrderVo(user,offlineCartEntityList,user.getMerchSn());
|
|
|
+ String merchOrderSn = "EMATO" + CommonUtil.generateOrderNumber();
|
|
|
+ OrderEntity order = setOrderVo(user, offlineCartEntityList, user.getMerchSn());
|
|
|
order.setStoreId(storeId);
|
|
|
order.setMerchOrderSn(merchOrderSn);
|
|
|
|
|
|
//开启事务,插入订单信息和订单商品
|
|
|
- if(order != null) {
|
|
|
+ if (order != null) {
|
|
|
orderDao.save(order);
|
|
|
if (null == order.getId()) {
|
|
|
resultObj.put("errno", 400);
|
|
@@ -570,7 +602,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
resultObj.put("errmsg", "订单提交成功");
|
|
|
resultObj.put("data", orderInfoMap);
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
resultObj.put("errno", 400);
|
|
|
resultObj.put("errmsg", "订单异常");
|
|
@@ -581,15 +613,18 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
/**
|
|
|
* 设置订单数据
|
|
|
+ *
|
|
|
* @param loginUser
|
|
|
* @return
|
|
|
*/
|
|
|
- public OrderEntity setOrderVo(SysUserEntity loginUser,List<OfflineCartEntity> offlineCartEntityList,String merchSn){
|
|
|
+ public OrderEntity setOrderVo(SysUserEntity loginUser, List<OfflineCartEntity> offlineCartEntityList,
|
|
|
+ String merchSn) {
|
|
|
OrderEntity orderInfo = new OrderEntity();
|
|
|
BigDecimal freightPrice = new BigDecimal(0.00);
|
|
|
BigDecimal goodsTotalPrice = new BigDecimal(0.00);
|
|
|
for (OfflineCartEntity offlineCartEntity : offlineCartEntityList) {
|
|
|
- goodsTotalPrice = goodsTotalPrice.add(offlineCartEntity.getRetailPrice().multiply(new BigDecimal(offlineCartEntity.getNumber())));
|
|
|
+ goodsTotalPrice = goodsTotalPrice
|
|
|
+ .add(offlineCartEntity.getRetailPrice().multiply(new BigDecimal(offlineCartEntity.getNumber())));
|
|
|
}
|
|
|
//订单价格计算:订单的总价+运费
|
|
|
BigDecimal orderTotalPrice = goodsTotalPrice.add(freightPrice);
|
|
@@ -602,23 +637,23 @@ public class OrderServiceImpl implements OrderService {
|
|
|
BigDecimal actualPrice = orderTotalPrice.subtract(couponPrice);
|
|
|
|
|
|
//商户(拼音首字母)+业务类型+编号
|
|
|
-// String merchSn = OmsMerchPropertiesBuilder.instance().getMerchSn();
|
|
|
-// String merchShortName = OmsMerchPropertiesBuilder.instance().getMerchShortName();
|
|
|
+ // String merchSn = OmsMerchPropertiesBuilder.instance().getMerchSn();
|
|
|
+ // String merchShortName = OmsMerchPropertiesBuilder.instance().getMerchShortName();
|
|
|
MerchEntity merchEntity = merchDao.findByMerchSn(merchSn);
|
|
|
String merchShortName = "";
|
|
|
- if(merchEntity != null){
|
|
|
+ if (merchEntity != null) {
|
|
|
merchShortName = merchEntity.getMerchShortName();
|
|
|
}
|
|
|
String orderSn = merchShortName + Dict.orderBizType.item_11.getItem() + CommonUtil.generateOrderNumber();
|
|
|
orderInfo.setOrderSn(orderSn);
|
|
|
orderInfo.setMerchSn(merchSn);
|
|
|
- orderInfo.setUserId(Integer.parseInt(loginUser.getUserId()+""));
|
|
|
+ orderInfo.setUserId(Integer.parseInt(loginUser.getUserId() + ""));
|
|
|
orderInfo.setFreightPrice(freightPrice.intValue());
|
|
|
orderInfo.setOrderBizType(Dict.orderBizType.item_11.getItem());
|
|
|
|
|
|
/*orderInfo.setCoupon_id(userCouponId);
|
|
|
orderInfo.setCoupon_name(couponName);*/
|
|
|
-// orderInfo.setFullCutPrice(fullCutCouponDec);//使用的优惠券
|
|
|
+ // orderInfo.setFullCutPrice(fullCutCouponDec);//使用的优惠券
|
|
|
orderInfo.setCouponPrice(couponPrice);
|
|
|
orderInfo.setPostscript("");//留言
|
|
|
orderInfo.setAddTime(new Date());
|
|
@@ -646,10 +681,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public OrderGoodsEntity setOrderGoodsVo(OrderEntity orderInfo,OfflineCartEntity goodsItem){
|
|
|
+ public OrderGoodsEntity setOrderGoodsVo(OrderEntity orderInfo, OfflineCartEntity goodsItem) {
|
|
|
GoodsEntity goodsVo = goodsDao.queryObject(goodsItem.getGoodsId());
|
|
|
OrderGoodsEntity orderGoodsVo = new OrderGoodsEntity();
|
|
|
- orderGoodsVo.setOrderId(Integer.parseInt(orderInfo.getId()+""));
|
|
|
+ orderGoodsVo.setOrderId(Integer.parseInt(orderInfo.getId() + ""));
|
|
|
orderGoodsVo.setGoodsId(goodsItem.getGoodsId());
|
|
|
orderGoodsVo.setGoodsSn(goodsItem.getGoodsSn());
|
|
|
orderGoodsVo.setProductId(goodsItem.getProductId());
|
|
@@ -667,7 +702,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public OrderEntity queryObjectBySysUser(Long id){
|
|
|
+ public OrderEntity queryObjectBySysUser(Long id) {
|
|
|
OrderEntity orderEntity = orderDao.queryObjectBySysUser(id);
|
|
|
|
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
@@ -676,10 +711,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderEntity.setOrderGoodsEntityList(orderGoodsEntityList);
|
|
|
return orderEntity;
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
- public int confirmPay(Long id) {
|
|
|
+ public int confirmPay(Long id, Dict.payFlag payFlag) {
|
|
|
SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
- if(user == null) {
|
|
|
+ if (user == null) {
|
|
|
throw new RRException("用户登录超时,请重新登录");
|
|
|
}
|
|
|
if (!user.getRoleType().equalsIgnoreCase("2")) {
|
|
@@ -700,6 +736,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
orderEntity.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_201.getItem()));
|
|
|
orderEntity.setPayStatus(Integer.parseInt(Dict.payStatus.item_2.getItem()));
|
|
|
+ orderEntity.setPayFlag(payFlag.getItem());
|
|
|
orderEntity.setPayTime(new Date());
|
|
|
orderDao.update(orderEntity);
|
|
|
return 0;
|