302 lines
7.1 KiB
Go
302 lines
7.1 KiB
Go
|
package blockchain
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"fmt"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/account"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/e_card"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/equity"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/api/rule"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/model/request"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/response"
|
|||
|
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
|
|||
|
"github.com/gin-gonic/gin"
|
|||
|
)
|
|||
|
|
|||
|
// BlockUserList 用户列表
|
|||
|
func BlockUserList(ctx *gin.Context) {
|
|||
|
req := &request.BlockUserListReq{}
|
|||
|
resp := &response.BlockUserListResp{}
|
|||
|
var err error
|
|||
|
if err = ctx.ShouldBind(&req); err != nil {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
status := ""
|
|||
|
if req.Status == 1 {
|
|||
|
status = "notactive"
|
|||
|
} else if req.Status == 2 {
|
|||
|
status = "left"
|
|||
|
}
|
|||
|
userReq := &account.ListRequest{
|
|||
|
Domain: "blockchain",
|
|||
|
PageSize: req.PageSize,
|
|||
|
Page: req.Page,
|
|||
|
Key: req.Name,
|
|||
|
TelNum: req.TelNum,
|
|||
|
Status: status,
|
|||
|
StartEnterDate: req.StartDate,
|
|||
|
EndEnterDate: req.EndDate,
|
|||
|
}
|
|||
|
res, err := service.AccountProvider.List(ctx, userReq)
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// 一次性分配 UserId 切片的空间
|
|||
|
UserId := make([]int32, 0, len(res.Data))
|
|||
|
for _, v := range res.Data {
|
|||
|
UserId = append(UserId, int32(v.ID))
|
|||
|
}
|
|||
|
// 获取余额
|
|||
|
rep, err := service.EquityProvider.GetResourcesByUserIds(ctx, &equity.GetResourcesByUserIdsRequest{
|
|||
|
UserIDs: UserId,
|
|||
|
})
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
resourcesByUserID := make(map[uint64]*equity.ResourcesByUserID)
|
|||
|
for _, resource := range rep.ResourcesByUserID {
|
|||
|
resourcesByUserID[uint64(resource.UserID)] = resource
|
|||
|
}
|
|||
|
|
|||
|
// 处理结果
|
|||
|
for _, v := range res.Data {
|
|||
|
resource, ok := resourcesByUserID[v.ID]
|
|||
|
if !ok {
|
|||
|
// 如果获取不到余额,将余额赋值为0
|
|||
|
resource = &equity.ResourcesByUserID{
|
|||
|
UserID: int32(v.ID),
|
|||
|
Money: 0,
|
|||
|
Resource: 0,
|
|||
|
}
|
|||
|
}
|
|||
|
resStatus := 0
|
|||
|
switch v.Status {
|
|||
|
case "notactive":
|
|||
|
resStatus = 1
|
|||
|
case "left":
|
|||
|
resStatus = 2
|
|||
|
}
|
|||
|
resp.List = append(resp.List, &response.BlockUserList{
|
|||
|
Id: v.ID,
|
|||
|
Name: v.NickName,
|
|||
|
TelNum: v.TelNum,
|
|||
|
Status: resStatus,
|
|||
|
RegisterDate: v.EnterDate,
|
|||
|
IdCard: v.IDNum,
|
|||
|
BlockAddr: v.BlockAddr,
|
|||
|
CardBalance: uint64(resource.Money),
|
|||
|
EquityBalance: uint64(resource.Resource),
|
|||
|
})
|
|||
|
}
|
|||
|
service.ResponseQuickMsg(ctx, e.Success, "success", resp)
|
|||
|
return
|
|||
|
}
|
|||
|
func BlockUserSetting(ctx *gin.Context) {
|
|||
|
req := &request.BlockUserSettingReq{}
|
|||
|
var err error
|
|||
|
if err = ctx.ShouldBind(&req); err != nil {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
if len(req.Ids) > 10 || req.Status != 1 && req.Status != 2 {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, e.GetMsg(e.InvalidParams), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
status := ""
|
|||
|
switch req.Status {
|
|||
|
case 1:
|
|||
|
status = "notactive"
|
|||
|
case 2:
|
|||
|
status = "left"
|
|||
|
}
|
|||
|
for _, i := range req.Ids {
|
|||
|
_, err = service.AccountProvider.Update(ctx, &account.UpdateRequest{
|
|||
|
ID: i,
|
|||
|
Domain: "blockchian",
|
|||
|
Status: status,
|
|||
|
})
|
|||
|
if err != nil {
|
|||
|
service.ResponseQuickMsg(ctx, e.Failed, err.Error(), nil)
|
|||
|
return
|
|||
|
}
|
|||
|
}
|
|||
|
service.ResponseQuickMsg(ctx, e.Success, "success", nil)
|
|||
|
return
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
func AddChain(c *gin.Context) {
|
|||
|
var addChainRequest e_card.AddChainRequest
|
|||
|
if err := c.ShouldBind(&addChainRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
rep, err := service.ECardProvider.AddChain(context.Background(), &addChainRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
|
|||
|
return
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
func ECardUserManage(c *gin.Context) {
|
|||
|
var eCardUserManageRequest e_card.ECardUserManageRequest
|
|||
|
if err := c.ShouldBind(&eCardUserManageRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
rep, err := service.ECardProvider.ECardUserManage(context.Background(), &eCardUserManageRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
|
|||
|
return
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
func ChainRecord(c *gin.Context) {
|
|||
|
var chainRecordRequest e_card.ChainRecordRequest
|
|||
|
if err := c.ShouldBind(&chainRecordRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
rep, err := service.ECardProvider.ChainRecord(context.Background(), &chainRecordRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
|
|||
|
return
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
func SaveInfo(c *gin.Context) {
|
|||
|
res, err := service.AccountProvider.List(context.Background(), &account.ListRequest{Domain: "fontree", PageSize: 99999, Page: 1, Status: "notactive"})
|
|||
|
if err != nil {
|
|||
|
fmt.Println("获取用户信息失败", err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
for _, data := range res.Data {
|
|||
|
// 获取岗位信息
|
|||
|
uReq := rule.RulesRequest{
|
|||
|
Domain: "fontree",
|
|||
|
AccountID: data.ID,
|
|||
|
}
|
|||
|
posResp, err := service.RuleProvider.UserInfo(context.Background(), &uReq)
|
|||
|
if err != nil {
|
|||
|
fmt.Println("获取用户信息失败", err)
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
var department []string
|
|||
|
var post []string
|
|||
|
|
|||
|
for _, position := range posResp.PositionUsers {
|
|||
|
department = append(department, position.DepartmentName)
|
|||
|
post = append(post, position.PositionName)
|
|||
|
}
|
|||
|
|
|||
|
addChainRequest := &e_card.AddChainRequest{
|
|||
|
Name: data.NickName,
|
|||
|
Phone: data.TelNum,
|
|||
|
Company: "泰丰国际",
|
|||
|
Department: department,
|
|||
|
Post: post,
|
|||
|
DateOnBoard: data.EnterDate,
|
|||
|
UserID: int32(data.ID),
|
|||
|
Addr: data.Account,
|
|||
|
ChangedPlace: "新建电子名片",
|
|||
|
}
|
|||
|
_, err = service.ECardProvider.AddChain(context.Background(), addChainRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func UserExist(c *gin.Context) {
|
|||
|
var userByTelRequest account.UserByTelRequest
|
|||
|
if err := c.ShouldBind(&userByTelRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
rep, err := service.AccountProvider.UserByTel(c, &userByTelRequest)
|
|||
|
if err != nil {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
}
|
|||
|
|
|||
|
func Send(c *gin.Context) {
|
|||
|
var req account.SendMsgRequest
|
|||
|
|
|||
|
if err := c.ShouldBind(&req); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
res, err := service.AccountProvider.SendMsg(context.Background(), &req)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, res)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func Login(c *gin.Context) {
|
|||
|
var loginRequest account.LoginRequest
|
|||
|
if err := c.ShouldBind(&loginRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
rep, err := service.AccountProvider.Login(c, &loginRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
}
|
|||
|
|
|||
|
func Check(c *gin.Context) {
|
|||
|
var checkMsgRequest account.CheckMsgRequest
|
|||
|
if err := c.ShouldBind(&checkMsgRequest); err != nil {
|
|||
|
service.Error(c, e.InvalidParams, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
rep, err := service.AccountProvider.CheckMsg(c, &checkMsgRequest)
|
|||
|
if err != nil {
|
|||
|
service.Error(c, e.Error, err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
service.Success(c, rep)
|
|||
|
}
|