Jelajahi Sumber

线上/下余额退款

zhijiezhao 3 tahun lalu
induk
melakukan
d6c208c599

+ 72 - 4
src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java

@@ -274,15 +274,64 @@ public class CmRefundsProductController extends BaseController {
             if (cmDiscernReceipt != null && "1".equals(cmDiscernReceipt.getPayWay())) {
                 Date splitTime = cmDiscernReceiptDao.findSplitTime(newOrder.getOrderID());
                 if (splitTime != null) {
+//                    Calendar calendar = Calendar.getInstance();
+//                    calendar.setTime(splitTime);
+//                    calendar.set(Calendar.HOUR_OF_DAY, 23);
+//                    calendar.set(Calendar.MINUTE, 20);
+//                    if (calendar.getTime().compareTo(new Date()) > 0) {
+//                        returnOnline = true;
+//                    }
+                    returnOnline = false;
+                } else {
+                    returnOnline = true;
+                }
+            }
+            Double onlineMoney = cmDiscernReceiptDao.findOnlineMoney(newOrder.getOrderID().toString());
+            Double refundOnlineMoney = cmDiscernReceiptDao.findRefundOnlineMoney(newOrder.getOrderID().toString());
+            Double userMoney = cmDiscernReceiptDao.findUserMoney(newOrder.getOrderID().toString());
+            Double refundUserMoney = cmDiscernReceiptDao.findRefundUserMoney(newOrder.getOrderID().toString());
+            refundUserMoney = null == refundUserMoney ? 0 : refundUserMoney;
+            refundOnlineMoney = null == refundOnlineMoney ? 0 : refundOnlineMoney;
+            onlineMoney = null == onlineMoney ? 0 : onlineMoney;
+            userMoney = null == userMoney ? 0 : userMoney;
+            //线上线下余额-退款
+            onlineMoney -= refundOnlineMoney;
+            userMoney -= refundUserMoney;
+            //todo 退线上/线下
+            if (cmDiscernReceipt != null && "3".equals(cmDiscernReceipt.getPayWay())) {
+                Date splitTime = cmDiscernReceiptDao.findSplitTime(newOrder.getOrderID());
+                if (splitTime != null) {
                     Calendar calendar = Calendar.getInstance();
                     calendar.setTime(splitTime);
                     calendar.set(Calendar.HOUR_OF_DAY, 23);
                     calendar.set(Calendar.MINUTE, 20);
                     if (calendar.getTime().compareTo(new Date()) > 0) {
-                        returnOnline = true;
+                        // 分账前 如果当前单线上余额支付>0并且>退款可以退线上
+                        if (onlineMoney > 0 && MathUtil.compare(onlineMoney, refundOnlineMoney) > 0) {
+                            returnOnline = true;
+                        }
+                        if (userMoney > 0 && newOrder.getPayableAmount() == 0 && MathUtil.compare(newOrder.getPayTotalFee(), newOrder.getBalancePayFee()) == 0) {
+                            //余额全付其中有线下,重新置为不能线上
+                            returnOnline = false;
+                        }
+                        if (onlineMoney > 0 && userMoney > 0 && newOrder.getPayableAmount() > 0) {
+                            //单没付完,线上线下余额都有,不能线上
+                            returnOnline = false;
+                        }
                     }
                 } else {
-                    returnOnline = true;
+                    // 分账前 如果当前单线上余额支付>0并且>退款可以退线上
+                    if (onlineMoney > 0 && MathUtil.compare(onlineMoney, refundOnlineMoney) > 0) {
+                        returnOnline = true;
+                    }
+                    if (userMoney > 0 && newOrder.getPayableAmount() == 0 && MathUtil.compare(newOrder.getPayTotalFee(), newOrder.getBalancePayFee()) == 0) {
+                        //余额全付其中有线下,重新置为不能线上
+                        returnOnline = false;
+                    }
+                    if (userMoney > 0 && onlineMoney > 0 && newOrder.getPayableAmount() > 0) {
+                        //单没付完,线上线下余额都有,不能线上
+                        returnOnline = false;
+                    }
                 }
             }
             Integer lastReceiptDetailId = cmDiscernReceiptDao.findOrderLastReceiptDetailId(newOrder.getOrderID().toString());
@@ -415,16 +464,35 @@ public class CmRefundsProductController extends BaseController {
             }
             //线上退款
             if ("2".equals(cmReturnedPurchase.getReturnedWay())) {
+                Double balancePayFee = newOrder.getBalancePayFee();
+                Double onlineMoney = cmDiscernReceiptDao.findOnlineMoney(newOrder.getOrderID().toString());
+                Double refundOnlineMoney = cmDiscernReceiptDao.findRefundOnlineMoney(newOrder.getOrderID().toString());
+                refundOnlineMoney = null == refundOnlineMoney ? 0 : refundOnlineMoney;
+                onlineMoney = null == onlineMoney ? 0 : onlineMoney;
+                //线上线下余额-退款
+                onlineMoney -= refundOnlineMoney;
                 double refundOnlineFee = refundFee - newOrder.getBalancePayFee();
+                if (onlineMoney > 0) {
+                    //线上余额算正常金额退
+                    refundOnlineFee = MathUtil.add(refundOnlineFee, onlineMoney).doubleValue();
+                    //总余额减掉退回的线上退回去
+                    balancePayFee = MathUtil.sub(balancePayFee, onlineMoney).doubleValue();
+                }
                 cmReturnedPurchase.setRefundOnlineFee(refundOnlineFee);
                 cmReturnedPurchase.setRefundBalanceFee(newOrder.getBalancePayFee());
             } else if ("1".equals(cmReturnedPurchase.getReturnedWay()) && cmReturnedPurchase.getRefundBalanceFee() == 0d) {
+                Double userMoney = cmDiscernReceiptDao.findUserMoney(newOrder.getOrderID().toString());
+                Double refundUserMoney = cmDiscernReceiptDao.findRefundUserMoney(newOrder.getOrderID().toString());
+                refundUserMoney = null == refundUserMoney ? 0 : refundUserMoney;
+                userMoney = null == userMoney ? 0 : userMoney;
+                userMoney -= refundUserMoney;
                 //线上支付,全部退余额
                 cmReturnedPurchase.setRefundBalanceFee(refundFee);
+                //本次支付剩余退到线上余额(线上余额支付+线上支付)
+                cmReturnedPurchase.setRefundOnlineBalanceFee(refundFee - userMoney);
             }
             //统计填写的拆分金额
-            Double totalRefundFee = cmReturnedPurchase.getRefundBalanceFee() + cmReturnedPurchase.getRefundOnlineFee() + cmReturnedPurchase.getRefundOfflineFee();
-
+            Double totalRefundFee = cmReturnedPurchase.getRefundBalanceFee() + cmReturnedPurchase.getRefundOnlineFee() + cmReturnedPurchase.getRefundOfflineFee() + cmReturnedPurchase.getRefundOnlineBalanceFee();
             if (rechargeGoods) {
                 CmUser user = cmUserDao.get(newOrder.getUserID().toString());
                 if (user != null && user.getAbleUserMoney() != null && user.getAbleUserMoney() < refundFee) {

+ 5 - 0
src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java

@@ -100,5 +100,10 @@ public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 
     Double findOnlineMoney(String orderID);
 
+    Double findRefundOnlineMoney(String orderID);
+
     String findType(String id);
+
+    Double findRefundUserMoney(String orderID);
+
 }

+ 5 - 0
src/main/java/com/caimei/modules/order/dao/CmReceiptOrderRelationDao.java

@@ -5,6 +5,7 @@ import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.caimei.modules.order.entity.CmReceiptOrderRelation;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -31,4 +32,8 @@ public interface CmReceiptOrderRelationDao extends CrudDao<CmReceiptOrderRelatio
     CmReceiptOrderRelation findOrderRelation(Integer orderID);
 
     Date findOnlinePayment(Integer orderID);
+
+    Double findOnlineMoneyPay(Integer orderId);
+    //查未分帐的充为线上余额的订金/余额订单
+    List<String> findMborderId(Integer orderId);
 }

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/CmReturnedPurchaseDao.java

@@ -26,4 +26,6 @@ public interface CmReturnedPurchaseDao extends CrudDao<CmReturnedPurchase> {
     List<CmReturnedPurchase>  findListBuySuccess(CmReturnedPurchase item);
 
     Double refundTotalMoney(Integer orderID);
+
+    String findPayType(Integer orderID);
 }

+ 10 - 1
src/main/java/com/caimei/modules/order/entity/CmReturnedPurchase.java

@@ -60,7 +60,8 @@ public class CmReturnedPurchase extends DataEntity<CmReturnedPurchase> {
     private String bankAccountNo;//开户银行账户
     private String openBank;//开户银行
     private String bankAccountType;//账户类型:1公账,2私账
-    private Double refundBalanceFee;//退账户余额
+    private Double refundBalanceFee;//退账户线下余额
+    private Double refundOnlineBalanceFee;//退账户线上余额
     private Double refundOnlineFee;//退线上退回
     private Double refundOfflineFee;//退线下转账
     private Integer applicationUserID;//申请人ID
@@ -74,6 +75,14 @@ public class CmReturnedPurchase extends DataEntity<CmReturnedPurchase> {
     private String beginTime;     //时间开始 查询条件 申请时间
     private String endTime;        //时间结束  查询条件 申请时间
 
+    public Double getRefundOnlineBalanceFee() {
+        return refundOnlineBalanceFee;
+    }
+
+    public void setRefundOnlineBalanceFee(Double refundOnlineBalanceFee) {
+        this.refundOnlineBalanceFee = refundOnlineBalanceFee;
+    }
+
     public String getName() {
         return name;
     }

+ 127 - 20
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -543,43 +543,83 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
             }
             newOrderService.update(newOrder);
             //判断是否选择退回余额
-            if ((returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundBalanceFee() > 0d) || newOrder.getRechargeGoods() != null) {
+            //returnway=1,退线下余额>0或退线上余额>0  是定金订单???
+            Double refundBalance = null == returnedPurchase.getRefundBalanceFee() ? 0 : returnedPurchase.getRefundBalanceFee();
+            Double refundOnlineBalance = null == returnedPurchase.getRefundOnlineBalanceFee() ? 0 : returnedPurchase.getRefundOnlineBalanceFee();
+            if ((returnedPurchase.getReturnedWay().equals("1") && returnedPurchase.getRefundBalanceFee() > 0d) ||  null!=newOrder.getRechargeGoods() || returnedPurchase.getRefundOnlineBalanceFee() > 0) {
                 Double userMoney = user.getUserMoney();
                 Double ableUserMoney = user.getAbleUserMoney();
+                //退账户线下余额
                 Double refundBalanceFee = returnedPurchase.getRefundBalanceFee();
+                //退账户线上余额
+                Double refundOnlineBalanceFee = returnedPurchase.getRefundOnlineBalanceFee();
                 Double refundFee = returnedPurchase.getRefundFee();
+                Double onlineMoney = user.getOnlineMoney();
                 if (userMoney == null) userMoney = 0d;
                 if (ableUserMoney == null) ableUserMoney = 0d;
                 if (refundBalanceFee == null) refundBalanceFee = 0d;
+                onlineMoney = onlineMoney == null ? 0 : onlineMoney;
+                refundOnlineBalanceFee = refundOnlineBalanceFee == null ? 0 : refundOnlineBalanceFee;
                 user.setUserID(newOrder.getUserID());
 
-                //添加余额收支记录
                 CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
-                cmUserBalanceRecord.setUserId(newOrder.getUserID());
-                cmUserBalanceRecord.setType("1");
-                cmUserBalanceRecord.setBalanceType("3");
-                cmUserBalanceRecord.setAddDate(new Date());
-                //设置余额支付
-                cmUserBalanceRecord.setAmount(String.valueOf(returnedPurchase.getRefundBalanceFee()));
                 cmUserBalanceRecord.setOrderId(newOrder.getOrderID());
-                cmUserBalanceRecord.setReturnedId(Integer.parseInt(returnedPurchase.getId()));
+                cmUserBalanceRecord.setAddDate(new Date());
+                cmUserBalanceRecord.setUserId(newOrder.getUserID());
                 cmUserBalanceRecord.setDelFlag("0");
-
+                cmUserBalanceRecord.setReturnedId(Integer.parseInt(returnedPurchase.getId()));
+                //充值订金或者充值余额>0
+                //线上退回/线下退回扣减余额
                 if (newOrder.getRechargeGoods() != null) {
-                    user.setUserMoney(userMoney - refundFee);
-                    cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
-                    cmUserBalanceRecord.setType("2");
-                    if (newOrder.getRechargeGoods() == 1) {
-                        cmUserBalanceRecord.setBalanceType("8");
-                    } else if (newOrder.getRechargeGoods() == 2) {
-                        cmUserBalanceRecord.setBalanceType("9");
+                    String payType = cmReturnedPurchaseDao.findPayType(newOrder.getOrderID());
+                    //1线上2线下
+                    if ("1".equals(payType)) {
+                        user.setUserMoney(onlineMoney - refundFee);
+                        user.setAbleUserMoney(ableUserMoney - refundFee);
+                        cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
+                        cmUserBalanceRecord.setType("2");
+                        if (newOrder.getRechargeGoods() == 1) {
+                            cmUserBalanceRecord.setBalanceType("18");
+                        } else if (newOrder.getRechargeGoods() == 2) {
+                            cmUserBalanceRecord.setBalanceType("19");
+                        }
+                        cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
+                        cmUserDao.updateMoney(user);
+                    } else {
+                        user.setUserMoney(userMoney - refundFee);
+                        user.setAbleUserMoney(ableUserMoney - refundFee);
+                        cmUserBalanceRecord.setAmount(String.valueOf(refundFee));
+                        cmUserBalanceRecord.setType("2");
+                        if (newOrder.getRechargeGoods() == 1) {
+                            cmUserBalanceRecord.setBalanceType("8");
+                        } else if (newOrder.getRechargeGoods() == 2) {
+                            cmUserBalanceRecord.setBalanceType("9");
+                        }
+                        cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
+                        cmUserDao.updateMoney(user);
                     }
                 } else {
+                    cmUserBalanceRecord.setType("1");
                     user.setUserMoney(userMoney + refundBalanceFee);
-                    user.setAbleUserMoney(ableUserMoney + refundBalanceFee);
+                    user.setOnlineMoney(onlineMoney + refundOnlineBalanceFee);
+                    user.setAbleUserMoney(ableUserMoney + refundBalanceFee + refundOnlineBalanceFee);
+                    if (refundBalanceFee > 0) {
+                        //添加线下余额收支记录
+                        cmUserBalanceRecord.setBalanceType("3");
+                        //设置余额支付
+                        cmUserBalanceRecord.setAmount(refundBalanceFee.toString());
+
+                        cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
+                    }
+                    if (refundOnlineBalanceFee > 0) {
+                        //添加线上余额收支记录
+                        cmUserBalanceRecord.setBalanceType("13");
+                        //设置余额支付
+                        cmUserBalanceRecord.setAmount(refundOnlineBalanceFee.toString());
+                        cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
+                    }
+                    cmUserDao.updateMoney(user);
                 }
-                cmUserDao.updateMoney(user);
-                cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
             }
             //修改子订单信息
             updateShopOrderAmount(newOrder.getOrderID());
@@ -787,6 +827,73 @@ public class CmReturnedPurchaseService extends CrudService<CmReturnedPurchaseDao
                         throw new Exception("第三方退款失败!");
                     }
                 }
+                //cdr表payway为3余额支付,查是否有线上余额支付
+                if ("3".equals(orderRelation.getPayWay())) {
+                    //查当前单线上余额支付总金额
+                    Double onlineMoneyPay = cmReceiptOrderRelationDao.findOnlineMoneyPay(orderId);
+                    if (null != onlineMoneyPay && onlineMoneyPay >= 0.01) {
+                        //根据userid查产生线上余额的唯一请求单号,发起退款请求
+                        String userId = cmReceiptOrderRelationDao.findUserId(orderId);
+                        //用户名下未分帐的线上充值订金/余额订单唯一订单号
+                        ArrayList<String> orderRequestNos = cmReceiptOrderRelationDao.findMborderId(userId);
+                        //用户名下线上退款回线上余额的原唯一订单号
+                        ArrayList<String> orderRequestNo = cmReceiptOrderRelationDao.findOrderRequestNo(userId);
+                        if (orderRequestNo != null && orderRequestNo.size() > 0) {
+                            for (String s : orderRequestNo) {
+                                if (onlineMoneyPay > 0) {
+                                    //该单退还金额
+                                    Double money = cmReceiptOrderRelationDao.findMoney(s);
+                                    //待支付总线上余额>该笔退款金额,则退全额,否则退待支付
+                                    Double refundMoney = MathUtil.compare(onlineMoneyPay, money) > 0 ? money : onlineMoneyPay;
+                                    String payType=cmReceiptOrderRelationDao.findPayTypeByOrderRequestNo(s);
+                                    //todo 退款
+
+
+                                    onlineMoneyPay = MathUtil.sub(onlineMoneyPay, money).doubleValue();
+                                }
+                            }
+                        }
+                        if (orderRequestNos != null && orderRequestNos.size() > 0) {
+                            for (String requestNo : orderRequestNos) {
+                                if (onlineMoneyPay > 0) {
+                                    //该单退还金额
+                                    Double money = cmReceiptOrderRelationDao.findMoney(requestNo);
+                                    //待支付总线上余额>该笔退款金额,则退全额,否则退待支付
+                                    Double refundMoney = MathUtil.compare(onlineMoneyPay, money) > 0 ? money : onlineMoneyPay;
+                                    String payType=cmReceiptOrderRelationDao.findPayTypeByOrderRequestNo(requestNo);
+                                    //todo 退款
+
+
+                                    onlineMoneyPay = MathUtil.sub(onlineMoneyPay, money).doubleValue();
+                                }
+                            }
+                        }
+                        if(onlineMoneyPay<=0){
+                            CmUser user = cmUserDao.get(userId);
+                            //线上余额退完,user表减余额,cubr表统计余额减少
+                            CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
+                            cmUserBalanceRecord.setBalanceType("19");
+                            cmUserBalanceRecord.setType("2");
+                            cmUserBalanceRecord.setUserId(user.getUserID());
+                            cmUserBalanceRecord.setAddDate(new Date());
+                            cmUserBalanceRecord.setAmount(user.getOnlineMoney().toString());
+                            cmUserBalanceRecord.setOrderId(orderId);
+                            cmUserBalanceRecord.setDelFlag("0");
+                            cmUserBalanceRecordService.insertUserBalanceRecord(cmUserBalanceRecord);
+                            //user表减余额
+                            double v = MathUtil.sub(user.getAbleUserMoney(), user.getOnlineMoney()).doubleValue();
+                            user.setOnlineMoney(0d);
+                            user.setAbleUserMoney(v);
+                            cmUserDao.updateMoney(user);
+                        }
+                        if(onlineMoneyPay>0){
+                            logger.info("订单不足退线上余额,请检查订单");
+                            throw new Exception("订单不足退线上余额,请检查订单!");
+                        }
+                    } else {
+                        logger.info("线上余额过小或无线上余额支付退款=========orderId==> " + orderId);
+                    }
+                }
             }
             logger.info("第三方退款成功>>>>>>>orderId>>>" + orderId);
         }

+ 14 - 0
src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml

@@ -975,4 +975,18 @@
           AND balanceType = 10
           AND delflag = 0
     </select>
+    <select id="findRefundOnlineMoney" resultType="java.lang.Double">
+        SELECT SUM(amount)
+        FROM cm_user_balance_record
+        WHERE orderId = #{orderID}
+          AND balanceType = 13
+          AND delflag = 0
+    </select>
+    <select id="findRefundUserMoney" resultType="java.lang.Double">
+        SELECT SUM(amount)
+        FROM cm_user_balance_record
+        WHERE orderId = #{orderID}
+          AND balanceType = 3
+          AND delflag = 0
+    </select>
 </mapper>

+ 20 - 0
src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml

@@ -202,4 +202,24 @@
 		LIMIT
 		  1
 	</select>
+	<select id="findOnlineMoneyPay" resultType="java.lang.Double">
+		SELECT SUM(amount)
+		FROM cm_user_balance_record cubr
+		WHERE cubr.orderId = #{orderId}
+		  AND cubr.type = 2
+		  AND cubr.balanceType = 10
+		  AND cubr.delFlag = 0
+	</select>
+	<select id="findMborderId" resultType="java.lang.String">
+		SELECT cror.mbOrderId FROM cm_receipt_order_relation cror
+		LEFT JOIN cm_user_balance_record cubr ON cror.orderID=cubr.orderId
+		LEFT JOIN cm_order co ON cror.orderID = co.orderID
+		WHERE cubr.balanceType IN (16,17)
+		  AND cror.splitStatus = 0
+		  AND cubr.type = 1
+		  AND cror.delFlag = 0
+		  AND cubr.delFlag = 0
+		  AND co.delFlag = 0
+		  AND co.refundType != 2
+	</select>
 </mapper>

+ 9 - 0
src/main/resources/mappings/modules/order/CmReturnedPurchaseMapper.xml

@@ -29,6 +29,7 @@
 		a.applicationUserID AS "applicationUserID",
 		a.reviewUserID AS "reviewUserID",
 		a.refundBalanceFee AS "refundBalanceFee",
+		a.refundOnlineBalanceFee AS "refundOnlineBalanceFee",
 		a.refundOnlineFee AS "refundOnlineFee",
 		a.refundOfflineFee AS "refundOfflineFee",
 		a.bankAccountName AS "bankAccountName",
@@ -202,6 +203,7 @@
 			returnedPurchaseFee,
 			refundFee,
 			refundBalanceFee,
+			refundOnlineBalanceFee,
 			refundOnlineFee,
 			refundOfflineFee,
 			image1,
@@ -230,6 +232,7 @@
 			#{returnedPurchaseFee},
 			#{refundFee},
 			#{refundBalanceFee},
+			#{refundOnlineBalanceFee},
 			#{refundOnlineFee},
 			#{refundOfflineFee},
 			#{image1},
@@ -399,4 +402,10 @@
 		WHERE orderID=#{orderID} AND delFlag='0' AND status='2'
 	</select>
 
+	<select id="findPayType" resultType="java.lang.String">
+		SELECT payWay
+		FROM cm_discern_receipt cdr
+		LEFT JOIN cm_receipt_order_relation cror ON cror.`receiptID` = cdr.id
+		WHERE orderId = #{orderID}
+	</select>
 </mapper>

+ 4 - 2
src/main/resources/mappings/modules/user/CmUserMapper.xml

@@ -41,7 +41,8 @@
 		a.scanFlag AS "scanFlag",
 		a.userBeans AS "userBeans",
 		a.guideFlag AS "guideFlag",
-		a.userPermission AS "userPermission"
+		a.userPermission AS "userPermission",
+		a.onlineMoney AS "onlineMoney"
 	</sql>
 
     <select id="get" resultType="CmUser">
@@ -537,7 +538,8 @@
 	<update id="updateMoney">
 		UPDATE user SET
 			userMoney =  #{userMoney},
-		    ableUserMoney = #{ableUserMoney}
+		    ableUserMoney = #{ableUserMoney},
+			onlineMoney = #{onlineMoney}
 		WHERE userID = #{userID}
 	</update>
 

+ 5 - 1
src/main/webapp/WEB-INF/views/modules/order/cmReturnedPurchaseList.jsp

@@ -174,9 +174,13 @@
 					</c:if>
 					<c:if test="${cmReturnedPurchase.returnedWay eq 1}">
 						<c:if test="${not empty cmReturnedPurchase.refundBalanceFee && cmReturnedPurchase.refundBalanceFee ne 0 }">
-							<div>余额账户:<fmt:formatNumber type="number" pattern="#,##0.00"
+							<div>线下余额账户:<fmt:formatNumber type="number" pattern="#,##0.00"
 												   value="${cmReturnedPurchase.refundBalanceFee}" />元<br></div>
 						</c:if>
+						<c:if test="${not empty cmReturnedPurchase.refundOnlineBalanceFee && cmReturnedPurchase.refundOnlineBalanceFee ne 0 }">
+							<div>线上余额账户:<fmt:formatNumber type="number" pattern="#,##0.00"
+														  value="${cmReturnedPurchase.refundOnlineBalanceFee}" />元<br></div>
+						</c:if>
 						<c:if test="${not empty cmReturnedPurchase.refundOnlineFee && cmReturnedPurchase.refundOnlineFee ne 0 }">
 							<div>线上退回:<fmt:formatNumber type="number" pattern="#,##0.00"
 												   value="${cmReturnedPurchase.refundOnlineFee}" />元<br></div>

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/user/cmUserBalanceList.jsp

@@ -121,7 +121,7 @@
 					<fmt:formatNumber value="${empty cmUser.userMoney ? 0:cmUser.userMoney}" type="currency"/>
 				</td>
 				<td>
-
+					<fmt:formatNumber value="${empty cmUser.onlineMoney ? 0:cmUser.onlineMoney}" type="currency"/>
 				</td>
 				<td>
 					<a href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${cmUser.userID}" >查看详情</a>

+ 18 - 8
src/main/webapp/WEB-INF/views/modules/user/cmUserBalanceRecordList.jsp

@@ -102,6 +102,12 @@
 				<form:option value="7">余额订单充值</form:option>
 				<form:option value="8">订金订单退款</form:option>
 				<form:option value="9">余额订单退款</form:option>
+				<form:option value="10">线上余额抵扣</form:option>
+				<form:option value="13">申请退款到线上余额</form:option>
+				<form:option value="16">线上订金订单充值</form:option>
+				<form:option value="17">线上余额订单充值</form:option>
+				<form:option value="18">线上订金订单退款</form:option>
+				<form:option value="19">线上余额订单退款</form:option>
 			</form:select>
 				&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
 			<div class="clearfix"></div>
@@ -139,19 +145,23 @@
 							<fmt:formatNumber value="${cmUserBalanceRecord.amount}" type="currency"/>
 						</td>
 						<td>
-							<c:if test="${cmUserBalanceRecord.balanceType ne 10 || cmUserBalanceRecord.balanceType ne 16 || cmUserBalanceRecord.balanceType ne 17}">
-								<fmt:formatNumber value="${cmUserBalanceRecord.amount}" type="currency"/>
+							<c:if test="${cmUserBalanceRecord.balanceType eq 1 || cmUserBalanceRecord.balanceType eq 2 || cmUserBalanceRecord.balanceType eq 3 || cmUserBalanceRecord.balanceType eq 4|| cmUserBalanceRecord.balanceType eq 5|| cmUserBalanceRecord.balanceType eq 6|| cmUserBalanceRecord.balanceType eq 7|| cmUserBalanceRecord.balanceType eq 8|| cmUserBalanceRecord.balanceType eq 9}">
+								<fmt:formatNumber value="${empty cmUserBalanceRecord.amount ? 0:cmUserBalanceRecord.amount}"
+												  type="currency"/>
 							</c:if>
-							<c:if test="${cmUserBalanceRecord.balanceType eq 10 || cmUserBalanceRecord.balanceType eq 16 || cmUserBalanceRecord.balanceType eq 17}">
-								<fmt:formatNumber value="0" type="currency"/>
+							<c:if test="${cmUserBalanceRecord.balanceType ne 1 && cmUserBalanceRecord.balanceType ne 2 && cmUserBalanceRecord.balanceType ne 3 && cmUserBalanceRecord.balanceType ne 4&& cmUserBalanceRecord.balanceType ne 5&& cmUserBalanceRecord.balanceType ne 6&& cmUserBalanceRecord.balanceType ne 7&& cmUserBalanceRecord.balanceType ne 8&& cmUserBalanceRecord.balanceType ne 9}">
+								<fmt:formatNumber value="0"
+												  type="currency"/>
 							</c:if>
 						</td>
 						<td>
-							<c:if test="${cmUserBalanceRecord.balanceType eq 10 || cmUserBalanceRecord.balanceType eq 16 || cmUserBalanceRecord.balanceType eq 17}">
-								<fmt:formatNumber value="${cmUserBalanceRecord.amount}" type="currency"/>
+							<c:if test="${cmUserBalanceRecord.balanceType eq 10 || cmUserBalanceRecord.balanceType eq 13 || cmUserBalanceRecord.balanceType eq 16 || cmUserBalanceRecord.balanceType eq 17 || cmUserBalanceRecord.balanceType eq 18 || cmUserBalanceRecord.balanceType eq 19}">
+								<fmt:formatNumber value="${empty cmUserBalanceRecord.amount ? 0:cmUserBalanceRecord.amount}"
+												  type="currency"/>
 							</c:if>
-							<c:if test="${cmUserBalanceRecord.balanceType ne 10 || cmUserBalanceRecord.balanceType ne 16 || cmUserBalanceRecord.balanceType ne 17}">
-								<fmt:formatNumber value="0" type="currency"/>
+							<c:if test="${cmUserBalanceRecord.balanceType ne 10 && cmUserBalanceRecord.balanceType ne 13 && cmUserBalanceRecord.balanceType ne 16 && cmUserBalanceRecord.balanceType ne 17 && cmUserBalanceRecord.balanceType ne 18 && cmUserBalanceRecord.balanceType ne 19}">
+								<fmt:formatNumber value="0"
+												  type="currency"/>
 							</c:if>
 						</td>
 						<td>