瀏覽代碼

支付接口

yuedefeng 6 年之前
父節點
當前提交
e679d97a9a

+ 20 - 0
src/dashoo.cn/backend/api/business/bankapi/ICBCService.go

@@ -94,3 +94,23 @@ func (s *ICBCService) ReceiveMoneyBillList(billIds BillReceiveMoneyParams) []byt
 	fmt.Println(string(p))
 	return p
 }
+
+func (s *ICBCService) ReceiveMoneyAgain(billIds BillReceiveMoneyAgainParams) []byte {
+	myToken := s.AuthToken()
+	queryJson, _ := json.Marshal(billIds)
+	queryParams := string(queryJson)
+	retVal := s.Post("/paymentinfo/receive-money-again-list", queryParams, myToken)
+	p, _ := ioutil.ReadAll(retVal.Body)
+	fmt.Println(string(p))
+	return p
+}
+
+func (s *ICBCService) CheckMoneyBillList(checkParams BillCheckMoneyParams) []byte {
+	myToken := s.AuthToken()
+	queryJson, _ := json.Marshal(checkParams)
+	queryParams := string(queryJson)
+	retVal := s.Post("/paymentinfo/check-money-list", queryParams, myToken)
+	p, _ := ioutil.ReadAll(retVal.Body)
+	fmt.Println(string(p))
+	return p
+}

+ 25 - 2
src/dashoo.cn/backend/api/business/bankapi/icbc.go

@@ -1,6 +1,10 @@
 package bankapi
 
-import "time"
+import (
+	"dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo"
+	"dashoo.cn/backend/api/business/paymentinfo"
+	"time"
+)
 
 type ICBCBillVM struct {
 	Id             int       `json:"id"`
@@ -35,5 +39,24 @@ type BillReceiveMoneyParams struct {
 	PayDate        time.Time `json:"payDate"`
 	BankSerialNum  string    `json:"bankSerialNum"`
 	BankName       string    `json:"bankName"`
-	ReceiveAmount  string    `json:"receiveAmount"`
+	ReceiveAmount  float64   `json:"receiveAmount"`
+}
+
+type BillReceiveMoneyAgainParams struct {
+	BillId 		   string 	 `json:"BillId"`
+	PayMode        string    `json:"payMode"`
+	PayDate        time.Time `json:"payDate"`
+	BankSerialNum  string    `json:"bankSerialNum"`
+	BankName       string    `json:"bankName"`
+	ReceiveAmount  float64   `json:"receiveAmount"`
+}
+
+type BillCheckMoneyParams struct {
+	StartTime       time.Time `json:"startTime"`
+	EndTime         time.Time `json:"endTime"`
+}
+
+type BillCheckMoneyRet struct {
+	PaymentInfos    	[] paymentinfo.OilPaymentInfo
+	PaymentBankInfos    [] paymentbankinfo.OilPaymentBankInfo
 }

+ 23 - 0
src/dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo/paymentbankinfo.go

@@ -0,0 +1,23 @@
+package paymentbankinfo
+
+import (
+	"time"
+)
+
+type OilPaymentBankInfo struct {
+	Id             int       `json:"Id" xorm:"not null pk autoincr INT(10) 'Id'"`
+	BillIds        string    `json:"BillIds" xorm:"VARCHAR(2000) 'BillIds'"`
+	ReceiveAmount  float64   `json:"ReceiveAmount" xorm:"DECIMAL(10,2) 'ReceiveAmount'"`
+	PayMode        string    `json:"PayMode" xorm:"VARCHAR(10) 'PayMode'"`
+	PayDate        time.Time `json:"PayDate" xorm:"DATETIME 'PayDate'"`
+	BankSerialNum  string    `json:"BankSerialNum" xorm:"VARCHAR(50) 'BankSerialNum'"`
+	BankName       string    `json:"BankName" xorm:"VARCHAR(100) 'BankName'"`
+	WriteInType    string    `json:"WriteInType" xorm:"comment('1:初次写入,2:银行对账有问题再次写入') VARCHAR(50) 'WriteInType'"`
+	Remark         string    `json:"Remark" xorm:"VARCHAR(255) 'Remark'"`
+	CreateUserId   int       `json:"CreateUserId" xorm:"INT(11) 'CreateUserId'"`
+	CreateOn       time.Time `json:"CreateOn" xorm:"DATETIME 'CreateOn'"`
+	CreateBy       string    `json:"CreateBy" xorm:"VARCHAR(50) 'CreateBy'"`
+	ModifiedOn     time.Time `json:"ModifiedOn" xorm:"DATETIME 'ModifiedOn'"`
+	ModifiedUserId int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
+	ModifiedBy     string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
+}

+ 16 - 0
src/dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo/paymentbankinfoService.go

@@ -0,0 +1,16 @@
+package paymentbankinfo
+
+import (
+	. "dashoo.cn/utils/db"
+	"github.com/go-xorm/xorm"
+)
+
+type PaymentBankInfoService struct {
+	ServiceBase
+}
+
+func GetPaymentSelectService(xormEngine *xorm.Engine) *PaymentBankInfoService {
+	s := new(PaymentBankInfoService)
+	s.DBE = xormEngine
+	return s
+}

+ 34 - 1
src/dashoo.cn/backend/api/controllers/bankapi/icbc.go

@@ -30,7 +30,7 @@ func (this *ICBCController) GetBillList() {
 	this.ServeJSON()
 }
 
-// @Title 获取银行支付所需账单信息
+// @Title 支付成功回调
 // @Description post bills by token
 // @Success 200 {object} BILLs
 // @router /update-bill-list [post]
@@ -45,3 +45,36 @@ func (this *ICBCController) UpdateBillList() {
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
 }
+
+// @Title 对账后有未更改状态的,对账异常后再次回调
+// @Description post bills by token
+// @Success 200 {object} BILLs
+// @router /update-bill-again [post]
+func (this *ICBCController) UpdateBillListAgain() {
+
+	var billParams bankapi.BillReceiveMoneyAgainParams
+	json.Unmarshal(this.Ctx.Input.RequestBody, &billParams)
+	svc := bankapi.GetICBCService(utils.DBE)
+	var datainfo DataInfo
+	ret := svc.ReceiveMoneyAgain(billParams)
+	json.Unmarshal(ret, &datainfo)
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
+// @Title 对账
+// @Description 对账
+// @Success	200	{object} controllers.Request
+// @router /check-money-list [post]
+func (this *ICBCController) CheckMoneyList() {
+	svc := bankapi.GetICBCService(utils.DBE)
+	var checkMoneyParams bankapi.BillCheckMoneyParams
+	var jsonBlob= this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &checkMoneyParams)
+
+	var datainfo DataInfo
+	ret := svc.CheckMoneyBillList(checkMoneyParams)
+	json.Unmarshal(ret, &datainfo)
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}

+ 123 - 9
src/dashoo.cn/backend/api/controllers/oilsupplier/paymentinfo.go

@@ -1,6 +1,7 @@
 package oilsupplier
 
 import (
+	"dashoo.cn/backend/api/business/oilsupplier/paymentbankinfo"
 	"dashoo.cn/backend/api/business/register"
 	"encoding/json"
 	"strconv"
@@ -81,11 +82,11 @@ func (this *PaymentInfoController) GetBillList() {
 
 	var supplierEntity supplier.OilSupplier
 	supplierSvc := supplier.GetOilSupplierService(utils.DBE)
-	supplierWhere := "1=1 and IsPay=1 and CommercialNo='" + icbcBillQueryParam.CommercialNo + "'"
+	supplierWhere := "1=1 and CommercialNo='" + icbcBillQueryParam.CommercialNo + "'"
 	supplierSvc.DBE.Where(supplierWhere).Get(&supplierEntity)
 
 	var billList []paymentinfo.OilPaymentInfo
-	billWhere := "1=1 and SupplierId='" + strconv.Itoa(supplierEntity.Id) + "'"
+	billWhere := "1=1 and IsPay='1' and SupplierId='" + strconv.Itoa(supplierEntity.Id) + "'"
 	svc := paymentinfo.GetPaymentService(utils.DBE)
 	svc.DBE.Where(billWhere).OrderBy("Id DESC").Find(&billList)
 
@@ -264,7 +265,7 @@ func (this *PaymentInfoController) SureEntity() {
 	strIds := strings.Trim(billSure.Ids, ",")
 
 	sql := "update OilPaymentInfo set IsPay = 1, "
-	sql += "SureBatchNo='" + strconv.FormatInt(time.Now().UnixNano(), 10) + "' "
+	sql += "SureBatchNo='" + strconv.FormatInt(time.Now().UnixNano(), 10) + "', "
 	sql += "ModifiedOn='" + time.Now().Format("2006-01-02 15:04:05") + "', "
 	sql += "ModifiedBy='" + this.User.Realname + "', "
 	sql += "ModifiedUserId='" + this.User.Id + "' "
@@ -278,7 +279,7 @@ func (this *PaymentInfoController) SureEntity() {
 	this.ServeJSON()
 }
 
-// @Title 确认缴费单
+// @Title 确认缴费单--回调
 // @Description 确认缴费单
 // @Success	200	{object} controllers.Request
 // @router /receive-money-bill-list [post]
@@ -290,12 +291,12 @@ func (this *PaymentInfoController) ReceiveMoneyBillList() {
 	json.Unmarshal(jsonBlob, &billParams)
 
 	strIds := strings.Trim(billParams.Ids, ",")
-	sqlList := " where id in (" + strIds + ") and IsPay = 1"
+	sqlList := " 1= 1 and Id in (" + strIds + ") and IsPay = '1'"
 	var paymentInfos []paymentinfo.OilPaymentInfo
-	svc.GetEntities(paymentInfos, sqlList)
+	svc.GetEntities(&paymentInfos, sqlList)
 
 	t := time.Now()
-	sql := "update OilPaymentInfo set IsPay = 2, "
+	sql := "update OilPaymentInfo set IsPay = '2', "
 	sql += "BankName='" + billParams.BankName + "', "
 	sql += "BankSerialNum='" + billParams.BankSerialNum + "', "
 	sql += "PayDate='" + billParams.PayDate.Format("2006-01-02 15:04:05") + "', "
@@ -303,7 +304,7 @@ func (this *PaymentInfoController) ReceiveMoneyBillList() {
 	sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
 	sql += "ModifiedBy='" + this.User.Realname + "', "
 	sql += "ModifiedUserId='" + this.User.Id + "' "
-	sql += " where id in (" + strIds + ") and IsPay = 1"
+	sql += " where Id in (" + strIds + ") and IsPay = '1'"
 	svc.DBE.Query(sql)
 
 	for _, payItem := range paymentInfos {
@@ -325,10 +326,123 @@ func (this *PaymentInfoController) ReceiveMoneyBillList() {
 		}
 	}
 	//记录对账日志
-	//TODO: 记录对账日志
+	paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
+	paymentBankInfo.BillIds = billParams.Ids
+	paymentBankInfo.PayMode = billParams.PayMode
+	paymentBankInfo.PayDate = billParams.PayDate
+	paymentBankInfo.BankSerialNum = billParams.BankSerialNum
+	paymentBankInfo.ReceiveAmount = billParams.ReceiveAmount
+	paymentBankInfo.BankName = billParams.BankName
+	paymentBankInfo.CreateUserId = 0
+	paymentBankInfo.CreateOn = time.Now()
+	paymentBankInfo.ModifiedUserId = 0
+	paymentBankInfo.ModifiedOn = time.Now()
+	paymentBankInfo.WriteInType = "1" //初次回调
+	payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
+	payBankSvc.InsertEntity(paymentBankInfo)
 
 	errinfo.Message = "修改成功!"
 	errinfo.Code = 0
 	this.Data["json"] = &errinfo
 	this.ServeJSON()
 }
+
+
+// @Title 对账后有未更改状态的,再次确认缴费单--回调
+// @Description 确认缴费单
+// @Success	200	{object} controllers.Request
+// @router /receive-money-again-list [post]
+func (this *PaymentInfoController) ReceiveMoneyAgainList() {
+	var errinfo ErrorInfo
+	svc := paymentinfo.GetPaymentService(utils.DBE)
+	var billParams []bankapi.BillReceiveMoneyAgainParams
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &billParams)
+
+	for _, billItem := range billParams {
+		t := time.Now()
+		sql := "update OilPaymentInfo set IsPay = 2, "
+		sql += "BankName='" + billItem.BankName + "', "
+		sql += "BankSerialNum='" + billItem.BankSerialNum + "', "
+		sql += "PayDate='" + billItem.PayDate.Format("2006-01-02 15:04:05") + "', "
+		sql += "PayMode='" + billItem.PayMode + "', "
+		sql += "ModifiedOn='" + t.Format("2006-01-02 15:04:05") + "', "
+		sql += "ModifiedBy='" + this.User.Realname + "', "
+		sql += "ModifiedUserId='" + this.User.Id + "' "
+		sql += " where id = " + billItem.BillId + " and IsPay = '1'"
+		svc.DBE.Query(sql)
+
+		strIds := strings.Trim(billItem.BillId, ",")
+		sqlList := " 1=1 and Id in (" + strIds + ") and IsPay = '1'"
+		var paymentInfo paymentinfo.OilPaymentInfo
+		utils.DBE.Find(&paymentInfo, sqlList)
+		if paymentInfo.PayType == "1" {//准入
+			var certentity suppliercert.OilSupplierCert
+			certentity.Status = suppliercert.STOREING_STATUS
+			certentity.Step = 5
+			cols := []string{
+				"Status",
+				"Step",
+			}
+			svc.UpdateEntityByIdCols(strconv.Itoa(paymentInfo.SupplierCertId), &certentity, cols)
+
+		} else if paymentInfo.PayType == "2" {//年审
+			//TODO: 修改年审时间
+
+		} else if paymentInfo.PayType == "3" {//增项
+
+		}
+
+		//记录对账日志
+		paymentBankInfo := new(paymentbankinfo.OilPaymentBankInfo)
+		paymentBankInfo.BillIds = billItem.BillId
+		paymentBankInfo.PayMode = billItem.PayMode
+		paymentBankInfo.PayDate = billItem.PayDate
+		paymentBankInfo.BankSerialNum = billItem.BankSerialNum
+		paymentBankInfo.ReceiveAmount = billItem.ReceiveAmount
+		paymentBankInfo.BankName = billItem.BankName
+		paymentBankInfo.CreateUserId = 0
+		paymentBankInfo.CreateOn = time.Now()
+		paymentBankInfo.ModifiedUserId = 0
+		paymentBankInfo.ModifiedOn = time.Now()
+		paymentBankInfo.WriteInType = "2" //对账发现未修改成功时的回调
+		payBankSvc := paymentbankinfo.GetPaymentSelectService(utils.DBE)
+		payBankSvc.InsertEntity(paymentBankInfo)
+	}
+
+	errinfo.Message = "修改成功!"
+	errinfo.Code = 0
+	this.Data["json"] = &errinfo
+	this.ServeJSON()
+}
+
+
+// @Title 对账
+// @Description 对账
+// @Success	200	{object} controllers.Request
+// @router /check-money-list [post]
+func (this *PaymentInfoController) CheckMoneyList() {
+	svc := paymentinfo.GetPaymentService(utils.DBE)
+
+	var checkMoneyParams bankapi.BillCheckMoneyParams
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &checkMoneyParams)
+
+	checkRet := new(bankapi.BillCheckMoneyRet)
+
+	paymentWhere := "1=1 and IsPay='2' "
+	paymentWhere += " and PayDate >= '"+checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
+	paymentWhere += " and PayDate <= '"+checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
+	svc.GetEntities(&(checkRet.PaymentInfos), paymentWhere)
+
+	bankWhere := "1=1"
+	bankWhere += " and PayDate >= '"+checkMoneyParams.StartTime.Format("2006-01-02 15:04:05") + "'"
+	bankWhere += " and PayDate <= '"+checkMoneyParams.EndTime.Format("2006-01-02 15:04:05") + "'"
+	svc.GetEntities(&(checkRet.PaymentBankInfos), bankWhere)
+
+	var datainfo DataInfo
+	datainfo.Items = checkRet
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+

+ 10 - 0
src/dashoo.cn/frontend_web/src/api/bankapi/icbc.js

@@ -13,5 +13,15 @@ export default {
       method: 'post',
       data: params
     })
+  },
+
+  checkMoneyList (params, myAxios) {
+    console.log(params)
+    return myAxios({
+      url: '/bankapi/check-money-list',
+      method: 'post',
+      data: params
+    })
   }
+
 }

+ 0 - 1
src/dashoo.cn/frontend_web/src/api/oilsupplier/paymentinfo.js

@@ -27,7 +27,6 @@ export default {
     })
   },
   BillSure (params, myAxios) {
-    console.log("BillSure = " + params)
     return myAxios({
       url: '/paymentinfo/bill-sure',
       method: 'post',

+ 23 - 8
src/dashoo.cn/frontend_web/src/pages/oilbank/icbclist.vue

@@ -16,6 +16,8 @@
 
           <el-form-item>
             <el-button type="primary" size="mini" icon="el-icon-search" @click="handleSearch">获取账单</el-button>
+
+            <el-button type="warning" size="mini" icon="el-icon-search" @click="handleCheckBill">对账功能</el-button>
           </el-form-item>
         </el-form>
       </div>
@@ -184,7 +186,7 @@
         }
         let params = {
           ids: idlist,
-          receiveAmount: sumMoeny + '',
+          receiveAmount: sumMoeny,
           bankName: '工商银行',
           bankSerialNum: '111222',
           payDate: new Date(),
@@ -192,18 +194,19 @@
         }
         //下面调用接口修改状态
         api.receiveMoneyBillList(params, this.$axios).then(res => {
-          if (res.data.code === 0) {
-            this.initDatas()
-            this.$message({
-              type: 'success',
-              message: res.data.message
-            })
+          this.initDatas()
+          this.$message({
+            type: 'success',
+            message: '操作成功'
+          })
+          /*if (res.data.code === 0) {
+
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
             })
-          }
+          }*/
         }).catch(err => {
           console.error(err)
         })
@@ -214,6 +217,18 @@
         this.dialogVisible = false
         this.initDatas()
       },
+      handleCheckBill () {
+        let params = {
+          startTime: new Date('2019-1-1'),
+          endTime: new Date('2019-10-10')
+        }
+        // 访问接口
+        api.checkMoneyList(params, this.$axios).then(res => {
+          console.log(res)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
       handleCurrentChange (value) {
         this.currentPage = value
         this.initDatas()

+ 1 - 1
src/dashoo.cn/frontend_web/src/pages/oilsupplier/paymentinfo/paymentsure.vue

@@ -53,7 +53,7 @@
       </div>
     </el-card>
 
-    <el-card class="box-card" style="margin-top: 5px" v-if="entityList && entityList.length > 0">
+    <el-card class="box-card" style="margin-top: 5px"> <!--v-if="entityList && entityList.length > 0"-->
       <div slot="header">
         <span>
           <span style="font-weight: bold;">