hulh 8 жил өмнө
parent
commit
b2c8c9a84d

+ 1 - 1
src/main/java/com/uas/platform/b2c/fa/payment/controller/BankInfoController.java

@@ -47,7 +47,7 @@ public class BankInfoController {
 
 
 	/**
-	 * @author yujia  分页获取买家个人银行账户
+	 * @author yujia  获取买家个人银行账户
 	 *
 	 * @return the personal bank
 	 */

+ 46 - 2
src/main/java/com/uas/platform/b2c/fa/payment/controller/BankTransferController.java

@@ -2,11 +2,13 @@ package com.uas.platform.b2c.fa.payment.controller;
 
 
 import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.view.JxlsExcelView;
 import com.uas.platform.b2c.fa.payment.model.BankInfo;
 import com.uas.platform.b2c.fa.payment.model.BankTransfer;
 import com.uas.platform.b2c.fa.payment.service.BankTransferService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.trade.order.model.OrderSimpleInfo;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
@@ -18,6 +20,14 @@ import com.wordnik.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * The type Bank transfer controller.
@@ -231,7 +241,41 @@ public class BankTransferController {
 	 */
 	@RequestMapping(value = "/vendor/bankTransfer/page", method = RequestMethod.GET, params = "type=sup")
 	@ApiOperation(value = "获取供应商的的收款转账单", httpMethod = "GET")
-	public ResultMap getVendorBankTransferByMall(@ApiParam(required = true, value = "分页参数") PageParams params) {
-		return bankTransferService.getVendorBankTransferByMall(params, Type.SUP.value());
+	public ResultMap getVendorBankTransferByMall(@ApiParam(required = true, value = "分页参数") PageParams params,
+												String keyword, Long fromDate, Long toDate) {
+		return bankTransferService.getVendorBankTransferByMall(params, Type.SUP.value(), keyword, fromDate, toDate);
+	}
+
+	/**
+	 * 导出收款记录到excel表中
+	 * @param isAjax
+	 * @param request
+	 * @param keyword
+	 * @param fromDate
+	 * @param toDate
+	 * @return
+	 */
+	@RequestMapping(value = "/export/bankTransfer", method = RequestMethod.POST)
+	public ModelAndView exportPayRecordToExcel(@RequestParam(required = false, value = "isAjax", defaultValue = "false")Boolean isAjax, HttpServletRequest request,
+											   String keyword, Long fromDate, Long toDate){
+		HttpSession session = request.getSession();
+		ModelAndView modelAndView = new ModelAndView();
+		Object loading = session.getAttribute("loading");
+		if(isAjax) {
+			MappingJackson2JsonView view = new MappingJackson2JsonView();
+			Map<String, Boolean> attributes = new HashMap<>();
+			Boolean isLoading= loading == Boolean.TRUE;
+			attributes.put("loading", isLoading);
+			view.setAttributesMap(attributes);
+			modelAndView.setView(view);
+			return modelAndView;
+		}
+		session.setAttribute("loading", true);
+		List<BankTransfer> data = bankTransferService.getExportData(Type.SUP.value(), keyword, fromDate, toDate);
+		modelAndView.addObject("data", data);
+		modelAndView.addObject("operator", "+");
+		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/trade/bankTransfer", "优软商城-卖家交易记录"));
+		session.setAttribute("loading", false);
+		return modelAndView;
 	}
 }

+ 37 - 0
src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransfer.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.fa.payment.model;
 
 import javax.persistence.*;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -13,6 +14,8 @@ import java.util.Date;
 @Table(name = "trade$bank_transfer")
 public class BankTransfer {
 
+	private final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 	@Id
 	@GeneratedValue
 	@Column(name = "banktf_id")
@@ -60,6 +63,12 @@ public class BankTransfer {
 	@Column(name = "banktf_entername")
 	private String buyerentername;
 
+	/**
+	 * 订单号
+	 */
+	@Column(name = "banktf_orid")
+	private String orderid;
+
 	/**
 	 * 付款方个人uu
 	 */
@@ -139,6 +148,14 @@ public class BankTransfer {
 		this.jsonReceive = jsonReceive;
 	}
 
+	public String getOrderid() {
+		return orderid;
+	}
+
+	public void setOrderid(String orderid) {
+		this.orderid = orderid;
+	}
+
 	public String getJsonPament() {
 		return jsonPament;
 	}
@@ -252,6 +269,22 @@ public class BankTransfer {
 		this.dissociative = dissociative;
 	}
 
+	public String getBuyername() {
+		return buyername;
+	}
+
+	public void setBuyername(String buyername) {
+		this.buyername = buyername;
+	}
+
+	public String getBuyerentername() {
+		return buyerentername;
+	}
+
+	public void setBuyerentername(String buyerentername) {
+		this.buyerentername = buyerentername;
+	}
+
 	public BankTransAssociate getBankTransAssociate() {
 		return bankTransAssociate;
 	}
@@ -260,4 +293,8 @@ public class BankTransfer {
 		this.bankTransAssociate = bankTransAssociate;
 		return this;
 	}
+
+	public String convertTime(){
+		return sdf.format(transferTime);
+	}
 }

+ 12 - 1
src/main/java/com/uas/platform/b2c/fa/payment/service/BankTransferService.java

@@ -8,6 +8,7 @@ import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
 
 import java.util.List;
+import java.util.Random;
 
 /**
  * The interface BankTransfer service.
@@ -149,5 +150,15 @@ public interface BankTransferService {
 	 * @param type   the type 指定类型
 	 * @return ResultMap
 	 */
-	ResultMap getVendorBankTransferByMall(PageParams params, Integer type);
+	ResultMap getVendorBankTransferByMall(PageParams params, Integer type, String keyword, Long fromDate, Long toDate);
+
+	/**
+	 * 导出excel数据
+	 * @param type
+	 * @param keyword
+	 * @param fromDate
+	 * @param toDate
+	 * @return
+	 */
+	List<BankTransfer> getExportData(Integer type, String keyword, Long fromDate, Long toDate);
 }

+ 44 - 2
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java

@@ -29,7 +29,10 @@ import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.b2c.trade.util.Preconditions;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.*;
+import com.uas.platform.core.persistence.criteria.CriterionExpression;
+import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -449,8 +452,8 @@ public class BankTransferServiceImpl implements BankTransferService {
 	 * @return Page<BankTransfer>
 	 */
 	@Override
-	public ResultMap getVendorBankTransferByMall(PageParams params, Integer type) {
-		if(type == null || (type != Type.SUP.value() && type != Type.MALL.value()&&type != Type.MALL.value()) || params == null) {
+	public ResultMap getVendorBankTransferByMall(PageParams params, Integer type, String keyword, Long fromDate, Long toDate) {
+		if(type == null || (type != Type.SUP.value() && type != Type.MALL.value()) || params == null) {
 			return new ResultMap(CodeType.NO_INFO, "参数信息丢失");
 		}
 		final PageInfo info = new PageInfo(params);
@@ -458,6 +461,8 @@ public class BankTransferServiceImpl implements BankTransferService {
 			info.filter("operateType", type);
 			info.filter("collectenuu", SystemSession.getUser().getEnterprise().getUu());
 		}
+		filterPageInfo(info, keyword, fromDate, toDate);
+
 		Page<BankTransfer> pageBankTran = bankTransferDao.findAll(new Specification<BankTransfer>() {
 			@Override
 			public Predicate toPredicate(Root<BankTransfer> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
@@ -474,4 +479,41 @@ public class BankTransferServiceImpl implements BankTransferService {
 		}
 		return ResultMap.success(pageBankTran);
 	}
+
+	@Override
+	public List<BankTransfer> getExportData(Integer type, String keyword, Long fromDate, Long toDate) {
+		if(type == null || (type != Type.SUP.value() && type != Type.MALL.value())) {
+			throw new IllegalOperatorException("参数丢失,刷新后重试");
+		}
+		final PageInfo info = new PageInfo();
+		if(type == Type.SUP.value()) {
+			info.filter("operateType", type);
+			info.filter("collectenuu", SystemSession.getUser().getEnterprise().getUu());
+		}
+		filterPageInfo(info, keyword, fromDate, toDate);
+		List<BankTransfer> list = bankTransferDao.findAll(new Specification<BankTransfer>() {
+			@Override
+			public Predicate toPredicate(Root<BankTransfer> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
+				criteriaQuery.where(info.getPredicates(root, criteriaQuery, criteriaBuilder));
+				return null;
+			}
+		});
+		return list;
+	}
+
+	private void filterPageInfo(PageInfo info, String keyword, Long fromDate, Long toDate){
+		if (StringUtils.hasText(keyword)){
+			SimpleExpression[] simpArrs = new SimpleExpression[2];
+			simpArrs[0] = new SimpleExpression("orderid", keyword, CriterionExpression.Operator.LIKE, true);
+			simpArrs[1] = new SimpleExpression("buyerentername", keyword, CriterionExpression.Operator.LIKE, true);
+			LogicalExpression logical = new LogicalExpression(simpArrs, CriterionExpression.Operator.OR);
+			info.expression(logical);
+		}
+		if (fromDate != null) {
+			info.expression(PredicateUtils.gte("paytime", new Date(fromDate), false));
+		}
+		if (toDate != null) {
+			info.expression(PredicateUtils.lte("paytime", new Date(toDate), false));
+		}
+	}
 }

BIN
src/main/resources/jxls-tpl/trade/bankTransfer.xls


+ 62 - 3
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_pay_ctrl.js

@@ -17,9 +17,14 @@ define(['app/app'], function(app) {
         $scope.$payCenter.tab = "paymentRecord";
         $scope.$$bankInfo = {};
 
+        $scope.paytype = 'ALL';
+
         $scope.tradeRecordTableParams = new ngTableParams({
             page : 1,
-            count : 30
+            count : 30,
+            sorting : {
+                transferTime : 'DESC'
+            }
         },{
             total : 0,
             getData : function ($defer, params) {
@@ -179,8 +184,8 @@ define(['app/app'], function(app) {
             var size;
             if (num == 1){
                 //验证开户银行名称
-                // $scope.showBankFrame = true;
-                // matchArray();
+                $scope.showBankFrame = true;
+                matchArray();
             }else if(num == 2){
                 //验证开户支行名称
                 if($scope.account.branchname){
@@ -226,6 +231,29 @@ define(['app/app'], function(app) {
             }
         };
 
+        $scope.reuseAccount = function (item) {
+            $scope.showReuseFrame = true;
+            $scope.reuseObject = item;
+        };
+
+        $scope.cancelReuse = function () {
+            $scope.showReuseFrame = false;
+        };
+
+        $scope.ensureReuse = function () {
+            if(!$scope.reuseObject){
+                toaster.pop("info", "请选择重新使用的账户");
+            }
+            bankInfoService.setDefaultAccount({id:$scope.reuseObject.id},{},function (data) {
+                toaster.pop("info", "重新使用成功");
+                $scope.reuseObject = {};
+                $scope.showReuseFrame = false;
+                loadData();
+            },function () {
+                toaster.pop("info", "重新使用失败");
+            })
+        };
+
         $scope.ensureAddAccount = function () {
             var account = $scope.account;
 
@@ -272,12 +300,18 @@ define(['app/app'], function(app) {
         //删除账户
         $scope.deleteAccount = function(account) {
             if(account.id) {
+                $scope.$payCenter.deleteDiv = true;
                 $scope.$payCenter.deleteID = account.id;
             }else {
                 toaster.pop('info', '请选择要删除的信息');
             }
         };
 
+        $scope.cancelDelete = function () {
+            $scope.$payCenter.deleteDiv = false;
+            $scope.$payCenter.deleteID = null;
+        };
+
         //确认删除账户信息
         $scope.confirmDelete = function () {
             if(!$scope.$payCenter.deleteID) {
@@ -303,6 +337,31 @@ define(['app/app'], function(app) {
             '兴业银行','中信银行','中国光大银行','广发银行','平安银行','中国邮政储蓄银行','华夏银行','浦发银行'
         ];
 
+        var matchArray = function () {
+            $scope.account.bankname = $scope.account.bankname ? $scope.account.bankname : '';
+            $scope.resultList = $scope.bankList.filter(function (data) {
+                if (data.indexOf($scope.account.bankname) >= 0){
+                    return data;
+                }
+            });
+            if ($scope.resultList.length > 0){
+                $scope.matchData = true;
+            }else{
+                $scope.matchData = false;
+            }
+        };
+
+        $scope.fitBankToAccount = function (item) {
+            $scope.account.bankname = item;
+            $scope.showBankFrame = false;
+        };
+
+        $scope.showList = function () {
+            $scope.showBankFrame = !$scope.showBankFrame;
+            $scope.matchData = true;
+            $scope.resultList = $scope.bankList;
+        };
+
         //获取传入买家订单获取采购单的信息
         $scope.goToPurchaseDetail = function (orderNum) {
             if(!orderNum) {

+ 3 - 5
src/main/webapp/resources/view/vendor/forstore/pay_center.html

@@ -791,11 +791,9 @@
                 <div class="col-md-3"><em class="colorRed">*</em>开户银行</div>
                 <div class="col-md-5">
                     <input ng-model="account.bankname" ng-change="checkAccount(1)" class="form-control" type="text" placeholder="例如:中国工商银行侨香支行" required style="padding:12px 6px;width:91%;border-right:transparent;border-radius:3px 0 0 3px;">
-                    <i class="select-adder" style="display:inline-block;width:25px;height:34px;position:absolute;top:0;right:0;z-index:10;border:1px solid #ddd;border-radius:0 3px 3px 0;border-left:transparent"></i>
-                    <ul class="select-down" >
-                        <li>{bank}</li>
-                        <li>{bank}</li>
-                        <li>{bank}</li>
+                    <i class="select-adder" ng-click="showList()" style="display:inline-block;width:25px;height:34px;position:absolute;top:0;right:0;z-index:10;border:1px solid #ddd;border-radius:0 3px 3px 0;border-left:transparent"></i>
+                    <ul class="select-down" ng-if="showBankFrame && matchData">
+                        <li ng-click="fitBankToAccount(bank)" ng-repeat="bank in resultList">{{bank}}</li>
                     </ul>
                 </div>
                 <div class="col-md-4">