Przeglądaj źródła

update销售列表退货接口

周箭河 5 lat temu
rodzic
commit
eb0d03f3e9

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SellOrderDao.java

@@ -122,6 +122,7 @@ public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
 
     /**
      * 获取声部更换的销售、总收入
+     *
      * @param startTime
      * @param endTime
      * @return
@@ -129,11 +130,20 @@ public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
     List<OperatingReport> getSubjectChangeMonthReport(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
     /**
+     * @param sellOrderIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.SellOrder>
      * @describe 获取指定的销售记录
      * @author Joburgess
      * @date 2020.10.13
-     * @param sellOrderIds:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.SellOrder>
      */
     List<SellOrder> getSellOrders(@Param("sellOrderIds") List<Integer> sellOrderIds);
+
+
+    /**
+     * 获取订单组合商品的子商品
+     * @param orderId
+     * @param parentGoodsId
+     * @return
+     */
+    List<SellOrder> getSellOrderByParentGoodsId(@Param("orderId") Long orderId, @Param("parentGoodsId") Integer parentGoodsId);
 }

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/SellOrderService.java

@@ -35,9 +35,17 @@ public interface SellOrderService extends BaseService<Integer, SellOrder> {
 
 
     /**
+     * 获取组合商品的相关商品
+     * @param orderId
+     * @param parentGoodsId
+     * @return
+     */
+    List<SellOrder> getSellOrderByParentGoodsId(Long orderId,Integer parentGoodsId);
+
+    /**
      * 退货
-     * @param id
+     * @param sellOrders
      * @return
      */
-    SellOrder refund(Integer id);
+    List<SellOrder> refund(List<SellOrder> sellOrders);
 }

+ 21 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -34,6 +34,8 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
     private SysPaymentConfigService sysPaymentConfigService;
     @Autowired
     private SysUserCashAccountService sysUserCashAccountService;
+    @Autowired
+    private GoodsService goodsService;
 
     @Override
     public BaseDAO<Integer, SellOrder> getDAO() {
@@ -264,28 +266,29 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
     }
 
     @Override
+    public List<SellOrder> getSellOrderByParentGoodsId(Long orderId, Integer parentGoodsId) {
+        return sellOrderDao.getSellOrderByParentGoodsId(orderId, parentGoodsId);
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
-    public SellOrder refund(Integer id) {
-        SellOrder sellOrder = sellOrderDao.get(id);
+    public List<SellOrder> refund(List<SellOrder> sellOrders) {
+        for (SellOrder sellOrder : sellOrders) {
+            //1、更改销售列表状态
+            sellOrder.setStatus(SellStatus.REFUND);
+            sellOrder.setUpdateTime(new Date());
+            sellOrderDao.update(sellOrder);
 
-        if (!sellOrder.getStatus().equals(SellStatus.NORMAL)) {
-            throw new BizException("当前状态不能退货,请核查");
-        }
-        if (!sellOrder.getType().equals(SellTypeEnum.SCHOOL_BUY)) {
-            throw new BizException("学校采购不能退货");
+            //2、金额退到余额
+            if (sellOrder.getActualAmount().compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(sellOrder.getUserId(), sellOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "订单:" + sellOrder.getOrderId() + " 商品id:" + sellOrder.getGoodsId() + "退货");
+            }
         }
-        //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、退货
+        if (sellOrders.get(0).getAccountType() != null) {
+            goodsService.increaseStock(sellOrders, sellOrders.get(0).getAccountType());
         }
-        //3、商品退回库存 TODO
-
-        return sellOrder;
+        return sellOrders;
     }
 
 }

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml

@@ -404,4 +404,8 @@
             #{id}
         </foreach>
     </select>
+
+    <select id="getSellOrderByParentGoodsId" resultMap="SellOrder">
+        SELECT * FROM sell_order WHERE order_id_ = #{orderId} AND parent_goods_id_ = #{parentGoodsId}
+    </select>
 </mapper>

+ 24 - 2
mec-web/src/main/java/com/ym/mec/web/controller/SellOrderController.java

@@ -6,12 +6,15 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.SellOrder;
+import com.ym.mec.biz.dal.enums.SellStatus;
+import com.ym.mec.biz.dal.enums.SellTypeEnum;
 import com.ym.mec.biz.dal.page.RepairStudentQueryInfo;
 import com.ym.mec.biz.dal.page.SellOrderQueryInfo;
 import com.ym.mec.biz.service.SellOrderService;
 import com.ym.mec.biz.service.StudentRepairService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
@@ -19,6 +22,7 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.snaker.engine.access.Page;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -26,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -83,8 +88,25 @@ public class SellOrderController extends BaseController {
     @ApiOperation("退货")
     @PostMapping(value = "/refund")
     @PreAuthorize("@pcs.hasPermissions('sellOrder/refund')")
-    public HttpResponseResult<SellOrder> refund(Integer id) {
-        return succeed(sellOrderService.refund(id));
+    public HttpResponseResult<List<SellOrder>> refund(Integer id, Boolean reTry) {
+        SellOrder sellOrder = sellOrderService.get(id);
+
+        if (!sellOrder.getStatus().equals(SellStatus.NORMAL)) {
+            return failed("当前状态不能退货,请核查");
+        }
+        if (!sellOrder.getType().equals(SellTypeEnum.SCHOOL_BUY)) {
+            return failed("学校采购不能退货");
+        }
+        if (sellOrder.getParentGoodsId() != null && (reTry == null || !reTry)) {
+            return failed(HttpStatus.CONTINUE, "组合商品,相关商品将一起退货");
+        }
+        List<SellOrder> sellOrders = new ArrayList<>();
+        if (sellOrder.getParentGoodsId() != null) {
+            sellOrders = sellOrderService.getSellOrderByParentGoodsId(sellOrder.getOrderId(), sellOrder.getParentGoodsId());
+        } else {
+            sellOrders.add(sellOrder);
+        }
+        return succeed(sellOrderService.refund(sellOrders));
     }
 
 }