Browse Source

add 公排查询

adv_callback
shenjiachi 1 month ago
parent
commit
bd3a20d79d
6 changed files with 547 additions and 3 deletions
  1. +254
    -0
      app/hdl/institutional_management/public_platoon/hdl_basic.go
  2. +28
    -3
      app/md/institutional_management/public_platoon/md_public_platoon.go
  3. +2
    -0
      app/router/router.go
  4. +99
    -0
      docs/docs.go
  5. +99
    -0
      docs/swagger.json
  6. +65
    -0
      docs/swagger.yaml

+ 254
- 0
app/hdl/institutional_management/public_platoon/hdl_basic.go View File

@@ -113,11 +113,265 @@ func UpdatePublicPlatoonBasic(c *gin.Context) {
e.OutSuc(c, "success", nil)
}

// GetRelationshipMap
// @Summary 制度中心-公排管理-关系分布图(获取)
// @Tags 公排管理
// @Description 关系分布图(获取)
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req query public_platoon.GetRelationshipMapReq false "用户ID 手机号"
// @Success 200 {object} public_platoon.RelationshipMapResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/publicPlatoon/relationshipMap [get]
func GetRelationshipMap(c *gin.Context) {
var req *public_platoon.GetRelationshipMapReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
userDb := implement.NewUserDb(db.Db)
var uid int64
if req.Phone != 0 {
user, err1 := userDb.UserGetOneByPhone(req.Phone)
if err1 != nil {
e.OutErr(c, e.ERR_DB_ORM, err1.Error())
}
uid = user.Id
}

if req.Uid != 0 {
uid = req.Uid
}

UserRelationDb := implement.NewPublicPlatoonUserRelationDb(db.Db)
relations, err2 := UserRelationDb.PublicPlatoonUserRelationFind(uid)
if err2 != nil {
e.OutErr(c, e.ERR_DB_ORM, err2.Error())
return
}
user, err3 := userDb.UserGetOneById(relations[0].Uid)
if err3 != nil {
e.OutErr(c, e.ERR_DB_ORM, err3.Error())
return
}
var son []public_platoon.RelationshipMap
res := public_platoon.RelationshipMap{
AvatarUrl: user.Avatar,
Phone: user.Phone,
Nickname: user.Nickname,
Uid: user.Id,
Pid: relations[0].RecommendUid,
Level: relations[0].Level1,
Position: relations[0].Position1,
SystemID: relations[0].Id,
Son: son,
}
m := make(map[int64]public_platoon.RelationshipMap)
m[res.Uid] = res
for i := 1; i < len(relations); i++ {
currentUser, err4 := userDb.UserGetOneById(relations[i].Uid)
if err4 != nil {
e.OutErr(c, e.ERR_DB_ORM, err4.Error())
return
}
var sonNodes []public_platoon.RelationshipMap
node := public_platoon.RelationshipMap{
AvatarUrl: currentUser.Avatar,
Phone: currentUser.Phone,
Nickname: currentUser.Nickname,
Uid: currentUser.Id,
Pid: relations[i].RecommendUid,
Level: relations[i].Level1,
Position: relations[i].Position1,
SystemID: relations[i].Id,
Son: sonNodes,
}
m[node.Uid] = node
if fatherNode, isOk := m[relations[i].FatherUid1]; isOk {
fatherNode.Son = append(fatherNode.Son, node)
}
}

publicPlatoonBasicDb := implement.NewPublicPlatoonBasicSettingDb(db.Db)
publicPlatoonBasic, err := publicPlatoonBasicDb.PublicPlatoonBasicSettingGetOne()
if err != nil {
e.OutErr(c, e.ERR_DB_ORM, err)
return
}
now := time.Now()
if publicPlatoonBasic == nil {
publicPlatoonBasic = &model.PublicPlatoonBasicSetting{
IsOpen: 1,
OriginatorUid: 0,
SeveralTimes: 0,
SeveralRows: 0,
SystemPunishReplace: 0,
SystemPunishReplaceValue: 0,
IsSelfActiveGetTeamRevenue: 0,
CreateAt: now.Format("2006-01-02 15:04:05"),
UpdateAt: now.Format("2006-01-02 15:04:05"),
}
_, err1 := publicPlatoonBasicDb.PublicPlatoonBasicSettingInsert(publicPlatoonBasic)
if err1 != nil {
e.OutErr(c, e.ERR_DB_ORM, err1.Error())
return
}
}
var basicSetting public_platoon.GetPublicPlatoonBasicResp
basicSetting = public_platoon.GetPublicPlatoonBasicResp{
IsOpen: publicPlatoonBasic.IsOpen,
OriginatorUid: publicPlatoonBasic.OriginatorUid,
SeveralTimes: publicPlatoonBasic.SeveralTimes,
SeveralRows: publicPlatoonBasic.SeveralRows,
SystemPunishReplace: publicPlatoonBasic.SystemPunishReplace,
SystemPunishReplaceValue: publicPlatoonBasic.SystemPunishReplaceValue,
IsSelfActiveGetTeamRevenue: publicPlatoonBasic.IsSelfActiveGetTeamRevenue,
}

if uid == 0 {
uid = relations[0].Uid
}
var resp public_platoon.RelationshipMapResp
resp = public_platoon.RelationshipMapResp{
Map: res,
BasicSetting: basicSetting,
SearchUid: uid,
}
e.OutSuc(c, resp, nil)
}

// FindUserRelationshipMap
// @Summary 制度中心-公排管理-关系分布图(获取指定用户下级)
// @Tags 公排管理
// @Description 关系分布图(获取指定用户下级)
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req query public_platoon.FindUserRelationshipMapReq true "用户ID"
// @Success 200 {object} public_platoon.RelationshipMap "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/publicPlatoon/findUserRelationshipMap [get]
func FindUserRelationshipMap(c *gin.Context) {
var req *public_platoon.FindUserRelationshipMapReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}

RelationDb := implement.NewPublicPlatoonUserRelationDb(db.Db)
relations, err1 := RelationDb.PublicPlatoonUserRelationFindByUid(req.Uid)
if err1 != nil {
e.OutErr(c, e.ERR_DB_ORM, err1)
return
}

userDb := implement.NewUserDb(db.Db)
user, err3 := userDb.UserGetOneById(relations[0].Uid)
if err3 != nil {
e.OutErr(c, e.ERR_DB_ORM, err3.Error())
return
}
var son []public_platoon.RelationshipMap
res := public_platoon.RelationshipMap{
AvatarUrl: user.Avatar,
Phone: user.Phone,
Nickname: user.Nickname,
Uid: user.Id,
Pid: relations[0].RecommendUid,
Level: relations[0].Level1,
Position: relations[0].Position1,
SystemID: relations[0].Id,
Son: son,
}
for i := 1; i < len(relations); i++ {
user, err4 := userDb.UserGetOneById(relations[i].Uid)
if err4 != nil {
e.OutErr(c, e.ERR_DB_ORM, err4.Error())
return
}
node := public_platoon.RelationshipMap{
AvatarUrl: user.Avatar,
Phone: user.Phone,
Nickname: user.Nickname,
Uid: user.Id,
Pid: relations[i].RecommendUid,
Level: relations[i].Level1,
Position: relations[i].Position1,
SystemID: relations[i].Id,
Son: nil,
}
res.Son = append(res.Son, node)
}
e.OutSuc(c, res, nil)
}

// FindSubUserRelationshipMap
// @Summary 制度中心-公排管理-关系分布图(获取指定用户上级)
// @Tags 公排管理
// @Description 关系分布图(获取指定用户上级)
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req query public_platoon.FindSubUserRelationshipMapReq true "用户ID"
// @Success 200 {object} public_platoon.RelationshipMap "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/publicPlatoon/findSubUserRelationshipMap [get]
func FindSubUserRelationshipMap(c *gin.Context) {
var req *public_platoon.FindSubUserRelationshipMapReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}

RelationDb := implement.NewPublicPlatoonUserRelationDb(db.Db)
sonRelation, err1 := RelationDb.PublicPlatoonUserRelationGetOneByUid(req.Uid)
if err1 != nil {
e.OutErr(c, e.ERR_DB_ORM, err1)
return
}
parentRelation, err2 := RelationDb.PublicPlatoonUserRelationGetOneByUid(sonRelation.FatherUid1)
if err2 != nil {
e.OutErr(c, e.ERR_DB_ORM, err2)
return
}

userDb := implement.NewUserDb(db.Db)
son, err3 := userDb.UserGetOneById(sonRelation.Uid)
if err3 != nil {
e.OutErr(c, e.ERR_DB_ORM, err3.Error())
return
}

parent, err4 := userDb.UserGetOneById(parentRelation.Uid)
if err4 != nil {
e.OutErr(c, e.ERR_DB_ORM, err4.Error())
return
}

var sonNode []public_platoon.RelationshipMap
sonNode1 := public_platoon.RelationshipMap{
AvatarUrl: son.Avatar,
Phone: son.Phone,
Nickname: son.Nickname,
Uid: son.Id,
Pid: sonRelation.RecommendUid,
Level: sonRelation.Level1,
Position: sonRelation.Position1,
SystemID: sonRelation.Id,
Son: nil,
}
sonNode = append(sonNode, sonNode1)
res := public_platoon.RelationshipMap{
AvatarUrl: parent.Avatar,
Phone: parent.Phone,
Nickname: parent.Nickname,
Uid: parent.Id,
Pid: parentRelation.RecommendUid,
Level: parentRelation.Level1,
Position: parentRelation.Position1,
SystemID: parentRelation.Id,
Son: sonNode,
}
e.OutSuc(c, res, nil)
}

+ 28
- 3
app/md/institutional_management/public_platoon/md_public_platoon.go View File

@@ -21,7 +21,32 @@ type UpdatePublicPlatoonBasicReq struct {
}

type GetRelationshipMapReq struct {
Phone int `json:"phone"`
Uid int `json:"uid"`
InviteCode string `json:"invite_code"`
Phone int `json:"phone"`
Uid int64 `json:"uid"`
}

type RelationshipMap struct {
AvatarUrl string `json:"avatar_url"`
Phone string `json:"phone"`
Nickname string `json:"nickname"`
Uid int64 `json:"uid"`
Pid int64 `json:"pid"`
Level int `json:"level"`
Position int64 `json:"position"`
SystemID int `json:"system_id"`
Son []RelationshipMap `json:"son"`
}

type RelationshipMapResp struct {
Map RelationshipMap `json:"map"`
BasicSetting GetPublicPlatoonBasicResp `json:"basicSetting"`
SearchUid int64 `json:"searchUid"`
}

type FindUserRelationshipMapReq struct {
Uid int64 `json:"uid"`
}

type FindSubUserRelationshipMapReq struct {
Uid int64 `json:"uid"`
}

+ 2
- 0
app/router/router.go View File

@@ -62,6 +62,8 @@ func rInstitutionalManagement(r *gin.RouterGroup) { //制度管理
rPublicPlatoon.GET("/getBasic", public_platoon.GetPublicPlatoonBasic)
rPublicPlatoon.PUT("/updateBasic", public_platoon.UpdatePublicPlatoonBasic)
rPublicPlatoon.GET("/relationshipMap", public_platoon.GetRelationshipMap)
rPublicPlatoon.GET("/findUserRelationshipMap", public_platoon.FindUserRelationshipMap)
rPublicPlatoon.GET("/findSubUserRelationshipMap", public_platoon.FindSubUserRelationshipMap)
}
}



+ 99
- 0
docs/docs.go View File

@@ -183,6 +183,56 @@ const docTemplate = `{
}
}
}
},
"/api/publicPlatoon/relationshipMap": {
"get": {
"description": "关系分布图(获取)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"公排管理"
],
"summary": "制度中心-公排管理-关系分布图(获取)",
"parameters": [
{
"type": "string",
"description": "验证参数Bearer和token空格拼接",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "用户ID",
"name": "uid",
"in": "query"
},
{
"type": "string",
"description": "手机号",
"name": "phone",
"in": "query"
}
],
"responses": {
"200": {
"description": "具体数据",
"schema": {
"$ref": "#/definitions/public_platoon.RelationshipMapResp"
}
},
"400": {
"description": "具体错误",
"schema": {
"$ref": "#/definitions/md.Response"
}
}
}
}
}
},
"definitions": {
@@ -256,6 +306,55 @@ const docTemplate = `{
"type": "integer"
}
}
},
"public_platoon.RelationshipMap": {
"type": "object",
"properties": {
"avatar_url": {
"type": "string"
},
"level": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"phone": {
"type": "string"
},
"pid": {
"type": "integer"
},
"position": {
"type": "integer"
},
"son": {
"type": "array",
"items": {
"$ref": "#/definitions/public_platoon.RelationshipMap"
}
},
"system_id": {
"type": "integer"
},
"uid": {
"type": "integer"
}
}
},
"public_platoon.RelationshipMapResp": {
"type": "object",
"properties": {
"basicSetting": {
"$ref": "#/definitions/public_platoon.GetPublicPlatoonBasicResp"
},
"map": {
"$ref": "#/definitions/public_platoon.RelationshipMap"
},
"searchUid": {
"type": "integer"
}
}
}
},
"securityDefinitions": {


+ 99
- 0
docs/swagger.json View File

@@ -176,6 +176,56 @@
}
}
}
},
"/api/publicPlatoon/relationshipMap": {
"get": {
"description": "关系分布图(获取)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"公排管理"
],
"summary": "制度中心-公排管理-关系分布图(获取)",
"parameters": [
{
"type": "string",
"description": "验证参数Bearer和token空格拼接",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "用户ID",
"name": "uid",
"in": "query"
},
{
"type": "string",
"description": "手机号",
"name": "phone",
"in": "query"
}
],
"responses": {
"200": {
"description": "具体数据",
"schema": {
"$ref": "#/definitions/public_platoon.RelationshipMapResp"
}
},
"400": {
"description": "具体错误",
"schema": {
"$ref": "#/definitions/md.Response"
}
}
}
}
}
},
"definitions": {
@@ -249,6 +299,55 @@
"type": "integer"
}
}
},
"public_platoon.RelationshipMap": {
"type": "object",
"properties": {
"avatar_url": {
"type": "string"
},
"level": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"phone": {
"type": "string"
},
"pid": {
"type": "integer"
},
"position": {
"type": "integer"
},
"son": {
"type": "array",
"items": {
"$ref": "#/definitions/public_platoon.RelationshipMap"
}
},
"system_id": {
"type": "integer"
},
"uid": {
"type": "integer"
}
}
},
"public_platoon.RelationshipMapResp": {
"type": "object",
"properties": {
"basicSetting": {
"$ref": "#/definitions/public_platoon.GetPublicPlatoonBasicResp"
},
"map": {
"$ref": "#/definitions/public_platoon.RelationshipMap"
},
"searchUid": {
"type": "integer"
}
}
}
},
"securityDefinitions": {


+ 65
- 0
docs/swagger.yaml View File

@@ -47,6 +47,38 @@ definitions:
system_punish_replace_value:
type: integer
type: object
public_platoon.RelationshipMap:
properties:
avatar_url:
type: string
level:
type: integer
nickname:
type: string
phone:
type: string
pid:
type: integer
position:
type: integer
son:
items:
$ref: '#/definitions/public_platoon.RelationshipMap'
type: array
system_id:
type: integer
uid:
type: integer
type: object
public_platoon.RelationshipMapResp:
properties:
basicSetting:
$ref: '#/definitions/public_platoon.GetPublicPlatoonBasicResp'
map:
$ref: '#/definitions/public_platoon.RelationshipMap'
searchUid:
type: integer
type: object
host: localhost:4001
info:
contact:
@@ -167,6 +199,39 @@ paths:
summary: 制度中心-公排管理-公排基础设置(修改)
tags:
- 公排管理
/api/publicPlatoon/relationshipMap:
get:
consumes:
- application/json
description: 关系分布图(获取)
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: 用户ID
in: query
name: uid
type: string
- description: 手机号
in: query
name: phone
type: string
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/public_platoon.RelationshipMapResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 制度中心-公排管理-关系分布图(获取)
tags:
- 公排管理
securityDefinitions:
MasterID:
in: header


Loading…
Cancel
Save