2019-12-19 14:47:58 +08:00
|
|
|
|
/***************************************************
|
|
|
|
|
** @Desc : c file for ...
|
|
|
|
|
** @Time : 2019/8/19 18:13
|
|
|
|
|
** @Author : yuebin
|
|
|
|
|
** @File : add
|
|
|
|
|
** @Last Modified by : yuebin
|
|
|
|
|
** @Last Modified time: 2019/8/19 18:13
|
|
|
|
|
** @Software: GoLand
|
|
|
|
|
****************************************************/
|
|
|
|
|
package controllers
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/astaxie/beego/logs"
|
|
|
|
|
"github.com/astaxie/beego/validation"
|
|
|
|
|
"github.com/rs/xid"
|
2019-12-19 16:43:20 +08:00
|
|
|
|
"dongfeng-pay/service/common"
|
|
|
|
|
"dongfeng-pay/service/models"
|
|
|
|
|
"dongfeng-pay/service/utils"
|
2019-12-19 14:47:58 +08:00
|
|
|
|
"strconv"
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type AddController struct {
|
|
|
|
|
BaseController
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加一级菜单
|
|
|
|
|
*/
|
|
|
|
|
func (c *AddController) AddMenu() {
|
|
|
|
|
oneMenu := c.GetString("oneMenu")
|
|
|
|
|
|
|
|
|
|
dataJSON := new(BaseDataJSON)
|
|
|
|
|
menuInfo := models.MenuInfo{MenuUid: xid.New().String(), FirstMenu: oneMenu, Status: "active",
|
|
|
|
|
Creater: c.GetSession("userID").(string), CreateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
exist := models.FirstMenuIsExists(oneMenu)
|
|
|
|
|
if !exist {
|
|
|
|
|
menuInfo.MenuOrder = models.GetMenuLen() + 1
|
|
|
|
|
flag := models.InsertMenu(menuInfo)
|
|
|
|
|
if !flag {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Msg = "添加菜单失败"
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Msg = "一级菜单名已经存在"
|
|
|
|
|
}
|
|
|
|
|
c.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加二级菜单
|
|
|
|
|
*/
|
|
|
|
|
func (c *AddController) AddSecondMenu() {
|
|
|
|
|
firstMenuUid := c.GetString("preMenuUid")
|
|
|
|
|
secondMenu := c.GetString("secondMenu")
|
|
|
|
|
secondRouter := c.GetString("secondRouter")
|
|
|
|
|
|
|
|
|
|
dataJSON := new(KeyDataJSON)
|
|
|
|
|
|
|
|
|
|
firstMenuInfo := models.GetMenuInfoByMenuUid(firstMenuUid)
|
|
|
|
|
routerExists := models.SecondRouterExists(secondRouter)
|
|
|
|
|
secondMenuExists := models.SecondMenuIsExists(secondMenu)
|
|
|
|
|
|
|
|
|
|
if firstMenuInfo.MenuUid == "" {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Key = "pre-menu-error"
|
|
|
|
|
dataJSON.Msg = "*一级菜单不存在"
|
|
|
|
|
} else if routerExists {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Msg = "*该路由已存在"
|
|
|
|
|
dataJSON.Key = "second-router-error"
|
|
|
|
|
} else if secondMenuExists {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Key = "second-menu-error"
|
|
|
|
|
dataJSON.Msg = "*该菜单名已经存在"
|
|
|
|
|
} else {
|
|
|
|
|
sl := models.GetSecondMenuLenByFirstMenuUid(firstMenuUid)
|
|
|
|
|
secondMenuInfo := models.SecondMenuInfo{MenuOrder: sl + 1, FirstMenuUid: firstMenuInfo.MenuUid,
|
|
|
|
|
FirstMenu: firstMenuInfo.FirstMenu, SecondMenuUid: xid.New().String(), Status: "active",
|
|
|
|
|
SecondMenu: secondMenu, SecondRouter: secondRouter, Creater: c.GetSession("userID").(string),
|
|
|
|
|
CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime(), FirstMenuOrder: firstMenuInfo.MenuOrder}
|
|
|
|
|
if !models.InsertSecondMenu(secondMenuInfo) {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Msg = "添加二级菜单失败"
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
dataJSON.Msg = "添加二级菜单成功"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
c.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加权限项的处理函数
|
|
|
|
|
*/
|
|
|
|
|
func (c *AddController) AddPower() {
|
|
|
|
|
firstMenuUid := strings.TrimSpace(c.GetString("firstMenuUid"))
|
|
|
|
|
secondMenuUid := strings.TrimSpace(c.GetString("secondMenuUid"))
|
|
|
|
|
powerItem := strings.TrimSpace(c.GetString("powerItem"))
|
|
|
|
|
powerID := strings.TrimSpace(c.GetString("powerID"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
if powerItem == "" || len(powerItem) == 0 {
|
|
|
|
|
keyDataJSON.Key = ".power-name-error"
|
|
|
|
|
keyDataJSON.Msg = "*权限项名称不能为空"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if powerID == "" || len(powerID) == 0 {
|
|
|
|
|
keyDataJSON.Key = ".power-id-error"
|
|
|
|
|
keyDataJSON.Msg = "*权限项ID不能为空"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if models.PowerUidExists(powerID) {
|
|
|
|
|
keyDataJSON.Key = ".power-id-error"
|
|
|
|
|
keyDataJSON.Msg = "*权限项ID已经存在"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fmt.Println(powerID)
|
|
|
|
|
|
|
|
|
|
secondMenuInfo := models.GetSecondMenuInfoBySecondMenuUid(secondMenuUid)
|
|
|
|
|
|
|
|
|
|
powerInfo := models.PowerInfo{SecondMenuUid: secondMenuUid, SecondMenu: secondMenuInfo.SecondMenu,
|
|
|
|
|
PowerId: powerID, PowerItem: powerItem, Creater: c.GetSession("userID").(string),
|
|
|
|
|
Status: "active", CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime(),
|
|
|
|
|
FirstMenuUid: firstMenuUid}
|
|
|
|
|
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
if !models.InsertPowerInfo(powerInfo) {
|
|
|
|
|
keyDataJSON.Key = ".power-save-success"
|
|
|
|
|
keyDataJSON.Msg = "添加权限项失败"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Key = ".power-save-success"
|
|
|
|
|
keyDataJSON.Msg = "添加权限项成功"
|
|
|
|
|
}
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加权限角色
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddRole() {
|
|
|
|
|
roleName := strings.TrimSpace(this.GetString("roleNameAdd"))
|
|
|
|
|
roleRemark := strings.TrimSpace(this.GetString("roleRemark"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
if len(roleName) == 0 {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = ".role-name-error"
|
|
|
|
|
keyDataJSON.Msg = "*角色名称不能为空"
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if models.RoleNameExists(roleName) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = ".role-name-error"
|
|
|
|
|
keyDataJSON.Msg = "*角色名称已经存在"
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
roleInfo := models.RoleInfo{RoleName: roleName, RoleUid: xid.New().String(),
|
|
|
|
|
Creater: this.GetSession("userID").(string), Status: "active", Remark: roleRemark,
|
|
|
|
|
CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if !models.InsertRole(roleInfo) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = ".role-save-success"
|
|
|
|
|
keyDataJSON.Msg = "添加角色失败"
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *AddController) SavePower() {
|
|
|
|
|
firstMenuUids := this.GetStrings("firstMenuUid[]")
|
|
|
|
|
secondMenuUids := this.GetStrings("secondMenuUid[]")
|
|
|
|
|
powerIds := this.GetStrings("powerId[]")
|
|
|
|
|
roleUid := strings.TrimSpace(this.GetString("roleUid"))
|
|
|
|
|
|
|
|
|
|
dataJSON := new(BaseDataJSON)
|
|
|
|
|
roleInfo := models.GetRoleByRoleUid(roleUid)
|
|
|
|
|
if len(roleUid) == 0 || len(roleInfo.RoleUid) == 0 {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
roleInfo.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
roleInfo.ShowFirstUid = strings.Join(firstMenuUids, "||")
|
|
|
|
|
roleInfo.ShowSecondUid = strings.Join(secondMenuUids, "||")
|
|
|
|
|
roleInfo.ShowPowerUid = strings.Join(powerIds, "||")
|
|
|
|
|
|
|
|
|
|
menuInfoList := models.GetMenuInfosByMenuUids(firstMenuUids)
|
|
|
|
|
showFirstMenu := make([]string, 0)
|
|
|
|
|
for _, m := range menuInfoList {
|
|
|
|
|
showFirstMenu = append(showFirstMenu, m.FirstMenu)
|
|
|
|
|
}
|
|
|
|
|
roleInfo.ShowFirstMenu = strings.Join(showFirstMenu, "||")
|
|
|
|
|
|
|
|
|
|
secondMenuInfoList := models.GetSecondMenuInfoBySecondMenuUids(secondMenuUids)
|
|
|
|
|
showSecondMenu := make([]string, 0)
|
|
|
|
|
for _, m := range secondMenuInfoList {
|
|
|
|
|
showSecondMenu = append(showSecondMenu, m.SecondMenu)
|
|
|
|
|
}
|
|
|
|
|
roleInfo.ShowSecondMenu = strings.Join(showSecondMenu, "||")
|
|
|
|
|
|
|
|
|
|
powerList := models.GetPowerByIds(powerIds)
|
|
|
|
|
showPower := make([]string, 0)
|
|
|
|
|
for _, p := range powerList {
|
|
|
|
|
showPower = append(showPower, p.PowerItem)
|
|
|
|
|
}
|
|
|
|
|
roleInfo.ShowPower = strings.Join(showPower, "||")
|
|
|
|
|
|
|
|
|
|
if !models.UpdateRoleInfo(roleInfo) {
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
dataJSON.Msg = "更新roleInfo失败"
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
dataJSON.Msg = "更新roleInfo成功"
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加操作员
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddOperator() {
|
|
|
|
|
loginAccount := strings.TrimSpace(this.GetString("operatorAccount"))
|
|
|
|
|
loginPassword := strings.TrimSpace(this.GetString("operatorPassword"))
|
|
|
|
|
role := strings.TrimSpace(this.GetString("operatorRole"))
|
|
|
|
|
status := strings.TrimSpace(this.GetString("status"))
|
|
|
|
|
remark := strings.TrimSpace(this.GetString("remark"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
if len(loginAccount) == 0 {
|
|
|
|
|
keyDataJSON.Key = ".operator-name-error"
|
|
|
|
|
keyDataJSON.Msg = "*登录账号不能为空"
|
|
|
|
|
} else if len(loginPassword) == 0 {
|
|
|
|
|
keyDataJSON.Key = ".operator-password-error"
|
|
|
|
|
keyDataJSON.Msg = "*初始密码不能为空"
|
|
|
|
|
} else if len(role) == 0 || role == "none" {
|
|
|
|
|
keyDataJSON.Key = ".operator-role-error"
|
|
|
|
|
keyDataJSON.Msg = "请选择角色"
|
|
|
|
|
} else if models.UserInfoExistByUserId(loginAccount) {
|
|
|
|
|
keyDataJSON.Key = ".operator-name-error"
|
|
|
|
|
keyDataJSON.Msg = "*账号已经存在"
|
|
|
|
|
} else {
|
|
|
|
|
if len(remark) == 0 {
|
|
|
|
|
remark = loginAccount
|
|
|
|
|
}
|
|
|
|
|
roleInfo := models.GetRoleByRoleUid(role)
|
|
|
|
|
userInfo := models.UserInfo{UserId: loginAccount, Passwd: utils.GetMD5Upper(loginPassword), Nick: "壮壮", Remark: remark,
|
|
|
|
|
Status: status, Role: role, RoleName: roleInfo.RoleName, CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime()}
|
|
|
|
|
if !models.InsertUser(userInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "添加操作员失败"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "添加操作员成功"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加银行卡
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddBankCard() {
|
|
|
|
|
userName := strings.TrimSpace(this.GetString("userName"))
|
|
|
|
|
bankCode := strings.TrimSpace(this.GetString("bankCode"))
|
|
|
|
|
accountName := strings.TrimSpace(this.GetString("accountName"))
|
|
|
|
|
certificateType := strings.TrimSpace(this.GetString("certificateType"))
|
|
|
|
|
phoneNo := strings.TrimSpace(this.GetString("phoneNo"))
|
|
|
|
|
bankName := strings.TrimSpace(this.GetString("bankName"))
|
|
|
|
|
bankAccountType := strings.TrimSpace(this.GetString("bankAccountType"))
|
|
|
|
|
bankNo := strings.TrimSpace(this.GetString("bankNo"))
|
|
|
|
|
identifyCard := strings.TrimSpace(this.GetString("certificateType"))
|
|
|
|
|
certificateNo := strings.TrimSpace(this.GetString("certificateNo"))
|
|
|
|
|
bankAddress := strings.TrimSpace(this.GetString("bankAddress"))
|
|
|
|
|
uid := strings.TrimSpace(this.GetString("uid"))
|
|
|
|
|
|
|
|
|
|
dataJSON := new(BaseDataJSON)
|
|
|
|
|
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
if len(userName) == 0 {
|
|
|
|
|
dataJSON.Msg = "用户名不能为空"
|
|
|
|
|
} else if len(bankCode) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行编码不能为空"
|
|
|
|
|
} else if len(accountName) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行开户名不能为空"
|
|
|
|
|
} else if len(certificateType) == 0 {
|
|
|
|
|
dataJSON.Msg = "证件种类不能为空"
|
|
|
|
|
} else if len(phoneNo) == 0 {
|
|
|
|
|
dataJSON.Msg = "手机号不能为空"
|
|
|
|
|
} else if len(bankName) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行名称不能为空"
|
|
|
|
|
} else if len(bankAccountType) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行账户类型不能为空"
|
|
|
|
|
} else if len(bankNo) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行账号不能为空"
|
|
|
|
|
} else if len(certificateNo) == 0 {
|
|
|
|
|
dataJSON.Msg = "身份证号不能为空"
|
|
|
|
|
} else if len(bankAddress) == 0 {
|
|
|
|
|
dataJSON.Msg = "银行地址不能为空"
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if dataJSON.Msg != "" {
|
|
|
|
|
logs.Error("添加银行卡校验失败")
|
|
|
|
|
} else {
|
|
|
|
|
if len(uid) > 0 {
|
|
|
|
|
bankCardInfo := models.GetBankCardByUid(uid)
|
|
|
|
|
bankCardInfo = models.BankCardInfo{
|
|
|
|
|
Id: bankCardInfo.Id, UserName: userName, BankName: bankName,
|
|
|
|
|
BankCode: bankCode, BankAccountType: bankAccountType,
|
|
|
|
|
AccountName: accountName, BankNo: bankNo, IdentifyCard: identifyCard,
|
|
|
|
|
CertificateNo: certificateNo, PhoneNo: phoneNo,
|
|
|
|
|
BankAddress: bankAddress, UpdateTime: utils.GetBasicDateTime(),
|
|
|
|
|
CreateTime: bankCardInfo.CreateTime, Uid: bankCardInfo.Uid,
|
|
|
|
|
}
|
|
|
|
|
if models.UpdateBankCard(bankCardInfo) {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
bankCardInfo := models.BankCardInfo{Uid: "3333" + xid.New().String(), UserName: userName, BankName: bankName,
|
|
|
|
|
BankCode: bankCode, BankAccountType: bankAccountType, AccountName: accountName, BankNo: bankNo,
|
|
|
|
|
IdentifyCard: identifyCard, CertificateNo: certificateNo, PhoneNo: phoneNo, BankAddress: bankAddress,
|
|
|
|
|
UpdateTime: utils.GetBasicDateTime(), CreateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if models.InsertBankCardInfo(bankCardInfo) {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加通道
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddRoad() {
|
|
|
|
|
roadUid := strings.TrimSpace(this.GetString("roadUid"))
|
|
|
|
|
roadName := strings.TrimSpace(this.GetString("roadName"))
|
|
|
|
|
roadRemark := strings.TrimSpace(this.GetString("roadRemark"))
|
|
|
|
|
productUid := strings.TrimSpace(this.GetString("productName"))
|
|
|
|
|
payType := strings.TrimSpace(this.GetString("payType"))
|
|
|
|
|
basicRate := strings.TrimSpace(this.GetString("basicRate"))
|
|
|
|
|
settleFee := strings.TrimSpace(this.GetString("settleFee"))
|
|
|
|
|
roadTotalLimit := strings.TrimSpace(this.GetString("roadTotalLimit"))
|
|
|
|
|
roadEverydayLimit := strings.TrimSpace(this.GetString("roadEverydayLimit"))
|
|
|
|
|
singleMinLimit := strings.TrimSpace(this.GetString("singleMinLimit"))
|
|
|
|
|
singleMaxLimit := strings.TrimSpace(this.GetString("singleMaxLimit"))
|
|
|
|
|
startHour := strings.TrimSpace(this.GetString("startHour"))
|
|
|
|
|
endHour := strings.TrimSpace(this.GetString("endHour"))
|
|
|
|
|
params := strings.TrimSpace(this.GetString("params"))
|
|
|
|
|
|
|
|
|
|
dataJSON := new(BaseDataJSON)
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
|
|
|
|
|
startHourTmp, err1 := strconv.Atoi(startHour)
|
|
|
|
|
endHourTmp, err2 := strconv.Atoi(endHour)
|
|
|
|
|
|
|
|
|
|
if err1 != nil || err2 != nil {
|
|
|
|
|
dataJSON.Msg = "开始时间或者结束时间设置有误"
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
valid := validation.Validation{}
|
|
|
|
|
if v := valid.Required(roadName, "roadName"); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "通道名称不能为空"
|
|
|
|
|
} else if v := valid.Required(productUid, "productUid"); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "产品名称不能为空"
|
|
|
|
|
} else if v := valid.Required(payType, "payType"); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "支付类型不能为空"
|
|
|
|
|
} else if v := valid.Required(basicRate, ""); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "成本费率不能为空"
|
|
|
|
|
} else if v := valid.Range(startHourTmp, 0, 23, ""); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "开始时间设置有误"
|
|
|
|
|
} else if v := valid.Range(endHourTmp, 0, 23, ""); !v.Ok {
|
|
|
|
|
dataJSON.Msg = "结束时间设置有误"
|
|
|
|
|
} else {
|
|
|
|
|
basicFee, err := strconv.ParseFloat(basicRate, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "成本汇率设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
settleFeeTmp, err := strconv.ParseFloat(settleFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "代付手续费设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
totalLimit, err := strconv.ParseFloat(roadTotalLimit, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "通道总额度设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
todayLimit, err := strconv.ParseFloat(roadEverydayLimit, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "每天额度设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
singleMinLimitTmp, err := strconv.ParseFloat(singleMinLimit, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "单笔最小金额设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
singleMaxLimitTmp, err := strconv.ParseFloat(singleMaxLimit, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
dataJSON.Msg = "单笔最大金额设置不符合规范"
|
|
|
|
|
}
|
|
|
|
|
if len(dataJSON.Msg) > 0 {
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
productName := ""
|
|
|
|
|
supplierMap := common.GetSupplierMap()
|
|
|
|
|
for k, v := range supplierMap {
|
|
|
|
|
if k == productUid {
|
|
|
|
|
productName = v
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(roadUid) > 0 {
|
|
|
|
|
//更新通道
|
|
|
|
|
roadInfo := models.GetRoadInfoByRoadUid(roadUid)
|
|
|
|
|
roadInfo.RoadName = roadName
|
|
|
|
|
roadInfo.Remark = roadRemark
|
|
|
|
|
roadInfo.ProductUid = productUid
|
|
|
|
|
roadInfo.ProductName = productName
|
|
|
|
|
roadInfo.PayType = payType
|
|
|
|
|
roadInfo.BasicFee = basicFee
|
|
|
|
|
roadInfo.SettleFee = settleFeeTmp
|
|
|
|
|
roadInfo.TotalLimit = totalLimit
|
|
|
|
|
roadInfo.TodayLimit = todayLimit
|
|
|
|
|
roadInfo.SingleMaxLimit = singleMaxLimitTmp
|
|
|
|
|
roadInfo.SingleMinLimit = singleMinLimitTmp
|
|
|
|
|
roadInfo.StarHour = startHourTmp
|
|
|
|
|
roadInfo.EndHour = endHourTmp
|
|
|
|
|
roadInfo.Params = params
|
|
|
|
|
|
|
|
|
|
if models.UpdateRoadInfo(roadInfo) {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Msg = "通道更新失败"
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//添加新的通道
|
|
|
|
|
roadUid = "4444" + xid.New().String()
|
|
|
|
|
roadInfo := models.RoadInfo{RoadName: roadName, RoadUid: roadUid, Remark: roadRemark,
|
|
|
|
|
ProductUid: productUid, ProductName: productName, PayType: payType, BasicFee: basicFee, SettleFee: settleFeeTmp,
|
|
|
|
|
TotalLimit: totalLimit, TodayLimit: todayLimit, SingleMinLimit: singleMinLimitTmp, Balance: common.ZERO,
|
|
|
|
|
SingleMaxLimit: singleMaxLimitTmp, StarHour: startHourTmp, EndHour: endHourTmp, Status: "active",
|
|
|
|
|
Params: params, UpdateTime: utils.GetBasicDateTime(), CreateTime: utils.GetBasicDateTime(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if models.InsertRoadInfo(roadInfo) {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
dataJSON.Msg = "添加新通道失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *AddController) AddRoadPool() {
|
|
|
|
|
roadPoolName := strings.TrimSpace(this.GetString("roadPoolName"))
|
|
|
|
|
roadPoolCode := strings.TrimSpace(this.GetString("roadPoolCode"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
|
|
|
|
|
if len(roadPoolName) == 0 {
|
|
|
|
|
keyDataJSON.Msg = "*通道池名称不能为空"
|
|
|
|
|
} else if len(roadPoolCode) == 0 {
|
|
|
|
|
keyDataJSON.Msg = "*通道池编号不能为空"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
roadPoolInfo := models.RoadPoolInfo{Status: "active", RoadPoolName: roadPoolName, RoadPoolCode: roadPoolCode,
|
|
|
|
|
UpdateTime: utils.GetBasicDateTime(), CreateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if models.InsertRoadPool(roadPoolInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "添加通道池成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Msg = "添加通道池失败"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加或者更新通道池中的通道
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) SaveRoadUid() {
|
|
|
|
|
roadUids := this.GetStrings("roadUid[]")
|
|
|
|
|
roadPoolCode := strings.TrimSpace(this.GetString("roadPoolCode"))
|
|
|
|
|
|
|
|
|
|
dataJSON := new(BaseDataJSON)
|
|
|
|
|
dataJSON.Code = -1
|
|
|
|
|
roadPoolInfo := models.GetRoadPoolByRoadPoolCode(roadPoolCode)
|
|
|
|
|
if roadPoolInfo.RoadPoolCode == "" {
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
var uids []string
|
|
|
|
|
for _, uid := range roadUids {
|
|
|
|
|
//去掉空格
|
|
|
|
|
if len(uid) > 0 && models.RoadInfoExistByRoadUid(uid) {
|
|
|
|
|
uids = append(uids, uid)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if len(uids) > 0 {
|
|
|
|
|
roadUid := strings.Join(uids, "||")
|
|
|
|
|
roadPoolInfo.RoadUidPool = roadUid
|
|
|
|
|
}
|
|
|
|
|
roadPoolInfo.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
if models.UpdateRoadPool(roadPoolInfo) {
|
|
|
|
|
dataJSON.Code = 200
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(dataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加代理信息
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddAgent() {
|
|
|
|
|
agentName := strings.TrimSpace(this.GetString("agentName"))
|
|
|
|
|
agentPhone := strings.TrimSpace(this.GetString("agentPhone"))
|
|
|
|
|
agentLoginPassword := strings.TrimSpace(this.GetString("agentLoginPassword"))
|
|
|
|
|
agentVertifyPassword := strings.TrimSpace(this.GetString("agentVertifyPassword"))
|
|
|
|
|
agentRemark := strings.TrimSpace(this.GetString("agentRemark"))
|
|
|
|
|
status := strings.TrimSpace(this.GetString("status"))
|
|
|
|
|
agentUid := strings.TrimSpace(this.GetString("agentUid"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
|
|
|
|
|
if agentName == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-name-error"
|
|
|
|
|
keyDataJSON.Msg = "代理名不能为空"
|
|
|
|
|
} else if models.IsEixstByAgentName(agentName) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-name-error"
|
|
|
|
|
keyDataJSON.Msg = "已存在该代理名称"
|
|
|
|
|
} else if agentPhone == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-phone-error"
|
|
|
|
|
keyDataJSON.Msg = "代理注册手机号不能为空"
|
|
|
|
|
} else if models.IsEixstByAgentPhone(agentPhone) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-phone-error"
|
|
|
|
|
keyDataJSON.Msg = "代理商手机号已被注册"
|
|
|
|
|
} else if agentLoginPassword == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-login-password-error"
|
|
|
|
|
keyDataJSON.Msg = "密码不能为空"
|
|
|
|
|
} else if agentLoginPassword != agentVertifyPassword {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#agent-vertify-password-error"
|
|
|
|
|
keyDataJSON.Msg = "二次密码输入不一致"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if keyDataJSON.Code == -1 {
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if status == "" {
|
|
|
|
|
status = "active"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if agentUid == "" {
|
|
|
|
|
|
|
|
|
|
agentUid = "9999" + xid.New().String()
|
|
|
|
|
|
|
|
|
|
agentInfo := models.AgentInfo{Status: status, AgentName: agentName, AgentPhone: agentPhone,
|
|
|
|
|
AgentPassword: utils.GetMD5Upper(agentLoginPassword), AgentUid: agentUid, UpdateTime: utils.GetBasicDateTime(),
|
|
|
|
|
CreateTime: utils.GetBasicDateTime(), AgentRemark: agentRemark}
|
|
|
|
|
|
|
|
|
|
if !models.InsertAgentInfo(agentInfo) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "添加代理商失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//创建新的账户
|
|
|
|
|
account := models.GetAccountByUid(agentUid)
|
|
|
|
|
if account.AccountUid == "" {
|
|
|
|
|
account.Status = "active"
|
|
|
|
|
account.AccountUid = agentUid
|
|
|
|
|
account.AccountName = agentName
|
|
|
|
|
account.Balance = 0.0
|
|
|
|
|
account.LoanAmount = 0.0
|
|
|
|
|
account.FreezeAmount = 0.0
|
|
|
|
|
account.PayforAmount = 0.0
|
|
|
|
|
account.SettleAmount = 0.0
|
|
|
|
|
account.WaitAmount = 0.0
|
|
|
|
|
account.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
account.CreateTime = utils.GetBasicDateTime()
|
|
|
|
|
if models.InsetAcount(account) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "插入成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "掺入失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *AddController) AddMerchant() {
|
|
|
|
|
merchantName := strings.TrimSpace(this.GetString("merchantName"))
|
|
|
|
|
phone := strings.TrimSpace(this.GetString("phone"))
|
|
|
|
|
loginPassword := strings.TrimSpace(this.GetString("loginPassword"))
|
|
|
|
|
verifyPassword := strings.TrimSpace(this.GetString("verifyPassword"))
|
|
|
|
|
merchantStatus := strings.TrimSpace(this.GetString("merchantStatus"))
|
|
|
|
|
remark := strings.TrimSpace(this.GetString("remark"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
if merchantName == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-name-error"
|
|
|
|
|
keyDataJSON.Msg = "商户名称为空"
|
|
|
|
|
} else if models.IsExistByMerchantName(merchantName) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-name-error"
|
|
|
|
|
keyDataJSON.Msg = "商户名已经存在"
|
|
|
|
|
} else if phone == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-phone-error"
|
|
|
|
|
keyDataJSON.Msg = "手机号为空"
|
|
|
|
|
} else if models.IsExistByMerchantPhone(phone) {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-phone-error"
|
|
|
|
|
keyDataJSON.Msg = "该手机号已经注册"
|
|
|
|
|
} else if loginPassword == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-login-password-error"
|
|
|
|
|
keyDataJSON.Msg = "登录密码为空"
|
|
|
|
|
} else if verifyPassword == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Key = "#merchant-verify-password-error"
|
|
|
|
|
keyDataJSON.Msg = "密码确认为空"
|
|
|
|
|
} else if loginPassword != verifyPassword {
|
|
|
|
|
keyDataJSON.Key = "#merchant-verify-password-error"
|
|
|
|
|
keyDataJSON.Msg = "两次密码输入不正确"
|
|
|
|
|
} else if merchantStatus == "" {
|
|
|
|
|
merchantStatus = "active"
|
|
|
|
|
}
|
|
|
|
|
if keyDataJSON.Code == -1 {
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
merchantUid := "8888" + xid.New().String()
|
|
|
|
|
merchantKey := "kkkk" + xid.New().String() //商户key
|
|
|
|
|
merchantSecret := "ssss" + xid.New().String() //商户密钥
|
|
|
|
|
merchantInfo := models.MerchantInfo{MerchantName: merchantName, MerchantUid: merchantUid,
|
|
|
|
|
LoginAccount: phone, MerchantKey: merchantKey, MerchantSecret: merchantSecret,
|
|
|
|
|
LoginPassword: utils.GetMD5Upper(loginPassword), Status: merchantStatus, Remark: remark,
|
|
|
|
|
UpdateTime: utils.GetBasicDateTime(), CreateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if models.InsertMerchantInfo(merchantInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "插入失败"
|
|
|
|
|
}
|
|
|
|
|
//创建新的账户
|
|
|
|
|
account := models.GetAccountByUid(merchantUid)
|
|
|
|
|
if account.AccountUid == "" {
|
|
|
|
|
account.Status = "active"
|
|
|
|
|
account.AccountUid = merchantUid
|
|
|
|
|
account.AccountName = merchantName
|
|
|
|
|
account.Balance = 0.0
|
|
|
|
|
account.LoanAmount = 0.0
|
|
|
|
|
account.FreezeAmount = 0.0
|
|
|
|
|
account.PayforAmount = 0.0
|
|
|
|
|
account.SettleAmount = 0.0
|
|
|
|
|
account.WaitAmount = 0.0
|
|
|
|
|
account.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
account.CreateTime = utils.GetBasicDateTime()
|
|
|
|
|
if models.InsetAcount(account) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "插入成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "掺入失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 添加商戶支付配置參數
|
|
|
|
|
*/
|
|
|
|
|
func (this *AddController) AddMerchantDeploy() {
|
|
|
|
|
//merchantName := strings.TrimSpace(this.GetString("merchantName"))
|
|
|
|
|
merchantUid := strings.TrimSpace(this.GetString("merchantNo"))
|
|
|
|
|
isAutoSettle := strings.TrimSpace(this.GetString("isAutoSettle"))
|
|
|
|
|
isAutoPayfor := strings.TrimSpace(this.GetString("isAutoPayfor"))
|
|
|
|
|
ipWhite := strings.TrimSpace(this.GetString("ipWhite"))
|
|
|
|
|
payforRoadChoose := strings.TrimSpace(this.GetString("payforRoadChoose"))
|
|
|
|
|
rollPayforRoadChoose := strings.TrimSpace(this.GetString("rollPayforRoadChoose"))
|
|
|
|
|
payforFee := strings.TrimSpace(this.GetString("payforFee"))
|
|
|
|
|
belongAgentName := strings.TrimSpace(this.GetString("belongAgentName"))
|
|
|
|
|
belongAgentUid := strings.TrimSpace(this.GetString("belongAgentUid"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
merchantInfo := models.GetMerchantByUid(merchantUid)
|
|
|
|
|
merchantInfo.AutoSettle = isAutoSettle
|
|
|
|
|
merchantInfo.AutoPayFor = isAutoPayfor
|
|
|
|
|
merchantInfo.WhiteIps = ipWhite
|
|
|
|
|
merchantInfo.BelongAgentName = belongAgentName
|
|
|
|
|
merchantInfo.BelongAgentUid = belongAgentUid
|
|
|
|
|
|
|
|
|
|
if payforRoadChoose != "" {
|
|
|
|
|
roadInfo := models.GetRoadInfoByName(payforRoadChoose)
|
|
|
|
|
merchantInfo.SinglePayForRoadName = payforRoadChoose
|
|
|
|
|
merchantInfo.SinglePayForRoadUid = roadInfo.RoadUid
|
|
|
|
|
}
|
|
|
|
|
if rollPayforRoadChoose != "" {
|
|
|
|
|
rollPoolInfo := models.GetRoadPoolByName(rollPayforRoadChoose)
|
|
|
|
|
merchantInfo.RollPayForRoadName = rollPayforRoadChoose
|
|
|
|
|
merchantInfo.RollPayForRoadCode = rollPoolInfo.RoadPoolCode
|
|
|
|
|
}
|
|
|
|
|
tmp, err := strconv.ParseFloat(payforFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
logs.Error("手续费由字符串转为float64失败")
|
|
|
|
|
tmp = common.PAYFOR_FEE
|
|
|
|
|
}
|
|
|
|
|
merchantInfo.PayforFee = tmp
|
|
|
|
|
if models.UpdateMerchant(merchantInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *AddController) AddMerchantPayType() {
|
|
|
|
|
merchantNo := strings.TrimSpace(this.GetString("merchantNo"))
|
|
|
|
|
payType := strings.TrimSpace(this.GetString("payType"))
|
|
|
|
|
singleRoad := strings.TrimSpace(this.GetString("singleRoad"))
|
|
|
|
|
singleRoadPlatformFee := strings.TrimSpace(this.GetString("singleRoadPlatformFee"))
|
|
|
|
|
singleRoadAgentFee := strings.TrimSpace(this.GetString("singleRoadAgentFee"))
|
|
|
|
|
rollPoolRoad := strings.TrimSpace(this.GetString("rollPoolRoad"))
|
|
|
|
|
rollRoadPlatformFee := strings.TrimSpace(this.GetString("rollRoadPlatformFee"))
|
|
|
|
|
rollRoadAgentFee := strings.TrimSpace(this.GetString("rollRoadAgentFee"))
|
|
|
|
|
isLoan := strings.TrimSpace(this.GetString("isLoan"))
|
|
|
|
|
loanRate := strings.TrimSpace(this.GetString("loanRate"))
|
|
|
|
|
loanDays := strings.TrimSpace(this.GetString("loanDays"))
|
|
|
|
|
unfreezeTimeHour := strings.TrimSpace(this.GetString("unfreezeTimeHour"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
if payType == "" || payType == "none" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "操作失败,请选择支付类型"
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if singleRoad == "" && (singleRoadPlatformFee != "" || singleRoadAgentFee != "") {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "单通道选项不能为空"
|
|
|
|
|
} else if rollPoolRoad == "" && (rollRoadPlatformFee != "" || rollRoadAgentFee != "") {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "轮询通道选项不能为空"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if keyDataJSON.Code == -1 {
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//将字符串转变为float64或者int类型
|
|
|
|
|
a, err := strconv.ParseFloat(singleRoadPlatformFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
a = 0.0
|
|
|
|
|
}
|
|
|
|
|
b, err := strconv.ParseFloat(singleRoadAgentFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
b = 0.0
|
|
|
|
|
}
|
|
|
|
|
c, err := strconv.ParseFloat(rollRoadPlatformFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
c = 0.0
|
|
|
|
|
}
|
|
|
|
|
d, err := strconv.ParseFloat(rollRoadAgentFee, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
d = 0.0
|
|
|
|
|
}
|
|
|
|
|
e, err := strconv.ParseFloat(loanRate, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
e = 0.0
|
|
|
|
|
}
|
|
|
|
|
i, err := strconv.Atoi(loanDays)
|
|
|
|
|
if err != nil {
|
|
|
|
|
i = 0
|
|
|
|
|
}
|
|
|
|
|
j, err := strconv.Atoi(unfreezeTimeHour)
|
|
|
|
|
if err != nil {
|
|
|
|
|
j = 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var merchantDeployInfo models.MerchantDeployInfo
|
|
|
|
|
merchantDeployInfo.MerchantUid = merchantNo
|
|
|
|
|
merchantDeployInfo.PayType = payType
|
|
|
|
|
merchantDeployInfo.SingleRoadName = singleRoad
|
|
|
|
|
merchantDeployInfo.SingleRoadPlatformRate = a
|
|
|
|
|
merchantDeployInfo.SingleRoadAgentRate = b
|
|
|
|
|
merchantDeployInfo.RollRoadPlatformRate = c
|
|
|
|
|
merchantDeployInfo.RollRoadAgentRate = d
|
|
|
|
|
merchantDeployInfo.IsLoan = isLoan
|
|
|
|
|
merchantDeployInfo.LoanRate = e
|
|
|
|
|
merchantDeployInfo.LoanDays = i
|
|
|
|
|
merchantDeployInfo.UnfreezeHour = j
|
|
|
|
|
merchantDeployInfo.RollRoadName = rollPoolRoad
|
|
|
|
|
roadInfo := models.GetRoadInfoByName(singleRoad)
|
|
|
|
|
rollPoolInfo := models.GetRoadPoolByName(rollPoolRoad)
|
|
|
|
|
merchantDeployInfo.SingleRoadUid = roadInfo.RoadUid
|
|
|
|
|
merchantDeployInfo.RollRoadCode = rollPoolInfo.RoadPoolCode
|
|
|
|
|
|
|
|
|
|
//如果该用户的改支付类型已经存在,那么进行更新,否则进行添加
|
|
|
|
|
if models.IsExistByUidAndPayType(merchantNo, payType) {
|
|
|
|
|
if singleRoad == "" && rollPoolRoad == "" {
|
|
|
|
|
//表示需要删除该支付类型的通道
|
|
|
|
|
if models.DeleteMerchantDeployByUidAndPayType(merchantNo, payType) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "删除该支付类型通道成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "删除该支付类型通道失败"
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
tmpInfo := models.GetMerchantDeployByUidAndPayType(merchantNo, payType)
|
|
|
|
|
merchantDeployInfo.Id = tmpInfo.Id
|
|
|
|
|
merchantDeployInfo.Status = tmpInfo.Status
|
|
|
|
|
merchantDeployInfo.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
if models.UpdateMerchantDeploy(merchantDeployInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "更新成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "更新失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if singleRoad == "" && rollPoolRoad == "" {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "参数不能为空"
|
|
|
|
|
} else {
|
|
|
|
|
merchantDeployInfo.CreateTime = utils.GetBasicDateTime()
|
|
|
|
|
merchantDeployInfo.UpdateTime = utils.GetBasicDateTime()
|
|
|
|
|
merchantDeployInfo.Status = common.ACTIVE
|
|
|
|
|
if models.InsertMerchantDeployInfo(merchantDeployInfo) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
keyDataJSON.Msg = "添加支付类型成功"
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "添加支付类型失败"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
*后台提交的下发记录
|
|
|
|
|
*/
|
|
|
|
|
func (c *AddController) AddPayFor() {
|
|
|
|
|
merchantUid := strings.TrimSpace(c.GetString("merchantUid"))
|
|
|
|
|
merchantName := strings.TrimSpace(c.GetString("merchantName"))
|
|
|
|
|
bankName := strings.TrimSpace(c.GetString("bankName"))
|
|
|
|
|
accountName := strings.TrimSpace(c.GetString("accountName"))
|
|
|
|
|
bankUid := strings.TrimSpace(c.GetString("bankUid"))
|
|
|
|
|
bankNo := strings.TrimSpace(c.GetString("bankNo"))
|
|
|
|
|
//cardType := strings.TrimSpace(c.GetString("cardType"))
|
|
|
|
|
bankAddress := strings.TrimSpace(c.GetString("bankAddress"))
|
|
|
|
|
phone := strings.TrimSpace(c.GetString("phone"))
|
|
|
|
|
payForAmount := strings.TrimSpace(c.GetString("payForAmount"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
|
|
|
|
|
if merchantUid == "" {
|
|
|
|
|
keyDataJSON.Msg = "请选择需要下发的商户"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if bankUid == "" {
|
|
|
|
|
keyDataJSON.Msg = "请选择发下银行卡"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
money, err := strconv.ParseFloat(payForAmount, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
logs.Error("add pay for fail: ", err)
|
|
|
|
|
keyDataJSON.Msg = "下发金额输入不正确"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
accountInfo := models.GetAccountByUid(merchantUid)
|
|
|
|
|
if accountInfo.SettleAmount < money+common.PAYFOR_FEE {
|
|
|
|
|
keyDataJSON.Msg = "用户可用金额不够"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bankInfo := models.GetBankCardByUid(bankUid)
|
|
|
|
|
|
|
|
|
|
if bankInfo.BankNo != bankNo || bankInfo.AccountName != accountName || bankInfo.PhoneNo != phone {
|
|
|
|
|
keyDataJSON.Msg = "银行卡信息有误,请连接管理员"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
payFor := models.PayforInfo{PayforUid: "pppp" + xid.New().String(), MerchantUid: merchantUid, MerchantName: merchantName, PhoneNo: phone,
|
|
|
|
|
MerchantOrderId: xid.New().String(), BankOrderId: "4444" + xid.New().String(), PayforFee: common.PAYFOR_FEE, Type: common.SELF_MERCHANT,
|
|
|
|
|
PayforAmount: money, PayforTotalAmount: money + common.PAYFOR_FEE, BankCode: bankInfo.BankCode, BankName: bankName, IsSend: common.NO,
|
|
|
|
|
BankAccountName: bankInfo.AccountName, BankAccountNo: bankInfo.BankNo, BankAccountType: bankInfo.BankAccountType, BankAccountAddress: bankAddress,
|
|
|
|
|
Status: common.PAYFOR_COMFRIM, CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if models.InsertPayfor(payFor) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
keyDataJSON.Msg = "代付下发提交失败"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (c *AddController) AddSelfPayFor() {
|
|
|
|
|
bankUid := strings.TrimSpace(c.GetString("bankUid"))
|
|
|
|
|
bankName := strings.TrimSpace(c.GetString("bankName"))
|
|
|
|
|
accountName := strings.TrimSpace(c.GetString("accountName"))
|
|
|
|
|
bankNo := strings.TrimSpace(c.GetString("bankNo"))
|
|
|
|
|
//cardType := strings.TrimSpace(c.GetString("cardType"))
|
|
|
|
|
bankAddress := strings.TrimSpace(c.GetString("bankAddress"))
|
|
|
|
|
phone := strings.TrimSpace(c.GetString("phone"))
|
|
|
|
|
payForAmount := strings.TrimSpace(c.GetString("payForAmount"))
|
|
|
|
|
|
|
|
|
|
keyDataJSON := new(KeyDataJSON)
|
|
|
|
|
keyDataJSON.Code = -1
|
|
|
|
|
|
|
|
|
|
if bankUid == "" {
|
|
|
|
|
keyDataJSON.Msg = "银行卡uid不能为空,请联系技术人员"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
money, err := strconv.ParseFloat(payForAmount, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
logs.Error("self payfor money fail: ", err)
|
|
|
|
|
keyDataJSON.Msg = "输入金额有误,请仔细检查"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bankInfo := models.GetBankCardByUid(bankUid)
|
|
|
|
|
|
|
|
|
|
//需要对前端传入的数据做校验,不能完全相信前端的数据
|
|
|
|
|
if bankInfo.AccountName != accountName || bankInfo.BankNo != bankNo || bankInfo.PhoneNo != phone {
|
|
|
|
|
keyDataJSON.Msg = "前端页面数据有篡改,请注意资金安全"
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
selfPayFor := models.PayforInfo{PayforUid: "pppp" + xid.New().String(), BankOrderId: "4444" + xid.New().String(), PayforFee: common.ZERO, Type: common.SELF_HELP,
|
|
|
|
|
PayforAmount: money, PayforTotalAmount: money + common.ZERO, BankCode: bankInfo.BankCode, BankName: bankName, IsSend: common.NO,
|
|
|
|
|
BankAccountName: bankInfo.AccountName, BankAccountNo: bankInfo.BankNo, BankAccountType: bankInfo.BankAccountType, BankAccountAddress: bankAddress,
|
|
|
|
|
Status: common.PAYFOR_COMFRIM, CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime()}
|
|
|
|
|
|
|
|
|
|
if models.InsertPayfor(selfPayFor) {
|
|
|
|
|
keyDataJSON.Code = 200
|
|
|
|
|
} else {
|
|
|
|
|
keyDataJSON.Msg = "数据处理失败,请重新提交"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
c.GenerateJSON(keyDataJSON)
|
|
|
|
|
}
|