|
|
@@ -2,6 +2,7 @@ package com.goafanti.order.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -11,14 +12,17 @@ import com.goafanti.common.dao.AdminMapper;
|
|
|
import com.goafanti.common.dao.TOrderBackMapper;
|
|
|
import com.goafanti.common.dao.TOrderBillNewMapper;
|
|
|
import com.goafanti.common.dao.TOrderNewMapper;
|
|
|
+import com.goafanti.common.dao.TOrderRefundMapper;
|
|
|
import com.goafanti.common.model.TOrderBack;
|
|
|
import com.goafanti.common.model.TOrderBillNew;
|
|
|
import com.goafanti.common.model.TOrderNew;
|
|
|
+import com.goafanti.common.model.TOrderRefund;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.JDBCIdGenerator;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.order.bo.OrderListBo;
|
|
|
+import com.goafanti.order.bo.OrderRefundBo;
|
|
|
import com.goafanti.order.service.FundManageOrderService;
|
|
|
|
|
|
@Service
|
|
|
@@ -33,6 +37,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
@Autowired
|
|
|
private TOrderBackMapper backMapper;
|
|
|
@Autowired
|
|
|
+ private TOrderRefundMapper refundMapper;
|
|
|
+ @Autowired
|
|
|
JDBCIdGenerator idGenerator;
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@@ -109,7 +115,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
back.setBackStatus(0);
|
|
|
System.out.println(TokenManager.getUserId());
|
|
|
System.out.println(TokenManager.getAdminId());
|
|
|
- back.setInitiate(TokenManager.getUserId());//发起人
|
|
|
+ back.setInitiate(TokenManager.getAdminId());//发起人
|
|
|
back.setAccept(tOrderNewMapper.getSaleIdByOno(back.getOrderNo())); //查看该订单的负责人
|
|
|
c = backMapper.insertSelective(back);
|
|
|
}
|
|
|
@@ -122,8 +128,10 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
|
|
|
//获得的单个订单金额数据(首付金额和总金额)
|
|
|
TOrderNew o = tOrderNewMapper.selectByPrimaryKey(billNew.getOrderNo());
|
|
|
-
|
|
|
- bd.add(billNew.getTransactionAmount());
|
|
|
+ if(null == o){
|
|
|
+ return -2;
|
|
|
+ }
|
|
|
+ bd.add(billNew.getTransactionAmount().abs());
|
|
|
int lstaus = 0;
|
|
|
|
|
|
//如果订单流水总额大于总金额 return -1
|
|
|
@@ -139,7 +147,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
}
|
|
|
//否则新增流水信息
|
|
|
billNew.setBillNo(idGenerator.generateId().toString());
|
|
|
- billNew.setCreater(TokenManager.getUserId());
|
|
|
+ billNew.setCreater(TokenManager.getAdminId());
|
|
|
int result = billNewMapper.insertSelective(billNew);
|
|
|
|
|
|
//修改订单结算金额和结算状态
|
|
|
@@ -157,6 +165,76 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public Pagination<OrderRefundBo> getRefundList(OrderRefundBo refund,
|
|
|
+ Integer pageNo, Integer pageSize) {
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ params.put("r", refund);
|
|
|
+ Pagination<OrderRefundBo> data = (Pagination<OrderRefundBo>)findPage("getRefundList", "getRefundCount", params, pageNo, pageSize);
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer changeRefund(TOrderRefund refund) {
|
|
|
+ //查看当前退单状态
|
|
|
+ TOrderRefund d = refundMapper.selectByPrimaryKey(refund.getId());
|
|
|
+ if(d.getRefundStatus() != 0){
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //TODO 这里是否要修改订单状态待确定
|
|
|
+
|
|
|
+ //修改退单审核状态
|
|
|
+ return refundMapper.updateRefundById(refund);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer addRefundFlow(TOrderBillNew billNew) {
|
|
|
+ // 查看收款总金额
|
|
|
+ BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
|
|
|
+ billNew.setTransactionAmount(billNew.getTransactionAmount().abs());//绝对值
|
|
|
+ int lstaus = 3;
|
|
|
+ //如果小于要退的金额 return -1
|
|
|
+ //如果等于要退的金额 lstatus 4
|
|
|
+ //如果大于 要退的金额 lstatus 3
|
|
|
+ if(bd.compareTo(billNew.getTransactionAmount()) == -1){
|
|
|
+ return -1;
|
|
|
+ }else if(bd.compareTo(billNew.getTransactionAmount()) == 0){
|
|
|
+ lstaus = 4;
|
|
|
+ }
|
|
|
+
|
|
|
+ //新增收款流水
|
|
|
+ billNew.setBillNo(idGenerator.generateId().toString());
|
|
|
+ billNew.setCreater(TokenManager.getAdminId());
|
|
|
+ billNew.setTransactionAmount(billNew.getTransactionAmount().negate());// 取负数
|
|
|
+ int result = billNewMapper.insertSelective(billNew);
|
|
|
+
|
|
|
+ //修改订单数据结算状态和结算金额
|
|
|
+ TOrderNew orderNew = new TOrderNew();
|
|
|
+ orderNew.setOrderNo(billNew.getOrderNo());
|
|
|
+ orderNew.setSettlementAmount(bd.add(billNew.getTransactionAmount()));
|
|
|
+ orderNew.setLiquidationStatus(lstaus);
|
|
|
+ if(lstaus == 4){//如果款项全部退完就更改订单状态,这里不一定待商榷
|
|
|
+ orderNew.setProcessStatus(6);
|
|
|
+ }
|
|
|
+ if(result > 0){
|
|
|
+ result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TOrderBillNew selectOneRefundFlow(String BillNo) {
|
|
|
+ return billNewMapper.getOneRefundFlow(BillNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo) {
|
|
|
+ return billNewMapper.getOneOrderAllRefundFlow(orderNo);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|