-精简HTML结构,优化`account.html`,`apple-card/account.html`,和`t-mall-game/account.html`中iframe的布局。 - 调整CSS样式,以增强用户界面的一致性和可读性。 - 优化`account_history.html`中的表格和搜索栏的样式与对齐。 fix(controller): 修正新增控制器参数顺序 - 修正`addController.go`中的参数顺序,确保交易类型正确传递给服务层。 - 更新数据库插入操作,确保UUID正确分配给新记录,防止SQL错误。
432 lines
15 KiB
Go
432 lines
15 KiB
Go
package controllers
|
||
|
||
import (
|
||
"boss/internal/common"
|
||
"boss/internal/datas"
|
||
"boss/internal/models/merchant"
|
||
"boss/internal/models/payfor"
|
||
"boss/internal/models/road"
|
||
"boss/internal/models/system"
|
||
"boss/internal/service"
|
||
"strconv"
|
||
"strings"
|
||
"time"
|
||
|
||
"github.com/beego/beego/v2/core/logs"
|
||
"github.com/rs/xid"
|
||
)
|
||
|
||
type AddController struct {
|
||
BaseController
|
||
}
|
||
|
||
// AddMenu 添加一级菜单
|
||
func (c *AddController) AddMenu() {
|
||
oneMenu := c.GetString("oneMenu")
|
||
userID := c.GetSession("userID").(string)
|
||
se := new(service.AddService)
|
||
dataJSON := se.AddMenu(oneMenu, userID)
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
// AddSecondMenu 添加二级菜单
|
||
func (c *AddController) AddSecondMenu() {
|
||
firstMenuUid := c.GetString("preMenuUid")
|
||
secondMenu := c.GetString("secondMenu")
|
||
secondRouter := c.GetString("secondRouter")
|
||
userID := c.GetSession("userID").(string)
|
||
|
||
se := new(service.AddService)
|
||
dataJSON := se.AddSecondMenu(firstMenuUid, secondRouter, secondMenu, userID)
|
||
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
// AddPower 添加权限项的处理函数
|
||
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"))
|
||
userID := c.GetSession("userID").(string)
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddPower(powerItem, powerID, firstMenuUid, secondMenuUid, userID)
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
// AddRole 添加权限角色
|
||
func (c *AddController) AddRole() {
|
||
roleName := strings.TrimSpace(c.GetString("roleNameAdd"))
|
||
roleRemark := strings.TrimSpace(c.GetString("roleRemark"))
|
||
userID := c.GetSession("userID").(string)
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddRole(roleName, roleRemark, userID)
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
func (c *AddController) SavePower() {
|
||
firstMenuUids := c.GetStrings("firstMenuUid[]")
|
||
secondMenuUids := c.GetStrings("secondMenuUid[]")
|
||
powerIds := c.GetStrings("powerId[]")
|
||
roleUid := strings.TrimSpace(c.GetString("roleUid"))
|
||
|
||
se := new(service.AddService)
|
||
dataJSON := se.SavePower(roleUid, firstMenuUids, secondMenuUids, powerIds)
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
// AddOperator 添加操作员
|
||
func (c *AddController) AddOperator() {
|
||
loginAccount := strings.TrimSpace(c.GetString("operatorAccount"))
|
||
loginPassword := strings.TrimSpace(c.GetString("operatorPassword"))
|
||
role := strings.TrimSpace(c.GetString("operatorRole"))
|
||
status := strings.TrimSpace(c.GetString("status"))
|
||
remark := strings.TrimSpace(c.GetString("remark"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddOperator(loginAccount, loginPassword, role, status, remark)
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
// AddBankCard 添加银行卡
|
||
func (c *AddController) AddBankCard() {
|
||
userName := strings.TrimSpace(c.GetString("userName"))
|
||
bankCode := strings.TrimSpace(c.GetString("bankCode"))
|
||
accountName := strings.TrimSpace(c.GetString("accountName"))
|
||
certificateType := strings.TrimSpace(c.GetString("certificateType"))
|
||
phoneNo := strings.TrimSpace(c.GetString("phoneNo"))
|
||
bankName := strings.TrimSpace(c.GetString("bankName"))
|
||
bankAccountType := strings.TrimSpace(c.GetString("bankAccountType"))
|
||
bankNo := strings.TrimSpace(c.GetString("bankNo"))
|
||
identifyCard := strings.TrimSpace(c.GetString("certificateType"))
|
||
certificateNo := strings.TrimSpace(c.GetString("certificateNo"))
|
||
bankAddress := strings.TrimSpace(c.GetString("bankAddress"))
|
||
uid := strings.TrimSpace(c.GetString("uid"))
|
||
|
||
se := new(service.AddService)
|
||
dataJSON := se.AddBankCard(userName, bankCode, accountName, certificateType, phoneNo,
|
||
bankName, bankAccountType, bankNo, certificateNo, bankAddress, uid, identifyCard)
|
||
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
// AddRoad 添加通道
|
||
func (c *AddController) AddRoad() {
|
||
roadUid := strings.TrimSpace(c.GetString("roadUid"))
|
||
roadName := strings.TrimSpace(c.GetString("roadName"))
|
||
roadRemark := strings.TrimSpace(c.GetString("roadRemark"))
|
||
productUid := strings.TrimSpace(c.GetString("productName"))
|
||
basicRate := strings.TrimSpace(c.GetString("basicRate"))
|
||
settleFee := strings.TrimSpace(c.GetString("settleFee"))
|
||
roadTotalLimit := strings.TrimSpace(c.GetString("roadTotalLimit"))
|
||
roadEverydayLimit := strings.TrimSpace(c.GetString("roadEverydayLimit"))
|
||
singleMinLimit := strings.TrimSpace(c.GetString("singleMinLimit"))
|
||
singleMaxLimit := strings.TrimSpace(c.GetString("singleMaxLimit"))
|
||
startHour := strings.TrimSpace(c.GetString("startHour"))
|
||
endHour := strings.TrimSpace(c.GetString("endHour"))
|
||
params := strings.TrimSpace(c.GetString("params"))
|
||
productCode := strings.TrimSpace(c.GetString("productCode"))
|
||
paymentHtml := strings.TrimSpace(c.GetString("paymentHtml"))
|
||
transactionType := strings.TrimSpace(c.GetString("transactionType"))
|
||
|
||
se := new(service.AddService)
|
||
dataJSON := se.AddRoad(
|
||
startHour,
|
||
endHour,
|
||
roadName,
|
||
productUid,
|
||
basicRate,
|
||
settleFee,
|
||
roadTotalLimit,
|
||
roadEverydayLimit,
|
||
singleMinLimit,
|
||
singleMaxLimit,
|
||
roadUid,
|
||
roadRemark,
|
||
params,
|
||
productCode,
|
||
paymentHtml,
|
||
transactionType,
|
||
)
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
func (c *AddController) AddRoadPool() {
|
||
roadPoolName := strings.TrimSpace(c.GetString("roadPoolName"))
|
||
roadPoolCode := strings.TrimSpace(c.GetString("roadPoolCode"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddRoadPool(roadPoolName, roadPoolCode)
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
// SaveRoadUid 添加或者更新通道池中的通道
|
||
func (c *AddController) SaveRoadUid() {
|
||
roadUids := c.GetStrings("roadUid[]")
|
||
roadPoolCode := strings.TrimSpace(c.GetString("roadPoolCode"))
|
||
|
||
se := new(service.AddService)
|
||
dataJSON := se.SaveRoadUid(roadPoolCode, roadUids)
|
||
|
||
c.GenerateJSON(dataJSON)
|
||
}
|
||
|
||
// AddAgent 添加代理信息
|
||
func (c *AddController) AddAgent() {
|
||
agentName := strings.TrimSpace(c.GetString("agentName"))
|
||
agentPhone := strings.TrimSpace(c.GetString("agentPhone"))
|
||
agentLoginPassword := strings.TrimSpace(c.GetString("agentLoginPassword"))
|
||
agentVertifyPassword := strings.TrimSpace(c.GetString("agentVertifyPassword"))
|
||
agentRemark := strings.TrimSpace(c.GetString("agentRemark"))
|
||
status := strings.TrimSpace(c.GetString("status"))
|
||
agentUid := strings.TrimSpace(c.GetString("agentUid"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddAgent(agentName, agentPhone, agentLoginPassword, agentVertifyPassword, status, agentUid, agentRemark)
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
func (c *AddController) AddMerchant() {
|
||
merchantName := strings.TrimSpace(c.GetString("merchantName"))
|
||
phone := strings.TrimSpace(c.GetString("phone"))
|
||
loginPassword := strings.TrimSpace(c.GetString("loginPassword"))
|
||
verifyPassword := strings.TrimSpace(c.GetString("verifyPassword"))
|
||
merchantStatus := strings.TrimSpace(c.GetString("merchantStatus"))
|
||
remark := strings.TrimSpace(c.GetString("remark"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddMerchant(merchantName, phone, loginPassword, verifyPassword, merchantStatus, remark)
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
// AddMerchantDeploy 添加商戶支付配置參數
|
||
func (c *AddController) AddMerchantDeploy() {
|
||
merchantUid := strings.TrimSpace(c.GetString("merchantNo"))
|
||
isAutoSettle := strings.TrimSpace(c.GetString("isAutoSettle"))
|
||
isAutoPayfor := strings.TrimSpace(c.GetString("isAutoPayfor"))
|
||
ipWhite := strings.TrimSpace(c.GetString("ipWhite"))
|
||
payforRoadChoose := strings.TrimSpace(c.GetString("payforRoadChoose"))
|
||
rollPayforRoadChoose := strings.TrimSpace(c.GetString("rollPayforRoadChoose"))
|
||
payforFee := strings.TrimSpace(c.GetString("payforFee"))
|
||
belongAgentName := strings.TrimSpace(c.GetString("belongAgentName"))
|
||
belongAgentUid := strings.TrimSpace(c.GetString("belongAgentUid"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddMerchantDeploy(merchantUid, isAutoSettle, isAutoPayfor, ipWhite, belongAgentName,
|
||
belongAgentUid, payforRoadChoose, rollPayforRoadChoose, payforFee)
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
func (c *AddController) AddMerchantPayType() {
|
||
merchantNo := strings.TrimSpace(c.GetString("merchantNo"))
|
||
payType := strings.TrimSpace(c.GetString("payType"))
|
||
singleRoad := strings.TrimSpace(c.GetString("singleRoad"))
|
||
singleRoadPlatformFee := strings.TrimSpace(c.GetString("singleRoadPlatformFee"))
|
||
singleRoadAgentFee := strings.TrimSpace(c.GetString("singleRoadAgentFee"))
|
||
rollPoolRoad := strings.TrimSpace(c.GetString("rollPoolRoad"))
|
||
rollRoadPlatformFee := strings.TrimSpace(c.GetString("rollRoadPlatformFee"))
|
||
rollRoadAgentFee := strings.TrimSpace(c.GetString("rollRoadAgentFee"))
|
||
isLoan := strings.TrimSpace(c.GetString("isLoan"))
|
||
loanRate := strings.TrimSpace(c.GetString("loanRate"))
|
||
loanDays := strings.TrimSpace(c.GetString("loanDays"))
|
||
unfreezeTimeHour := strings.TrimSpace(c.GetString("unfreezeTimeHour"))
|
||
|
||
keyDataJSON := new(datas.KeyDataJSON)
|
||
if payType == "" || payType == "none" {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "操作失败,请选择支付类型"
|
||
c.GenerateJSON(keyDataJSON)
|
||
return
|
||
}
|
||
|
||
if singleRoad == "" && rollPoolRoad == "" {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "单通道、轮询通道至少要有一个不为空!"
|
||
}
|
||
|
||
if singleRoad != "" && singleRoadPlatformFee == "" {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "单通道平台利润率不能为0"
|
||
}
|
||
|
||
if rollPoolRoad != "" && rollRoadPlatformFee == "" {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "轮询通道平台利润率不能为0"
|
||
}
|
||
|
||
if !merchant.CheckMarginValid(singleRoadPlatformFee) {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "费率映射设置错误!"
|
||
}
|
||
|
||
if keyDataJSON.Code == -1 {
|
||
c.GenerateJSON(keyDataJSON)
|
||
return
|
||
}
|
||
|
||
b, err := strconv.ParseFloat(singleRoadAgentFee, 64)
|
||
if err != nil {
|
||
b = 0.0
|
||
}
|
||
cs, err := strconv.ParseFloat(rollRoadPlatformFee, 64)
|
||
if err != nil {
|
||
cs = 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 merchant.MerchantDeployInfo
|
||
merchantDeployInfo.MerchantUid = merchantNo
|
||
merchantDeployInfo.PayType = payType
|
||
merchantDeployInfo.SingleRoadName = singleRoad
|
||
merchantDeployInfo.SingleRoadPlatformRate = singleRoadPlatformFee
|
||
merchantDeployInfo.SingleRoadAgentRate = b
|
||
merchantDeployInfo.RollRoadPlatformRate = cs
|
||
merchantDeployInfo.RollRoadAgentRate = d
|
||
merchantDeployInfo.IsLoan = isLoan
|
||
merchantDeployInfo.LoanRate = e
|
||
merchantDeployInfo.LoanDays = i
|
||
merchantDeployInfo.UnfreezeHour = j
|
||
merchantDeployInfo.RollRoadName = rollPoolRoad
|
||
roadInfo := road.GetRoadInfoByName(singleRoad)
|
||
rollPoolInfo := road.GetRoadPoolByName(rollPoolRoad)
|
||
merchantDeployInfo.SingleRoadUid = roadInfo.RoadUid
|
||
merchantDeployInfo.RollRoadCode = rollPoolInfo.RoadPoolCode
|
||
merchantDeployInfo.CreateTime = time.Now()
|
||
merchantDeployInfo.UpdateTime = time.Now()
|
||
|
||
//如果该用户的改支付类型已经存在,那么进行更新,否则进行添加
|
||
if merchant.IsExistByUidAndPayType(merchantNo, payType) {
|
||
if singleRoad == "" && rollPoolRoad == "" {
|
||
//表示需要删除该支付类型的通道
|
||
if merchant.DeleteMerchantDeployByUidAndPayType(merchantNo, payType) {
|
||
keyDataJSON.Code = 200
|
||
keyDataJSON.Msg = "删除该支付类型通道成功"
|
||
} else {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "删除该支付类型通道失败"
|
||
}
|
||
} else {
|
||
tmpInfo := merchant.GetMerchantDeployByUidAndPayType(merchantNo, payType)
|
||
merchantDeployInfo.Id = tmpInfo.Id
|
||
merchantDeployInfo.Status = tmpInfo.Status
|
||
merchantDeployInfo.UpdateTime = time.Now()
|
||
merchantDeployInfo.CreateTime = tmpInfo.CreateTime
|
||
if merchant.UpdateMerchantDeploy(merchantDeployInfo) {
|
||
keyDataJSON.Code = 200
|
||
keyDataJSON.Msg = "更新成功"
|
||
merchant.DeleteOtherMerchantDeployInfo(merchantDeployInfo)
|
||
} else {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "更新失败"
|
||
}
|
||
}
|
||
} else {
|
||
if singleRoad == "" && rollPoolRoad == "" {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "参数不能为空"
|
||
} else {
|
||
merchantDeployInfo.Status = common.ACTIVE
|
||
if merchant.InsertMerchantDeployInfo(merchantDeployInfo) {
|
||
// 添加支付类型后,删除当前用户下面的其他支付通道
|
||
// 查询当前支付类型
|
||
deployInfo := merchant.GetMerchantDeployByUidAndPayType(merchantNo, payType)
|
||
merchant.DeleteOtherMerchantDeployInfo(deployInfo)
|
||
keyDataJSON.Code = 200
|
||
keyDataJSON.Msg = "添加支付类型成功"
|
||
} else {
|
||
keyDataJSON.Code = -1
|
||
keyDataJSON.Msg = "添加支付类型失败"
|
||
}
|
||
}
|
||
}
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|
||
|
||
// AddPayFor 后台提交的下发记录
|
||
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"))
|
||
bankAddress := strings.TrimSpace(c.GetString("bankAddress"))
|
||
phone := strings.TrimSpace(c.GetString("phone"))
|
||
payForAmount := strings.TrimSpace(c.GetString("payForAmount"))
|
||
|
||
se := new(service.AddService)
|
||
keyDataJSON := se.AddPayFor(merchantUid, bankUid, payForAmount, bankNo,
|
||
accountName, phone, merchantName, bankName, bankAddress)
|
||
|
||
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"))
|
||
bankAddress := strings.TrimSpace(c.GetString("bankAddress"))
|
||
phone := strings.TrimSpace(c.GetString("phone"))
|
||
payForAmount := strings.TrimSpace(c.GetString("payForAmount"))
|
||
|
||
keyDataJSON := new(datas.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 := system.GetBankCardByUid(bankUid)
|
||
|
||
//需要对前端传入的数据做校验,不能完全相信前端的数据
|
||
if bankInfo.AccountName != accountName || bankInfo.BankNo != bankNo || bankInfo.PhoneNo != phone {
|
||
keyDataJSON.Msg = "前端页面数据有篡改,请注意资金安全"
|
||
c.GenerateJSON(keyDataJSON)
|
||
return
|
||
}
|
||
|
||
selfPayFor := payfor.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: time.Now(), UpdateTime: time.Now()}
|
||
|
||
if payfor.InsertPayfor(selfPayFor) {
|
||
keyDataJSON.Code = 200
|
||
} else {
|
||
keyDataJSON.Msg = "数据处理失败,请重新提交"
|
||
}
|
||
|
||
c.GenerateJSON(keyDataJSON)
|
||
}
|