mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2025-12-16 07:51:33 +08:00
由gopath形式改为module
This commit is contained in:
332
agent/controllers/user_info.go
Normal file
332
agent/controllers/user_info.go
Normal file
@@ -0,0 +1,332 @@
|
||||
/***************************************************
|
||||
** @Desc : This file for 用户信息控制
|
||||
** @Time : 19.12.3 10:38
|
||||
** @Author : Joker
|
||||
** @File : user_info
|
||||
** @Last Modified by : Joker
|
||||
** @Last Modified time: 19.12.3 10:38
|
||||
** @Software: GoLand
|
||||
****************************************************/
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"agent/models"
|
||||
"agent/sys/enum"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type UserInfo struct {
|
||||
KeepSession
|
||||
}
|
||||
|
||||
func (c *UserInfo) ShowModifyUserInfoUI() {
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
ranMd5 := encrypt.EncodeMd5([]byte(pubMethod.RandomString(46)))
|
||||
c.Ctx.SetCookie(enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.Ctx.SetSecureCookie(ranMd5, enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.SetSession(enum.UserCookie, ranMd5)
|
||||
|
||||
c.Data["userName"] = u.AgentName
|
||||
c.TplName = "modify_userInfo.html"
|
||||
}
|
||||
|
||||
// 修改用户信息
|
||||
func (c *UserInfo) ModifyUserInfo() {
|
||||
or_pwd := strings.TrimSpace(c.GetString("or_pwd"))
|
||||
new_pwd := strings.TrimSpace(c.GetString("new_pwd"))
|
||||
confirm_pwd := strings.TrimSpace(c.GetString("confirm_pwd"))
|
||||
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
var (
|
||||
msg = enum.FailedString
|
||||
flag = enum.FailedFlag
|
||||
|
||||
md bool
|
||||
ud bool
|
||||
pwdMd5 string
|
||||
)
|
||||
|
||||
if or_pwd == "" ||
|
||||
new_pwd == "" ||
|
||||
confirm_pwd == "" {
|
||||
msg = "密码不能为空!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
pwdMd5 = encrypt.EncodeMd5([]byte(or_pwd))
|
||||
if strings.Compare(strings.ToUpper(pwdMd5), u.AgentPassword) != 0 {
|
||||
msg = "原始密码错误!"
|
||||
}
|
||||
|
||||
md, _ = regexp.MatchString(enum.PasswordReg, new_pwd)
|
||||
if !md {
|
||||
msg = "密码只能输入6-20个以字母开头、可带数字、“_”、“.”的字串!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
md, _ = regexp.MatchString(enum.PasswordReg, confirm_pwd)
|
||||
if !md {
|
||||
msg = "密码只能输入6-20个以字母开头、可带数字、“_”、“.”的字串!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
if strings.Compare(new_pwd, confirm_pwd) != 0 {
|
||||
msg = "两次密码不匹配!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
u.AgentPassword = strings.ToUpper(encrypt.EncodeMd5([]byte(new_pwd)))
|
||||
u.UpdateTime = pubMethod.GetNowTime()
|
||||
ud = models.UpdateAgentInfo(u)
|
||||
if ud {
|
||||
msg = enum.SuccessString
|
||||
flag = enum.SuccessFlag
|
||||
|
||||
// 退出重新登录
|
||||
c.DelSession(enum.UserSession)
|
||||
}
|
||||
|
||||
stopRun:
|
||||
c.Data["json"] = pubMethod.JsonFormat(flag, "", msg, "")
|
||||
c.ServeJSON()
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// 验证原始密码
|
||||
func (c *UserInfo) ConfirmOriginPwd() {
|
||||
ori := strings.TrimSpace(c.GetString("c"))
|
||||
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
var (
|
||||
msg = enum.FailedString
|
||||
flag = enum.FailedFlag
|
||||
)
|
||||
|
||||
pwdMd5 := encrypt.EncodeMd5([]byte(ori))
|
||||
if strings.Compare(strings.ToUpper(pwdMd5), u.AgentPassword) != 0 {
|
||||
msg = "原始密码错误!"
|
||||
} else {
|
||||
flag = enum.SuccessFlag
|
||||
}
|
||||
|
||||
c.Data["json"] = pubMethod.JsonFormat(flag, "", msg, "")
|
||||
c.ServeJSON()
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// 设置支付密码
|
||||
func (c *UserInfo) SetPayPassword() {
|
||||
or_pwd := strings.TrimSpace(c.GetString("or_pwd"))
|
||||
new_pwd := strings.TrimSpace(c.GetString("new_pwd"))
|
||||
confirm_pwd := strings.TrimSpace(c.GetString("confirm_pwd"))
|
||||
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
var (
|
||||
msg = enum.FailedString
|
||||
flag = enum.FailedFlag
|
||||
|
||||
md bool
|
||||
ud bool
|
||||
pwdMd5 string
|
||||
)
|
||||
|
||||
if new_pwd == "" || confirm_pwd == "" {
|
||||
msg = "密码不能为空!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
if u.PayPassword != "" {
|
||||
pwdMd5 = encrypt.EncodeMd5([]byte(or_pwd))
|
||||
if strings.Compare(strings.ToUpper(pwdMd5), u.AgentPassword) != 0 {
|
||||
msg = "原始密码错误!"
|
||||
}
|
||||
}
|
||||
|
||||
md, _ = regexp.MatchString(enum.PasswordReg, new_pwd)
|
||||
if !md {
|
||||
msg = "密码只能输入6-20个以字母开头、可带数字、“_”、“.”的字串!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
md, _ = regexp.MatchString(enum.PasswordReg, confirm_pwd)
|
||||
if !md {
|
||||
msg = "密码只能输入6-20个以字母开头、可带数字、“_”、“.”的字串!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
if strings.Compare(new_pwd, confirm_pwd) != 0 {
|
||||
msg = "两次密码不匹配!"
|
||||
goto stopRun
|
||||
}
|
||||
|
||||
u.PayPassword = strings.ToUpper(encrypt.EncodeMd5([]byte(new_pwd)))
|
||||
u.UpdateTime = pubMethod.GetNowTime()
|
||||
ud = models.UpdateAgentInfo(u)
|
||||
if ud {
|
||||
msg = enum.SuccessString
|
||||
flag = enum.SuccessFlag
|
||||
|
||||
// 重新写入缓存信息
|
||||
c.SetSession(enum.UserSession, u)
|
||||
}
|
||||
|
||||
stopRun:
|
||||
c.Data["json"] = pubMethod.JsonFormat(flag, "", msg, "")
|
||||
c.ServeJSON()
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// 验证原始支付密码
|
||||
func (c *UserInfo) ConfirmOriginPayPwd() {
|
||||
ori := strings.TrimSpace(c.GetString("c"))
|
||||
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
var (
|
||||
msg = enum.FailedString
|
||||
flag = enum.SuccessFlag
|
||||
)
|
||||
|
||||
if u.PayPassword != "" {
|
||||
pwdMd5 := encrypt.EncodeMd5([]byte(ori))
|
||||
if strings.Compare(strings.ToUpper(pwdMd5), u.AgentPassword) != 0 {
|
||||
msg = "原始密码错误!"
|
||||
flag = enum.FailedFlag
|
||||
}
|
||||
}
|
||||
|
||||
c.Data["json"] = pubMethod.JsonFormat(flag, "", msg, "")
|
||||
c.ServeJSON()
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// 展示用户信息
|
||||
func (c *UserInfo) ShowUserInfoUI() {
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
ranMd5 := encrypt.EncodeMd5([]byte(pubMethod.RandomString(46)))
|
||||
c.Ctx.SetCookie(enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.Ctx.SetSecureCookie(ranMd5, enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.SetSession(enum.UserCookie, ranMd5)
|
||||
|
||||
c.Data["userName"] = u.AgentName
|
||||
c.TplName = "show_userInfo.html"
|
||||
}
|
||||
|
||||
// 代理商列表
|
||||
func (c *UserInfo) ShowMerchantUI() {
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
ranMd5 := encrypt.EncodeMd5([]byte(pubMethod.RandomString(46)))
|
||||
c.Ctx.SetCookie(enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.Ctx.SetSecureCookie(ranMd5, enum.UserCookie, ranMd5, enum.CookieExpireTime)
|
||||
c.SetSession(enum.UserCookie, ranMd5)
|
||||
|
||||
c.Data["payType"] = enum.GetPayType()
|
||||
c.Data["status"] = enum.GetOrderStatus()
|
||||
c.Data["userName"] = u.AgentName
|
||||
c.TplName = "merchant.html"
|
||||
}
|
||||
|
||||
func (c *UserInfo) MerchantQueryAndListPage() {
|
||||
us := c.GetSession(enum.UserSession)
|
||||
u := us.(models.AgentInfo)
|
||||
|
||||
mt := make(map[string]string)
|
||||
mt["belong_agent_uid"] = u.AgentUid
|
||||
mt["status"] = enum.ACTIVE
|
||||
|
||||
// 该代理商下所有正常商户
|
||||
merchants := models.GetMerchantByParams(mt, -1, 0)
|
||||
|
||||
type account struct {
|
||||
UId string
|
||||
MerchantName string // 商户名
|
||||
Mobile string // 手机号
|
||||
Balance float64 // 账户余额
|
||||
SettleAmount float64 // 已结算金额
|
||||
WaitAmount float64 // 待结算金额
|
||||
LoanAmount float64 // 押款金额
|
||||
FreezeAmount float64 // 账户冻结金额
|
||||
PayAmount float64 // 代付中金额
|
||||
}
|
||||
|
||||
type deploy struct {
|
||||
ChannelName string // 通道名
|
||||
PlatRate float64 // 平台费率
|
||||
AgentRate float64 // 代理商费率
|
||||
}
|
||||
|
||||
mtd := make(map[string]string)
|
||||
mtd["status"] = enum.ACTIVE
|
||||
var (
|
||||
count = 0 // 计算该代理商下的商户有多少个通道
|
||||
accounts []account // 每个商户的账户信息
|
||||
)
|
||||
for _, m := range merchants {
|
||||
mtd["merchant_uid"] = m.MerchantUid
|
||||
lens := models.GetMerchantDeployLenByMap(mtd)
|
||||
count += lens
|
||||
|
||||
ac := models.GetAccountByUid(m.MerchantUid)
|
||||
accounts = append(accounts, account{
|
||||
UId: m.MerchantUid,
|
||||
MerchantName: m.MerchantName,
|
||||
Mobile: m.LoginAccount,
|
||||
Balance: ac.Balance,
|
||||
SettleAmount: ac.SettleAmount,
|
||||
WaitAmount: ac.WaitAmount,
|
||||
LoanAmount: ac.LoanAmount,
|
||||
FreezeAmount: ac.FreezeAmount,
|
||||
PayAmount: ac.PayforAmount,
|
||||
})
|
||||
}
|
||||
|
||||
// 每个商户的通道信息
|
||||
deploys := make(map[string][]deploy)
|
||||
if count != 0 {
|
||||
for _, a := range accounts {
|
||||
mtd["merchant_uid"] = a.UId
|
||||
|
||||
mdl := models.GetMerchantDeployListByMap(mtd, -1, 0)
|
||||
for _, m := range mdl {
|
||||
road := models.GetRoadInfoByRoadUid(m.SingleRoadUid)
|
||||
fee := road.BasicFee + m.SingleRoadPlatformRate + m.SingleRoadAgentRate
|
||||
if fee < 0.00000001 {
|
||||
fee = road.BasicFee + m.RollRoadPlatformRate + m.RollRoadAgentRate
|
||||
}
|
||||
afee := m.SingleRoadAgentRate
|
||||
if afee < 0.00000001 {
|
||||
afee = m.RollRoadAgentRate
|
||||
}
|
||||
deploys[a.UId] = append(deploys[a.UId], deploy{
|
||||
ChannelName: road.ProductName,
|
||||
PlatRate: fee,
|
||||
AgentRate: afee,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 数据回显
|
||||
out := make(map[string]interface{})
|
||||
out["ac"] = accounts
|
||||
out["dp"] = deploys
|
||||
out["count"] = count
|
||||
|
||||
c.Data["json"] = out
|
||||
c.ServeJSON()
|
||||
c.StopRun()
|
||||
}
|
||||
Reference in New Issue
Block a user