You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
903 lines
24 KiB
903 lines
24 KiB
package customerApp
|
|
|
|
import (
|
|
"appPlatform/api/version1/customerform"
|
|
datacenter "appPlatform/api/version1/dataCenter"
|
|
"appPlatform/models/customerForm"
|
|
"appPlatform/models/modelAppPlatform"
|
|
"appPlatform/models/modelshr"
|
|
"appPlatform/overall"
|
|
"appPlatform/overall/publicmethod"
|
|
"encoding/json"
|
|
"fmt"
|
|
"sort"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-05-29 16:34:23
|
|
@ 功能: 鉴定当权人员是否有权限使用
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) AppJwtPower(c *gin.Context) {
|
|
var requestData JwtPower
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(102, err, c)
|
|
return
|
|
}
|
|
context, _ := c.Get(overall.MyContJwt)
|
|
var userCont modelshr.ManCont
|
|
userCont.GetLoginCont(context) //当前操作人
|
|
if userCont.Role != "" {
|
|
roleAry := strings.Split(userCont.Role, ",")
|
|
if len(roleAry) > 0 {
|
|
if publicmethod.IsInTrue[string]("1", roleAry) {
|
|
publicmethod.Result(0, true, c)
|
|
return
|
|
}
|
|
}
|
|
}
|
|
var custFormInfo modelAppPlatform.CustomerForm
|
|
err = custFormInfo.GetCont(map[string]interface{}{"`signCode`": requestData.Id}, "`id`", "`appManager`", "`appRoleManager`", "`appOrgMan`", "`userpermit`", "`postpermit`", "`orgpermit`")
|
|
if err != nil {
|
|
publicmethod.Result(0, false, c)
|
|
return
|
|
}
|
|
if requestData.Types == 2 {
|
|
//操作权限
|
|
var jwtIsTrue TreeJwtPower
|
|
if custFormInfo.AppRoleManager != "" {
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtRoleViewsIsTrue(custFormInfo.AppRoleManager, userCont.Role)
|
|
}
|
|
if custFormInfo.AppOrgMan != "" {
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtOrgViewsIsTrue(custFormInfo.OrgPermit, userCont.AdminOrg)
|
|
}
|
|
if custFormInfo.AppManager != "" {
|
|
userKey := strconv.FormatInt(userCont.Key, 10)
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtPeopleViewsIsTrue(custFormInfo.AppManager, userKey)
|
|
}
|
|
syncSeting.Wait()
|
|
if jwtIsTrue.Role || jwtIsTrue.Org || jwtIsTrue.People {
|
|
publicmethod.Result(0, true, c)
|
|
return
|
|
} else {
|
|
publicmethod.Result(0, false, c)
|
|
return
|
|
}
|
|
} else {
|
|
//可见范围
|
|
var jwtIsTrue TreeJwtPower
|
|
if custFormInfo.PostPermit != "" {
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtRoleViewsIsTrue(custFormInfo.PostPermit, userCont.Role)
|
|
}
|
|
if custFormInfo.OrgPermit != "" {
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtOrgViewsIsTrue(custFormInfo.OrgPermit, userCont.AdminOrg)
|
|
}
|
|
if custFormInfo.UserPermit != "" {
|
|
userKey := strconv.FormatInt(userCont.Key, 10)
|
|
syncSeting.Add(1)
|
|
go jwtIsTrue.JwtPeopleViewsIsTrue(custFormInfo.UserPermit, userKey)
|
|
}
|
|
syncSeting.Wait()
|
|
if jwtIsTrue.Role || jwtIsTrue.Org || jwtIsTrue.People {
|
|
publicmethod.Result(0, true, c)
|
|
return
|
|
} else {
|
|
publicmethod.Result(0, false, c)
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-05-30 08:10:32
|
|
@ 功能: 使用人鉴权
|
|
@ 参数
|
|
|
|
#jwpUser 使用人员
|
|
#userKEy 个人权限
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (t *TreeJwtPower) JwtPeopleViewsIsTrue(jwpUser, userKEy string) {
|
|
defer syncSeting.Done()
|
|
if jwpUser == "" {
|
|
t.People = true
|
|
} else {
|
|
if userKEy == "" {
|
|
t.People = false
|
|
} else {
|
|
jwtRoleAry := strings.Split(jwpUser, ",")
|
|
if publicmethod.IsInTrue[string](userKEy, jwtRoleAry) {
|
|
t.People = true
|
|
} else {
|
|
t.People = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-05-30 08:24:55
|
|
@ 功能: 鉴定行政组织授权
|
|
@ 参数
|
|
|
|
#jwpRoel 应用行政组织
|
|
#userRole 个人行政组织
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (t *TreeJwtPower) JwtOrgViewsIsTrue(jwpOrg string, userOrg int64) {
|
|
if jwpOrg == "" {
|
|
t.Org = true
|
|
} else {
|
|
if userOrg == 0 {
|
|
t.Org = false
|
|
} else {
|
|
var allOrg []int64
|
|
jwtOrgAry := strings.Split(jwpOrg, ",")
|
|
for _, v := range jwtOrgAry {
|
|
orgId, _ := strconv.ParseInt(v, 10, 64)
|
|
var sunOrg publicmethod.GetOrgAllParent
|
|
sunOrg.GetOrgSonAllId(orgId)
|
|
allOrg = append(allOrg, orgId)
|
|
allOrg = append(allOrg, sunOrg.Id...)
|
|
}
|
|
if publicmethod.IsInTrue[int64](userOrg, allOrg) {
|
|
t.Org = true
|
|
} else {
|
|
t.Org = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-05-30 08:10:32
|
|
@ 功能: 角色鉴权
|
|
@ 参数
|
|
|
|
#jwpRoel 应用权限
|
|
#userRole 个人权限
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (t *TreeJwtPower) JwtRoleViewsIsTrue(jwpRoel, userRole string) {
|
|
defer syncSeting.Done()
|
|
if jwpRoel == "" {
|
|
t.Role = true
|
|
} else {
|
|
if userRole == "" {
|
|
t.Role = false
|
|
} else {
|
|
jwtRoleAry := strings.Split(jwpRoel, ",")
|
|
userRoleAry := strings.Split(userRole, ",")
|
|
t.Role = false
|
|
for _, v := range userRoleAry {
|
|
if publicmethod.IsInTrue[string](v, jwtRoleAry) {
|
|
t.Role = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-10-31 13:33:16
|
|
@ 功能: 获取此应用的所有表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetAllAppTableForm(c *gin.Context) {
|
|
var requestData GainAppForm
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(102, requestData, c)
|
|
return
|
|
}
|
|
if requestData.Types == 0 {
|
|
requestData.Types = 1
|
|
}
|
|
if requestData.Page == 0 {
|
|
requestData.Page = 1
|
|
}
|
|
if requestData.PageSize == 0 {
|
|
if requestData.Types != 2 {
|
|
requestData.PageSize = 20
|
|
} else {
|
|
requestData.PageSize = 6
|
|
}
|
|
}
|
|
var appMenusList []SendAppForm
|
|
gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`state` = 1 AND `type` = 2 AND `isLock` = 2 AND `appkey` = ?", requestData.Id)
|
|
if requestData.Types == 2 {
|
|
gormDb = gormDb.Where("`wapIsShow` = ?", 1)
|
|
} else {
|
|
gormDb = gormDb.Where("`pcIsShow` = ?", 1)
|
|
}
|
|
var total int64
|
|
totalErr := gormDb.Count(&total).Error
|
|
if totalErr != nil {
|
|
total = 0
|
|
}
|
|
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
|
|
gormDb.Order("`sort` DESC").Find(&appMenusList)
|
|
for i, v := range appMenusList {
|
|
|
|
appMenusList[i].IdStr = strconv.FormatInt(v.Id, 10)
|
|
appMenusList[i].AppkStr = strconv.FormatInt(v.Appkey, 10)
|
|
appMenusList[i].ParentStr = strconv.FormatInt(v.Parent, 10)
|
|
appMenusList[i].CreaterStr = strconv.FormatInt(v.Creater, 10)
|
|
|
|
var tableFormInfo modelAppPlatform.CustomerFormView
|
|
err := tableFormInfo.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": v.Id}, "`id`", "`cfid`", "`time`", "`icon`", "`listjson`")
|
|
if err == nil {
|
|
if tableFormInfo.ListJson != "" {
|
|
appMenusList[i].IsList = true
|
|
} else {
|
|
appMenusList[i].IsList = false
|
|
}
|
|
appMenusList[i].VersionId = strconv.FormatInt(tableFormInfo.Id, 10)
|
|
appMenusList[i].TableId = strconv.FormatInt(tableFormInfo.CfId, 10)
|
|
var usInfo modelshr.PersonArchives //获取创建人
|
|
usInfo.GetCont(map[string]interface{}{"`key`": v.Creater}, "`name`", "`number`")
|
|
appMenusList[i].Founder = fmt.Sprintf("%v(%v)", usInfo.Name, usInfo.Number)
|
|
appMenusList[i].CreateDate = publicmethod.UnixTimeToDay(tableFormInfo.CreaterTime, 14)
|
|
appMenusList[i].Icon = tableFormInfo.Icon
|
|
}
|
|
}
|
|
|
|
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(appMenusList)), appMenusList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-10-31 15:38:32
|
|
@ 功能: 计算待办事宜,已办事宜,我创建的,抄送我的数量
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) CalculateQuantityOption(c *gin.Context) {
|
|
var requestData AppIdType
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(102, err, c)
|
|
return
|
|
}
|
|
context, _ := c.Get(overall.MyContJwt)
|
|
var userCont modelshr.ManCont
|
|
userCont.GetLoginCont(context) //当前操作人
|
|
var taskItem []modelAppPlatform.Appmenus
|
|
gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`isLock` = 1 AND `type` = 2 AND `state` = 1 AND `appkey` = ?", requestData.Id)
|
|
if requestData.Types == 2 {
|
|
gormDb = gormDb.Where("`wapIsShow` = 1")
|
|
} else {
|
|
gormDb = gormDb.Where("`pcIsShow` = 1")
|
|
}
|
|
gormDb.Order("`sort` ASC").Find(&taskItem)
|
|
var StatisTaskPage StatisTaskCount
|
|
StatisTaskPage.userCont = userCont
|
|
for _, v := range taskItem {
|
|
StatisTaskPage.Types = v.IsMain
|
|
syncSeting.Add(1)
|
|
go StatisTaskPage.GetTotalPAge(requestData.Id, v.IsMain)
|
|
}
|
|
syncSeting.Wait()
|
|
var sendData []SendStatisInfo
|
|
for _, v := range taskItem {
|
|
var sendInfo SendStatisInfo
|
|
sendInfo.Lable = v.Label
|
|
sendInfo.Icon = v.Svg
|
|
sendInfo.Sort = v.IsMain
|
|
switch v.IsMain {
|
|
case 1: //待办事宜
|
|
sendInfo.Count = StatisTaskPage.ToDoCount
|
|
case 2: //已办事宜
|
|
sendInfo.Count = StatisTaskPage.AlreadyDoneCount
|
|
case 5: //草稿箱
|
|
sendInfo.Count = StatisTaskPage.DraftsCount
|
|
case 3: //抄送我的
|
|
sendInfo.Count = StatisTaskPage.CopyForCount
|
|
default: //我的请求
|
|
sendInfo.Count = StatisTaskPage.MyCreateCount
|
|
}
|
|
// if i < 4 {
|
|
// sendData = append(sendData, sendInfo)
|
|
// }
|
|
sendData = append(sendData, sendInfo)
|
|
}
|
|
sort.Slice(sendData, func(i, j int) bool {
|
|
return sendData[i].Sort < sendData[j].Sort
|
|
})
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-10-31 15:48:44
|
|
@ 功能: 协程处理数据
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (s *StatisTaskCount) GetTotalPAge(appk string, types int) {
|
|
defer syncSeting.Done()
|
|
// fmt.Printf("s.Types:%v\n", types)
|
|
gormDb := overall.CONSTANT_DB_CustomerForm.Model(&customerForm.RunFlowTask{}).Select("`id`").Where("appKey = ?", appk)
|
|
gormDbEs := overall.CONSTANT_DB_CustomerForm.Model(&customerForm.TaskRecord{}).Select("`id`").Where("appKey = ?", appk)
|
|
switch types {
|
|
case 1: //待办事宜
|
|
gormDb = gormDb.Where("`status` = 3 AND FIND_IN_SET(?,`next_executor`)", s.userCont.Key)
|
|
|
|
case 2: //已办事宜
|
|
gormDb = gormDb.Where("`status` IN (2,3,4) AND FIND_IN_SET(?,`participants`) AND NOT FIND_IN_SET(?,`next_executor`) AND `creater` <> ?", s.userCont.Key, s.userCont.Key, s.userCont.Key)
|
|
case 5: //草稿箱
|
|
gormDb = gormDb.Where("`status` = 1 AND `creater` = ?", s.userCont.Key)
|
|
gormDbEs = gormDbEs.Where("`status` = 1 AND `creater` = ?", s.userCont.Key)
|
|
case 3: //抄送我的
|
|
gormDb = gormDb.Where("`status` IN (2,3,4) AND FIND_IN_SET(?,`makeCopy`)", s.userCont.Key)
|
|
default: //我的请求
|
|
// gormDb = gormDb.Where("`status` IN (1,2,3,4) AND `creater` = ?", s.userCont.Key)
|
|
gormDbEs = gormDbEs.Where("`status` IN (1,2,3,4) AND `creater` = ?", s.userCont.Key)
|
|
}
|
|
var total int64
|
|
var totales int64
|
|
gormDb.Count(&total)
|
|
gormDbEs.Count(&totales)
|
|
switch types {
|
|
case 1: //待办事宜
|
|
s.ToDoCount = total
|
|
case 2: //已办事宜
|
|
s.AlreadyDoneCount = total
|
|
case 5: //草稿箱
|
|
s.DraftsCount = totales
|
|
case 3: //抄送我的
|
|
s.CopyForCount = total
|
|
default: //我的请求
|
|
s.MyCreateCount = totales
|
|
}
|
|
} /**
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-11-08 13:34:24
|
|
@ 功能: 根据分组获取App列表
|
|
@ 参数
|
|
#
|
|
@ 返回值
|
|
#
|
|
@ 方法原型
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetAppList(c *gin.Context) {
|
|
var requestData publicmethod.PublicId
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(102, err, c)
|
|
return
|
|
}
|
|
var list []SendAppInfo
|
|
overall.CONSTANT_DB_AppPlatform.Where("`classify` = 3 AND `states` = 1 AND `groupid` = ?", requestData.Id).Limit(10).Order("`creater_time` DESC").Find(&list)
|
|
for i, v := range list {
|
|
list[i].SignCodeStr = strconv.FormatInt(v.SignCode, 10)
|
|
list[i].GroupIdStr = strconv.FormatInt(v.Groupid, 10)
|
|
list[i].FlowkeyStr = strconv.FormatInt(v.FlowKey, 10)
|
|
}
|
|
publicmethod.Result(0, list, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-11-12 13:46:28
|
|
@ 功能: 获取分组及App
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GetGroupAndApp(c *gin.Context) {
|
|
var appGroup []modelAppPlatform.CustomerFormGroup
|
|
overall.CONSTANT_DB_AppPlatform.Where("`state` = 1").Find(&appGroup)
|
|
var sendList []SendGroupAppList
|
|
if len(appGroup) < 1 {
|
|
publicmethod.Result(0, sendList, c)
|
|
return
|
|
}
|
|
var xieChengchuli XiechengApp
|
|
for _, v := range appGroup {
|
|
syncSeting.Add(1)
|
|
go xieChengchuli.GainAppList(v.Id)
|
|
}
|
|
syncSeting.Wait()
|
|
for _, v := range appGroup {
|
|
var sendInfo SendGroupAppList
|
|
sendInfo.Id = v.Id //
|
|
sendInfo.Title = v.Title //分组名称
|
|
sendInfo.Superior = v.Superior //父级
|
|
sendInfo.Sort = v.Sort //排序
|
|
sendInfo.Ordid = v.Ordid //归属行政组织
|
|
sendInfo.State = v.State //显示状态(1:启用;2:禁用,3:删除)
|
|
sendInfo.Time = v.Time //创建时间"`
|
|
sendInfo.Icon = v.Icon //图标
|
|
for _, vv := range xieChengchuli.Child {
|
|
if v.Id == vv.GroupKey {
|
|
sendInfo.Child = vv.List
|
|
}
|
|
}
|
|
sendList = append(sendList, sendInfo)
|
|
}
|
|
sort.Slice(sendList, func(i, j int) bool {
|
|
return sendList[i].Sort < sendList[j].Sort
|
|
})
|
|
publicmethod.Result(0, sendList, c)
|
|
}
|
|
|
|
func (x *XiechengApp) GainAppList(id int64) {
|
|
defer syncSeting.Done()
|
|
var appList []AppListCont
|
|
overall.CONSTANT_DB_AppPlatform.Where("`classify` = 3 AND `states` = 1 AND `groupid` = ?", id).Find(&appList)
|
|
if len(appList) > 0 {
|
|
for i, v := range appList {
|
|
appList[i].SignCodeStr = strconv.FormatInt(v.SignCode, 10)
|
|
}
|
|
var childInfo XiechengAppEs
|
|
childInfo.GroupKey = id
|
|
childInfo.List = appList
|
|
// for _,v := range appList {}
|
|
x.Child = append(x.Child, childInfo)
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-11-27 08:41:06
|
|
@ 功能: 按菜单顶级分组和表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GainMenuGroupForm(c *gin.Context) {
|
|
var requestData AppIdType
|
|
c.ShouldBindJSON(&requestData)
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1021, requestData, c)
|
|
return
|
|
}
|
|
var topIdAry []modelAppPlatform.Appmenus
|
|
gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Select("`id`,`label`").Where("`state` = 1 AND `type` = 1 AND `isLock` = 2 AND `appkey` = ? AND `parent` = ?", requestData.Id, requestData.Id)
|
|
if requestData.Types == 2 {
|
|
gormDb = gormDb.Where("`wapIsShow` = ?", 1)
|
|
} else {
|
|
gormDb = gormDb.Where("`pcIsShow` = ?", 1)
|
|
}
|
|
err := gormDb.Order("`sort` DESC").Find(&topIdAry).Error
|
|
if err != nil || len(topIdAry) < 1 {
|
|
publicmethod.Result(10001, topIdAry, c)
|
|
return
|
|
}
|
|
appKey, _ := strconv.ParseInt(requestData.Id, 10, 64)
|
|
var appMenu AppMenuList
|
|
for _, v := range topIdAry {
|
|
syncSeting.Add(1)
|
|
go appMenu.AppMenuContent(appKey, v)
|
|
}
|
|
syncSeting.Wait()
|
|
var sendData []MenuGroupList
|
|
for _, sv := range appMenu.List {
|
|
var sendInfo MenuGroupList
|
|
sendInfo.MenuAppId = sv.MenuAppId
|
|
sendInfo.MenuAppTitle = sv.MenuAppTitle
|
|
sendInfo.List = append(sendInfo.List, GainTableList(sv.SunId, requestData.Types)...)
|
|
sendData = append(sendData, sendInfo)
|
|
}
|
|
|
|
var otherIdAry []SendAppForm
|
|
gormDbOther := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Select("`id`,`label`").Where("`state` = 1 AND `type` = 2 AND `isLock` = 2 AND `appkey` = ? AND `parent` = ?", requestData.Id, requestData.Id)
|
|
if requestData.Types == 2 {
|
|
gormDbOther = gormDbOther.Where("`wapIsShow` = ?", 1)
|
|
} else {
|
|
gormDbOther = gormDbOther.Where("`pcIsShow` = ?", 1)
|
|
}
|
|
gormDbOther.Order("`sort` DESC").Find(&otherIdAry)
|
|
if len(otherIdAry) > 0 {
|
|
for i, v := range otherIdAry {
|
|
otherIdAry[i].IdStr = strconv.FormatInt(v.Id, 10)
|
|
otherIdAry[i].AppkStr = strconv.FormatInt(v.Appkey, 10)
|
|
otherIdAry[i].ParentStr = strconv.FormatInt(v.Parent, 10)
|
|
otherIdAry[i].CreaterStr = strconv.FormatInt(v.Creater, 10)
|
|
var tableFormInfo modelAppPlatform.CustomerFormView
|
|
err := tableFormInfo.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": v.Id}, "`id`", "`cfid`", "`time`", "`icon`", "`listjson`")
|
|
if err == nil {
|
|
if tableFormInfo.ListJson != "" {
|
|
otherIdAry[i].IsList = true
|
|
} else {
|
|
otherIdAry[i].IsList = false
|
|
}
|
|
otherIdAry[i].VersionId = strconv.FormatInt(tableFormInfo.Id, 10)
|
|
otherIdAry[i].TableId = strconv.FormatInt(tableFormInfo.CfId, 10)
|
|
var usInfo modelshr.PersonArchives //获取创建人
|
|
usInfo.GetCont(map[string]interface{}{"`key`": v.Creater}, "`name`", "`number`")
|
|
otherIdAry[i].Founder = fmt.Sprintf("%v(%v)", usInfo.Name, usInfo.Number)
|
|
otherIdAry[i].CreateDate = publicmethod.UnixTimeToDay(tableFormInfo.CreaterTime, 14)
|
|
otherIdAry[i].Icon = tableFormInfo.Icon
|
|
}
|
|
}
|
|
var sendInfo MenuGroupList
|
|
sendInfo.MenuAppId = requestData.Id
|
|
sendInfo.MenuAppTitle = "默认分组"
|
|
sendInfo.List = append(sendInfo.List, otherIdAry...)
|
|
sendData = append(sendData, sendInfo)
|
|
}
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-11-27 10:22:16
|
|
@ 功能: 获取操作表
|
|
*/
|
|
func GainTableList(parent []int64, types int) []SendAppForm {
|
|
var appMenusList []SendAppForm
|
|
gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Appmenus{}).Where("`state` = 1 AND `type` = 2 AND `isLock` = 2 AND `parent` IN ?", parent)
|
|
if types == 2 {
|
|
gormDb = gormDb.Where("`wapIsShow` = ?", 1)
|
|
} else {
|
|
gormDb = gormDb.Where("`pcIsShow` = ?", 1)
|
|
}
|
|
gormDb.Order("`sort` DESC").Find(&appMenusList)
|
|
for i, v := range appMenusList {
|
|
|
|
appMenusList[i].IdStr = strconv.FormatInt(v.Id, 10)
|
|
appMenusList[i].AppkStr = strconv.FormatInt(v.Appkey, 10)
|
|
appMenusList[i].ParentStr = strconv.FormatInt(v.Parent, 10)
|
|
appMenusList[i].CreaterStr = strconv.FormatInt(v.Creater, 10)
|
|
|
|
var tableFormInfo modelAppPlatform.CustomerFormView
|
|
err := tableFormInfo.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": v.Id}, "`id`", "`cfid`", "`time`", "`icon`", "`listjson`")
|
|
if err == nil {
|
|
if tableFormInfo.ListJson != "" {
|
|
appMenusList[i].IsList = true
|
|
} else {
|
|
appMenusList[i].IsList = false
|
|
}
|
|
appMenusList[i].VersionId = strconv.FormatInt(tableFormInfo.Id, 10)
|
|
appMenusList[i].TableId = strconv.FormatInt(tableFormInfo.CfId, 10)
|
|
var usInfo modelshr.PersonArchives //获取创建人
|
|
usInfo.GetCont(map[string]interface{}{"`key`": v.Creater}, "`name`", "`number`")
|
|
appMenusList[i].Founder = fmt.Sprintf("%v(%v)", usInfo.Name, usInfo.Number)
|
|
appMenusList[i].CreateDate = publicmethod.UnixTimeToDay(tableFormInfo.CreaterTime, 14)
|
|
appMenusList[i].Icon = tableFormInfo.Icon
|
|
}
|
|
}
|
|
return appMenusList
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-11-27 09:27:51
|
|
@ 功能: 获取所有子类
|
|
*/
|
|
func (a *AppMenuList) AppMenuContent(appKey int64, menuInfo modelAppPlatform.Appmenus) {
|
|
defer syncSeting.Done()
|
|
var menuCont AppMenuListInfo
|
|
menuCont.MenuAppId = strconv.FormatInt(menuInfo.Id, 10)
|
|
menuCont.MenuAppTitle = menuInfo.Label
|
|
var menuSun publicmethod.GetOrgAllParent
|
|
menuSun.GetAppMenuSun(appKey, menuInfo.Id)
|
|
menuCont.SunId = append(menuCont.SunId, menuInfo.Id)
|
|
menuCont.SunId = append(menuCont.SunId, menuSun.Id...)
|
|
|
|
a.List = append(a.List, menuCont)
|
|
fmt.Printf("获取所有子类:%v\n", a)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-01-03 14:42:36
|
|
@ 功能: 获取有源数据表字段
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GainDataStorceAllField(c *gin.Context) {
|
|
var requestData DatabaseConfig
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.SqlType == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.TableName == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.Host == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.Port == 0 {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.User == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
if requestData.Password == "" {
|
|
publicmethod.Result(200, err, c)
|
|
return
|
|
}
|
|
var sqlDb datacenter.DataBastType
|
|
sqlDb.Type = requestData.SqlType
|
|
sqlDb.Ip = requestData.Host
|
|
sqlDb.DataBaseName = requestData.Name
|
|
sqlDb.Port = requestData.Port
|
|
sqlDb.UserName = requestData.User
|
|
sqlDb.Pwd = requestData.Password
|
|
sqlDborm, err := sqlDb.StartDataBast()
|
|
if err != nil {
|
|
sqlDborm, err = datacenter.GainDataStorce(requestData.Id)
|
|
if err != nil {
|
|
publicmethod.Result(0, sqlDb, c)
|
|
return
|
|
}
|
|
}
|
|
fieldList, err := customerform.GainFormAllField(sqlDborm, requestData.TableName)
|
|
if err != nil {
|
|
publicmethod.Result(0, err, c)
|
|
return
|
|
}
|
|
publicmethod.Result(0, fieldList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-02-18 09:42:49
|
|
@ 功能: 获取所有自定义App
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GaveAllApp(c *gin.Context) {
|
|
var list []modelAppPlatform.CustomerForm
|
|
overall.CONSTANT_DB_AppPlatform.Where("`classify` = 3 AND `states` = 1").Find(&list)
|
|
var sendData []DiaobanTable
|
|
if len(list) > 0 {
|
|
for _, v := range list {
|
|
var sendInfo DiaobanTable
|
|
sendInfo.AppId = strconv.FormatInt(v.Id, 10)
|
|
sendInfo.AppName = v.Name
|
|
sendInfo.List = GetAppForm(v.SignCode, 2)
|
|
sendInfo.SignCode = strconv.FormatInt(v.SignCode, 10)
|
|
sendData = append(sendData, sendInfo)
|
|
}
|
|
}
|
|
publicmethod.Result(0, sendData, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-02-18 10:20:51
|
|
@ 功能: 获取流程表单
|
|
*/
|
|
func GetAppForm(appId int64, types int) (tableForm []TableInfo) {
|
|
var formVersion []modelAppPlatform.CustomerFormView
|
|
overall.CONSTANT_DB_AppPlatform.Where("`classify` = ? AND `states` = 1 AND `groupid` = ?", types, appId).Find(&formVersion)
|
|
for _, v := range formVersion {
|
|
if v.MastesFormJson != "" {
|
|
var formJsonCont customerform.CustomerFormMaster
|
|
json.Unmarshal([]byte(v.MastesFormJson), &formJsonCont)
|
|
var tableFormInfo TableInfo
|
|
tableFormInfo.SqlType = formJsonCont.Form.DataSourceConfig.DSN.SqlType
|
|
tableFormInfo.Ip = formJsonCont.Form.DataSourceConfig.DSN.Ip
|
|
tableFormInfo.DataBaseName = formJsonCont.Form.DataSourceConfig.DSN.DataBaseName
|
|
tableFormInfo.Port = formJsonCont.Form.DataSourceConfig.DSN.Port
|
|
tableFormInfo.UserName = formJsonCont.Form.DataSourceConfig.DSN.UserName
|
|
tableFormInfo.Password = formJsonCont.Form.DataSourceConfig.DSN.Password
|
|
tableFormInfo.DataSource = formJsonCont.Form.DataSource //是不是引用外部数据源
|
|
tableFormInfo.TableName = v.Name //数据表名称
|
|
tableFormInfo.TableKey = strconv.FormatInt(v.SignCode, 10)
|
|
tableFormInfo.SourceId = formJsonCont.Form.DataSourceConfig.Id
|
|
tableForm = append(tableForm, tableFormInfo)
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-02-18 13:28:32
|
|
@ 功能: 获取已经设定好的参数
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) GinTeamRule(c *gin.Context) {
|
|
var dbSetupInfo customerForm.DiaoBanSetup
|
|
overall.CONSTANT_DB_AppPlatform.First(&dbSetupInfo)
|
|
publicmethod.Result(0, dbSetupInfo, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2025-02-18 13:52:46
|
|
@ 功能: 设定取值
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) SetupRulerForm(c *gin.Context) {
|
|
var requestData TableFormDnsConfig
|
|
c.ShouldBindJSON(&requestData)
|
|
overall.CONSTANT_DB_AppPlatform.Exec("TRUNCATE diaoBanSetup")
|
|
var diaoIno customerForm.DiaoBanSetup
|
|
diaoIno.Appid, _ = strconv.ParseInt(requestData.AppId, 10, 64) //归属哪个app"`
|
|
diaoIno.Source = requestData.DataSource //是否引用数据源(yes ; no)"`
|
|
diaoIno.Ip = requestData.Ip //数据源地址"`
|
|
diaoIno.DataBaseName = requestData.DataBaseName //是否引用数据源(yes ; no)"`
|
|
diaoIno.SqlType = requestData.SqlType //数据库类型"`:数据表名称"`
|
|
diaoIno.UserName = requestData.UserName //';comment:数据库用户名"`
|
|
diaoIno.Pwd = requestData.Password //数据库密码"`
|
|
diaoIno.Time = time.Now().Unix() //not null;comment:创建时间"`
|
|
diaoIno.TableKey = requestData.TableKey
|
|
diaoIno.TableNames = requestData.TableName
|
|
diaoIno.SourceId = requestData.SourceId
|
|
diaoIno.Port = requestData.Port
|
|
overall.CONSTANT_DB_AppPlatform.Create(&diaoIno)
|
|
publicmethod.Result(0, requestData, c)
|
|
}
|
|
|