|
|
@@ -10,10 +10,12 @@ import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
@@ -30,6 +32,8 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
|
private MusicGroupDao musicGroupDao;
|
|
|
@Autowired
|
|
|
private SysPaymentConfigService sysPaymentConfigService;
|
|
|
+ @Autowired
|
|
|
+ private SysUserCashAccountService sysUserCashAccountService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, SellOrder> getDAO() {
|
|
|
@@ -128,11 +132,11 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
|
}
|
|
|
}
|
|
|
//库存类型
|
|
|
- if(goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)){
|
|
|
+ if (goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)) {
|
|
|
sellOrder.setStockType(StockType.INTERNAL);
|
|
|
- }else if(goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)){
|
|
|
+ } else if (goodsStockType.equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)) {
|
|
|
sellOrder.setStockType(StockType.EXTERNAL);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
sellOrder.setStockType(goodsStockType);
|
|
|
}
|
|
|
//批次号 TODO
|
|
|
@@ -236,11 +240,11 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
|
sellOrder.setExpectAmount(BigDecimal.ZERO);
|
|
|
}
|
|
|
//库存类型
|
|
|
- if(goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)){
|
|
|
+ if (goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.INTERNAL)) {
|
|
|
sellOrder.setStockType(StockType.INTERNAL);
|
|
|
- }else if(goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)){
|
|
|
+ } else if (goods.getStockType().equals(StockType.ALL) && accountType.equals(AccountType.EXTERNAL)) {
|
|
|
sellOrder.setStockType(StockType.EXTERNAL);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
sellOrder.setStockType(goods.getStockType());
|
|
|
}
|
|
|
//批次号 TODO
|
|
|
@@ -259,4 +263,29 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
|
sellOrderDao.batchInsert(sellOrders);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public SellOrder refund(Integer id) {
|
|
|
+ SellOrder sellOrder = sellOrderDao.get(id);
|
|
|
+
|
|
|
+ if (!sellOrder.getStatus().equals(SellStatus.NORMAL)) {
|
|
|
+ throw new BizException("当前状态不能退货,请核查");
|
|
|
+ }
|
|
|
+ if (!sellOrder.getType().equals(SellTypeEnum.SCHOOL_BUY)) {
|
|
|
+ throw new BizException("学校采购不能退货");
|
|
|
+ }
|
|
|
+ //1、更改销售列表状态
|
|
|
+ sellOrder.setStatus(SellStatus.REFUND);
|
|
|
+ sellOrder.setUpdateTime(new Date());
|
|
|
+ sellOrderDao.update(sellOrder);
|
|
|
+
|
|
|
+ //2、金额退到余额
|
|
|
+ if (sellOrder.getActualAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ sysUserCashAccountService.updateBalance(sellOrder.getUserId(), sellOrder.getActualAmount().negate(), PlatformCashAccountDetailTypeEnum.REFUNDS, "退货");
|
|
|
+ }
|
|
|
+ //3、商品退回库存 TODO
|
|
|
+
|
|
|
+ return sellOrder;
|
|
|
+ }
|
|
|
+
|
|
|
}
|