|
|
@@ -9,6 +9,8 @@ import (
|
|
|
"html/template"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
+ "strings"
|
|
|
+ "github.com/pkg/errors"
|
|
|
)
|
|
|
|
|
|
// _Sidebar
|
|
|
@@ -982,7 +984,6 @@ func System_GetDomain(c *entitys.CtrlContext) {
|
|
|
// @Failure 403 :id is empty
|
|
|
func System_AddDomainMenu(c *entitys.CtrlContext) {
|
|
|
var paramObj0 struct {
|
|
|
-
|
|
|
//域名ID
|
|
|
DomainId string `json:"domain_id"`
|
|
|
//菜单
|
|
|
@@ -1221,6 +1222,240 @@ func System_AddRoleMenu(c *entitys.CtrlContext) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// _FindAreaPage
|
|
|
+// @Title _FindAreaPage
|
|
|
+// @Description 获取区域管理分页数
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_FindAreaPage(c *entitys.CtrlContext) {
|
|
|
+ page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
|
|
|
+ rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
|
|
|
+
|
|
|
+ var paramMap = make(map[string]interface{})
|
|
|
+ paramMap["page"] = page
|
|
|
+ paramMap["rows"] = rows
|
|
|
+ paramMap["del_flag"] = c.Ctx.Query("del_flag")
|
|
|
+ paramMap["id"] = c.Ctx.Query("id")
|
|
|
+ paramMap["name"] = c.Ctx.Query("name")
|
|
|
+ paramMap["parent"] = c.Ctx.Query("parent")
|
|
|
+ paramMap["inheritance"] = c.Ctx.Query("inheritance")
|
|
|
+ paramMap["temp_id"] = c.Ctx.Query("temp_id")
|
|
|
+ paramMap["manager"] = c.Ctx.Query("manager")
|
|
|
+ paramMap["org_id"] = c.Ctx.Query("org_id")
|
|
|
+ paramMap["org_name"] = c.Ctx.Query("org_name")
|
|
|
+ paramMap["org_inheritance"] = c.Ctx.Query("org_inheritance")
|
|
|
+ paramMap["manager_name"] = c.Ctx.Query("manager_name")
|
|
|
+
|
|
|
+ result, err := sysutils.PageSearch(c.Db, "system", "find_area_page", "sys_user", paramMap)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _AddArea
|
|
|
+// @Title _AddArea
|
|
|
+// @Description 添加区域
|
|
|
+// @Param name string false "区域名称"
|
|
|
+// @Param parent string false "父节点"
|
|
|
+// @Param inheritance string false "继承关系"
|
|
|
+// @Param org_id string false "组织ID"
|
|
|
+// @Param temp_id string false "模板ID"
|
|
|
+// @Param temp_value string false "模板内容"
|
|
|
+// @Param manager string false "负责人"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_AddArea(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var bean sysmodel.SysArea
|
|
|
+ if err = c.Ctx.BindJSON(&bean); err != nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+
|
|
|
+ bean.Id = sysutils.NewUUID()
|
|
|
+ bean.DelFlag = 0
|
|
|
+ bean.CreateBy = user_id
|
|
|
+ bean.LastUpdateBy = user_id
|
|
|
+ bean.CreateTime = sysmodel.NowLocal()
|
|
|
+ bean.LastUpdateTime = time.Now().UnixNano()
|
|
|
+ if bean.Parent != "" {
|
|
|
+ parentNodes := sysmodel.SysArea{}
|
|
|
+ _, err := c.Db.SqlMapClient("selectone_sys_area", map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
|
|
|
+ } else {
|
|
|
+ bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = c.Db.InsertOne(&bean)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DelArea
|
|
|
+// @Title _DelArea
|
|
|
+// @Description 删除区域
|
|
|
+// @Param ids string false "用户ID"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_DelArea(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var bean = &models.SysArea{}
|
|
|
+ idArr := make([]string, 0)
|
|
|
+ if ids := c.Ctx.Query("ids"); ids == "" {
|
|
|
+ err = c.Ctx.BindJSON(&idArr)
|
|
|
+ if err != nil || len(idArr) <= 0 {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ idArr = strings.Split(ids, ",")
|
|
|
+ }
|
|
|
+ session := c.Db.NewSession()
|
|
|
+ defer session.Close()
|
|
|
+ if err := session.Begin(); err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ _, err = session.Table(bean).Where("del_flag=1").In("id", idArr).Delete(bean)
|
|
|
+ if err == nil {
|
|
|
+ _, err = session.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 1})
|
|
|
+ }
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _RecoverArea
|
|
|
+// @Title _RecoverArea
|
|
|
+// @Description 恢复区域
|
|
|
+// @Param ids string false "区域ID"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_RecoverArea(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var bean = &models.SysArea{}
|
|
|
+ idArr := make([]string, 0)
|
|
|
+ if ids := c.Ctx.Query("ids"); ids == "" {
|
|
|
+ err = c.Ctx.BindJSON(&idArr)
|
|
|
+ if err != nil || len(idArr) <= 0 {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ idArr = strings.Split(ids, ",")
|
|
|
+ }
|
|
|
+ _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _UpdateArea
|
|
|
+// @Title _UpdateArea
|
|
|
+// @Description 修改区域
|
|
|
+// @Param name string false "区域名称"
|
|
|
+// @Param parent string false "父节点"
|
|
|
+// @Param inheritance string false "继承关系"
|
|
|
+// @Param org_id string false "组织ID"
|
|
|
+// @Param temp_id string false "模板ID"
|
|
|
+// @Param temp_value string false "模板内容"
|
|
|
+// @Param manager string false "负责人"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_UpdateArea(c *entitys.CtrlContext) {
|
|
|
+ var err error
|
|
|
+ var bean sysmodel.SysArea
|
|
|
+ if err = c.Ctx.BindJSON(&bean); err != nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ user_id := c.Ctx.GetString("user_id")
|
|
|
+ exist, err := c.Db.SqlMapClient("selectone_sys_area", map[string]interface{}{"id": bean.Id}).Exist()
|
|
|
+ if !exist && err == nil {
|
|
|
+ err = errors.New("record does not exist")
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+ bean.LastUpdateBy = user_id
|
|
|
+ bean.LastUpdateTime = time.Now().UnixNano()
|
|
|
+ if bean.Parent != "" {
|
|
|
+ parentNodes := sysmodel.SysArea{}
|
|
|
+ _, err := c.Db.SqlMapClient("selectone_sys_area", map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if parentNodes.Inheritance == "" {
|
|
|
+ parentNodes.Inheritance = "|"
|
|
|
+ }
|
|
|
+ bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
|
|
|
+ } else {
|
|
|
+ bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _GetArea
|
|
|
+// @Title _GetArea
|
|
|
+// @Description 根据区域ID获取区域信息
|
|
|
+// @Param id string false "区域ID"
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_GetArea(c *entitys.CtrlContext) {
|
|
|
+ id := c.Ctx.Query("id")
|
|
|
+
|
|
|
+ var area sysmodel.SysArea
|
|
|
+ exist, err := c.Db.SqlMapClient("selectone_sys_area", map[string]interface{}{"id": id}).Get(&area)
|
|
|
+ if !exist && err == nil {
|
|
|
+ err = errors.New("record does not exist")
|
|
|
+ }
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _GetAreaTree
|
|
|
+// @Title _GetAreaTree
|
|
|
+// @Description 获取区域管理树
|
|
|
+// @Success 200 {object} Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_GetAreaTree(c *entitys.CtrlContext) {
|
|
|
+ paramMap_i_t := map[string]interface{}{"sort": "name"}
|
|
|
+ result, err := sysutils.TreeSearch(c.Db, "system", "get_area_tree", "sys_area", paramMap_i_t)
|
|
|
+
|
|
|
+ if err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func __none_func_system__(params ...interface{}) bool {
|
|
|
return true
|
|
|
}
|