|
|
package user
|
|
|
|
|
|
import (
|
|
|
"encoding/base64"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"github.com/golangkit/formatime"
|
|
|
"github.com/skip2/go-qrcode"
|
|
|
"recook/configs"
|
|
|
"recook/internal/back"
|
|
|
"recook/internal/dbc"
|
|
|
"recook/internal/model/user"
|
|
|
"recook/tools"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
type DiamondRegisterListReq struct {
|
|
|
Phone string `json:"phone"`
|
|
|
Status string `json:"status" validate:"omitempty,oneof=wait pass refuse"`
|
|
|
}
|
|
|
|
|
|
var statusMap = map[string]int{
|
|
|
"wait": user.WaitForDiamondRegisterStatus,
|
|
|
"pass": user.PassForDiamondRegisterStatus,
|
|
|
"refuse": user.RefuseForDiamondRegisterStatus,
|
|
|
}
|
|
|
|
|
|
// 待注册的钻石用户
|
|
|
func DiamondRegisterList(c *gin.Context) {
|
|
|
var p DiamondRegisterListReq
|
|
|
err := tools.Params(&p, c)
|
|
|
if err != nil {
|
|
|
back.Fail(c, err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
var where user.DiamondRegister
|
|
|
if len(p.Status) > 0 {
|
|
|
where.Status = statusMap[p.Status]
|
|
|
}
|
|
|
if len(p.Phone) > 0 {
|
|
|
where.Phone = p.Phone
|
|
|
}
|
|
|
|
|
|
type res struct {
|
|
|
user.DiamondRegister
|
|
|
Name string `gorm:"column:name" json:"auditManagerName"` /// 审核操作人的用户名,应该叫managerName
|
|
|
}
|
|
|
|
|
|
var list []res
|
|
|
dbc.DB.Model(&user.DiamondRegister{}).Select("recook_diamond_register.*, recook_manage_user_info.name").Where(&where).
|
|
|
Joins("left join recook_manage_user_info on recook_diamond_register.audit_manager_id = recook_manage_user_info.id").Find(&list)
|
|
|
|
|
|
back.Suc(c, "操作成功", &list)
|
|
|
}
|
|
|
|
|
|
type AuditDiamondRegisterReq struct {
|
|
|
ID uint `json:"id"`
|
|
|
Status string `json:"status" validate:"oneof=pass refuse"`
|
|
|
Remark string `json:"remark" validate:"max=255"`
|
|
|
}
|
|
|
|
|
|
const ProdRegisterURL = "https://h5.reecook.cn/"
|
|
|
const TestRegisterURL = "http://testh5.reecook.cn/" // 注:测试现在是http
|
|
|
|
|
|
// 审核钻石注册用户
|
|
|
func AuditDiamondRegister(c *gin.Context) {
|
|
|
var p AuditDiamondRegisterReq
|
|
|
err := tools.Params(&p, c)
|
|
|
if err != nil {
|
|
|
back.Fail(c, err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
var baseUrl string
|
|
|
if configs.IsProductionEnv() {
|
|
|
baseUrl = ProdRegisterURL
|
|
|
} else {
|
|
|
baseUrl = TestRegisterURL
|
|
|
}
|
|
|
|
|
|
var dr user.DiamondRegister
|
|
|
dbc.DB.Find(&dr, p.ID)
|
|
|
if statusMap[p.Status] == user.PassForDiamondRegisterStatus {
|
|
|
var userInfo user.Information
|
|
|
dbc.DB.Where("id= ?", dr.IntroUserId).First(&userInfo)
|
|
|
dr.RegisterUrl = baseUrl + "#/user/appRegister/" + userInfo.IntroCode
|
|
|
}
|
|
|
dr.Status = statusMap[p.Status]
|
|
|
dr.Remark = p.Remark
|
|
|
var auditUserId = c.MustGet("Manager_ID").(uint)
|
|
|
dr.AuditManangerId = auditUserId
|
|
|
dr.AuditTime = formatime.NewSecondFrom(time.Now())
|
|
|
err = dbc.DB.Save(&dr).Error
|
|
|
if err != nil {
|
|
|
back.Fail(c, "保存失败"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
back.Suc(c, "操作成功", nil)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
type diamondRegisterUrlReq struct {
|
|
|
ID uint `json:"id" validate:"omitempty,numeric"`
|
|
|
Phone string `json:"phone" validate:"omitempty,max=15"`
|
|
|
}
|
|
|
|
|
|
// 返回url的base64二维码图片
|
|
|
func DiamondRegisterUrl(c *gin.Context) {
|
|
|
var p diamondRegisterUrlReq
|
|
|
err := tools.Params(&p, c)
|
|
|
if err != nil {
|
|
|
back.Fail(c, err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
if p.ID == 0 && len(p.Phone) == 0 {
|
|
|
back.Fail(c, "选择错误")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
var dUser user.DiamondRegister
|
|
|
dUser.Phone = p.Phone
|
|
|
dUser.ID = p.ID
|
|
|
|
|
|
if dbc.DB.Where(&dUser).First(&dUser).Error != nil {
|
|
|
back.Fail(c, "用户错误")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
srcByte, err := qrcode.Encode(dUser.RegisterUrl, qrcode.Medium, 256)
|
|
|
|
|
|
if err != nil {
|
|
|
back.Fail(c, err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
dst := base64.StdEncoding.EncodeToString(srcByte)
|
|
|
back.Suc(c, "操作成功过", "data:image/png;base64,"+dst)
|
|
|
return
|
|
|
}
|