SystemController.go 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352
  1. package partial
  2. import (
  3. "errors"
  4. "fmt"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  7. sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
  8. sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
  9. "html/template"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. // _Sidebar
  15. // @Title _Sidebar
  16. // @Description 获取导航菜单
  17. // @Param user string false "用户id"
  18. // @Success 200 {object} Account
  19. // @Failure 403 :id is empty
  20. func System_Sidebar(c *entitys.CtrlContext) {
  21. //System_GetMenuTree(c)
  22. _type := c.Ctx.DefaultQuery("type", "")
  23. type_op := c.Ctx.DefaultQuery("type_op", "")
  24. hidden := c.Ctx.DefaultQuery("hidden", "")
  25. name := c.Ctx.DefaultQuery("name", "")
  26. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  27. tk, _ := c.Ctx.Get("token")
  28. user := tk.(*entitys.Token)
  29. op := template.HTML(type_op)
  30. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
  31. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user.UserId, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  32. //如果是管理员
  33. var paramMap_i_t map[string]interface{}
  34. if exist {
  35. paramMap_i_t = map[string]interface{}{"user_id": "", "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  36. } else {
  37. paramMap_i_t = map[string]interface{}{"user_id": user.UserId, "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  38. }
  39. result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
  40. if err == nil {
  41. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  42. } else {
  43. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  44. }
  45. }
  46. // _GetMenuTree
  47. // @Title _GetMenuTree
  48. // @Description 获取系统菜单
  49. // @Param user string false "用户id"
  50. // @Success 200 {object} Account
  51. // @Failure 403 :id is empty
  52. func System_GetMenuTree(c *entitys.CtrlContext) {
  53. _type := c.Ctx.DefaultQuery("type", "")
  54. type_op := c.Ctx.DefaultQuery("type_op", "")
  55. hidden := c.Ctx.DefaultQuery("hidden", "")
  56. name := c.Ctx.DefaultQuery("name", "")
  57. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  58. op := template.HTML(type_op)
  59. paramMap_i_t := map[string]interface{}{"user_id": "", "name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden}
  60. result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t)
  61. if err == nil {
  62. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  63. } else {
  64. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  65. }
  66. }
  67. // _GetDomainTree
  68. // @Title _GetDomainTree
  69. // @Description 获取域树
  70. // @Success 200 {object} Account
  71. // @Failure 403 :id is empty
  72. func System_GetDomainTree(c *entitys.CtrlContext) {
  73. del_flag := c.Ctx.DefaultQuery("del_flag", "")
  74. paramMap_i_t := map[string]interface{}{"sort": "name", "del_flag": del_flag}
  75. result, err := sysutils.TreeSearch(c.Db, "system", "get_domain_tree", "sys_domain", paramMap_i_t)
  76. if err == nil {
  77. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  78. } else {
  79. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  80. }
  81. }
  82. // _FindUserPage
  83. // @Title _FindUserPage
  84. // @Description 获取用户分页数
  85. // @Success 200 {object} Account
  86. // @Failure 403 :id is empty
  87. func System_FindUserPage(c *entitys.CtrlContext) {
  88. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  89. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  90. name := c.Ctx.DefaultQuery("name", "")
  91. login_id := c.Ctx.DefaultQuery("login_id", "")
  92. org_id := c.Ctx.DefaultQuery("org_id", "")
  93. cn_org_id := c.Ctx.DefaultQuery("cn_org_id", "")
  94. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_id, "org_id": org_id, "cn_org_id": cn_org_id}
  95. result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t)
  96. if err != nil {
  97. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  98. return
  99. }
  100. //type Role struct {
  101. // RoleName string `json:"role_name"`
  102. // UserRole string `json:"user_role"`
  103. //}
  104. ////获取用户角色
  105. //users := result.Content.([]map[string]interface{})
  106. //for i, user := range users {
  107. // roles := []Role{}
  108. // err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles)
  109. // if err != nil {
  110. // fmt.Println("----", err.Error())
  111. // continue
  112. // }
  113. // users[i]["user_role"] = roles[0].UserRole
  114. // users[i]["role_name"] = roles[0].RoleName
  115. //}
  116. //
  117. //result.Content = users
  118. if err == nil {
  119. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  120. } else {
  121. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  122. }
  123. }
  124. // _GetOrgTree
  125. // @Title _GetOrgTree
  126. // @Description 获取组织架构树
  127. // @Success 200 {object} Account
  128. // @Failure 403 :id is empty
  129. func System_GetOrgTree(c *entitys.CtrlContext) {
  130. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
  131. user_id := c.Ctx.DefaultQuery("user_id", "")
  132. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  133. //如果是管理员
  134. if exist {
  135. user_id = ""
  136. }
  137. paramMap_i_t := map[string]interface{}{"sort": "name", "user_id": user_id}
  138. result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
  139. if err == nil {
  140. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  141. } else {
  142. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  143. }
  144. }
  145. // _FindOrgPage
  146. // @Title _FindOrgPage
  147. // @Description 获取组织架构分页数
  148. // @Success 200 {object} Account
  149. // @Failure 403 :id is empty
  150. func System_FindOrgPage(c *entitys.CtrlContext) {
  151. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  152. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  153. name := c.Ctx.DefaultQuery("name", "")
  154. code := c.Ctx.DefaultQuery("code", "")
  155. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  156. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id}
  157. result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "sys_org", paramMap_i_t)
  158. if err == nil {
  159. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  160. } else {
  161. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  162. }
  163. }
  164. // _AddUser
  165. // @Title _AddUser
  166. // @Description 添加用户
  167. // @Param login_id string false "登录ID"
  168. // @Param password string false "密码"
  169. // @Param org_id string false "组织ID"
  170. // @Param email string false "邮箱"
  171. // @Success 200 {object} Account
  172. // @Failure 403 :id is empty
  173. func System_AddUser(c *entitys.CtrlContext) {
  174. tk, _ := c.Ctx.Get("token")
  175. opUser := tk.(*entitys.Token)
  176. var user sysmodel.SysUser
  177. err := c.Ctx.BindJSON(&user)
  178. if err != nil {
  179. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  180. }
  181. fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId)
  182. //查找login_id是否存在
  183. exit, _ := c.PlatformDbEngine.Table(new(sysmodel.SysUser)).Where("login_id = ? and del_flag = ?", user.LoginId, 0).Exist()
  184. if exit {
  185. c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
  186. return
  187. }
  188. user_id := c.Ctx.GetString("user_id")
  189. user.Id = sysutils.NewUUID()
  190. user.Name = user.LoginId
  191. user.CreateTime = models.NowLocal()
  192. user.LastUpdateTime = time.Now().UnixNano()
  193. user.CreateBy = user_id
  194. user.LastUpdateBy = user_id
  195. user.DelFlag = 0
  196. user.Domain = opUser.Domain
  197. user.Password = sysutils.HashPassword(user.Password, "")
  198. _, err = c.PlatformDbEngine.Insert(&user)
  199. if err != nil {
  200. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台插入用户错误:" + err.Error(), nil})
  201. }
  202. _, err = c.Db.Insert(&user)
  203. ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email)
  204. if ret && err == nil {
  205. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  206. } else {
  207. c.Ctx.JSON(200, sysmodel.SysReturn{500, "域数据库插入用户错误:" + err.Error(), nil})
  208. }
  209. }
  210. // _DelUser
  211. // @Title _DelUser
  212. // @Description 删除用户
  213. // @Param id string false "用户ID"
  214. // @Success 200 {object} Account
  215. // @Failure 403 :id is empty
  216. func System_DelUser(c *entitys.CtrlContext) {
  217. type Param struct {
  218. Id string `json:"id"`
  219. }
  220. var params []Param
  221. c.Ctx.BindJSON(&params)
  222. ids := []string{}
  223. for _, param := range params {
  224. ids = append(ids, param.Id)
  225. }
  226. session := c.Db.NewSession()
  227. defer session.Close()
  228. session.Begin()
  229. _, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  230. if err != nil {
  231. session.Rollback()
  232. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  233. return
  234. }
  235. _, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1})
  236. if err != nil {
  237. session.Rollback()
  238. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  239. return
  240. }
  241. session.Commit()
  242. _, err = c.PlatformDbEngine.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  243. if err == nil {
  244. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  245. } else {
  246. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台删除用户失败:" + err.Error(), nil})
  247. }
  248. }
  249. // _UpdateUser
  250. // @Title _UpdateUser
  251. // @Description 修改用户
  252. // @Param login_id string false "登录ID"
  253. // @Param password string false "密码"
  254. // @Param org_id string false "组织ID"
  255. // @Param email string false "邮箱"
  256. // @Success 200 {object} Account
  257. // @Failure 403 :id is empty
  258. func System_UpdateUser(c *entitys.CtrlContext) {
  259. tk, _ := c.Ctx.Get("token")
  260. user := tk.(*entitys.Token)
  261. var postData struct {
  262. sysmodel.SysUser
  263. UserRole []string `json:"user_role"`
  264. }
  265. //var user sysmodel.SysUser
  266. err := c.Ctx.BindJSON(&postData)
  267. if err != nil {
  268. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  269. return
  270. }
  271. //postData.LastUpdateTime = time.Now().UnixNano()
  272. //postData.LastUpdateBy = user.UserId
  273. session := c.Db.NewSession()
  274. defer session.Close()
  275. session.Begin()
  276. //paramMap, _ := sysutils.BeanToMap(&postData)
  277. paramMap := map[string]interface{}{"id": postData.Id, "temp_id": postData.TempId, "temp_value": postData.TempValue, "name": postData.Name, "email": postData.Email, "mobile": postData.Mobile, "org_id": postData.OrgId, "last_update_time": time.Now().UnixNano(), "last_update_by": user.UserId}
  278. _, err = session.SqlMapClient("update_user", &paramMap).Execute()
  279. if err != nil {
  280. session.Rollback()
  281. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  282. return
  283. }
  284. _, err = c.PlatformDbEngine.SqlMapClient("update_user", &paramMap).Execute()
  285. if err != nil {
  286. session.Rollback()
  287. c.Ctx.JSON(500, sysmodel.SysReturn{500, "平台更新用户失败:" + err.Error(), nil})
  288. return
  289. }
  290. userRoles := []sysmodel.SysUserRole{}
  291. for _, roleId := range postData.UserRole {
  292. userRole := sysmodel.SysUserRole{}
  293. userRole.Id = sysutils.NewUUID()
  294. userRole.UserId = postData.Id
  295. userRole.RoleId = roleId
  296. userRole.DelFlag = 0
  297. userRole.CreateTime = sysmodel.NowLocal()
  298. userRole.CreateBy = user.UserId
  299. userRole.LastUpdateBy = user.UserId
  300. userRole.LastUpdateTime = time.Now().UnixNano()
  301. userRoles = append(userRoles, userRole)
  302. }
  303. _, err = session.SqlMapClient("delete_user_role", &map[string]interface{}{"user_id": postData.Id}).Execute()
  304. if err != nil {
  305. session.Rollback()
  306. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  307. return
  308. }
  309. _, err = session.InsertMulti(&userRoles)
  310. if err == nil {
  311. session.Commit()
  312. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  313. } else {
  314. session.Rollback()
  315. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  316. }
  317. }
  318. // _UpdatePassword
  319. // @Title _UpdatePassword
  320. // @Description 修改用户密码
  321. // @Param string false "用户ID"
  322. // @Param password string false "密码"
  323. // @Success 200 {object} Account
  324. // @Failure 403 :id is empty
  325. func System_UpdatePassword(c *entitys.CtrlContext) {
  326. var user sysmodel.SysUser
  327. err := c.Ctx.BindJSON(&user)
  328. tk, _ := c.Ctx.Get("token")
  329. operator := tk.(*entitys.Token)
  330. if err != nil {
  331. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  332. return
  333. }
  334. user.Password = sysutils.HashPassword(user.Password, "")
  335. paramMap := map[string]interface{}{"id": user.Id, "password": user.Password, "last_update_time": time.Now().UnixNano(), "last_update_by": operator.UserId}
  336. _, err = c.PlatformDbEngine.SqlMapClient("update_user_password", &paramMap).Execute()
  337. if err == nil {
  338. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  339. } else {
  340. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  341. }
  342. }
  343. // _GetUser
  344. // @Title _GetUser
  345. // @Description 更加用户ID获取用户信息
  346. // @Param user_id string false "用户ID"
  347. // @Success 200 {object} Account
  348. // @Failure 403 :id is empty
  349. func System_GetUser(c *entitys.CtrlContext) {
  350. user_id := c.Ctx.Query("user_id")
  351. var user sysmodel.SysUser
  352. err := c.Db.SqlMapClient("selectone_sys_user", &map[string]interface{}{"id": user_id}).Find(&user)
  353. if err == nil {
  354. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", user})
  355. } else {
  356. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  357. }
  358. }
  359. // _AddRole
  360. // @Title _AddRole
  361. // @Description 添加角色
  362. // @Param name string false "角色名称"
  363. // @Param remark string false "备注"
  364. // @Success 200 {object} Account
  365. // @Failure 403 :id is empty
  366. func System_AddRole(c *entitys.CtrlContext) {
  367. var paramObj0 models.SysRole
  368. c.Ctx.BindJSON(&paramObj0)
  369. tk, _ := c.Ctx.Get("token")
  370. user := tk.(*entitys.Token)
  371. paramObj0.Id = sysutils.NewUUID()
  372. paramObj0.CreateBy = user.UserId
  373. paramObj0.LastUpdateBy = user.UserId
  374. paramObj0.CreateTime = models.NowLocal()
  375. paramObj0.LastUpdateTime = time.Now().UnixNano()
  376. paramObj0.DelFlag = 0
  377. //_, err := c.LocalSqlMapClient("insert_sys_role", &paramObj0).Execute()
  378. paramMap, err := sysutils.BeanToMap(&paramObj0)
  379. _, err = c.Db.SqlMapClient("insert_sys_role", paramMap).Execute()
  380. if err == nil {
  381. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  382. } else {
  383. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  384. }
  385. }
  386. // _DelRole
  387. // @Title _DelRole
  388. // @Description 添加角色
  389. // @Param id string false "角色ID"
  390. // @Success 200 {object} Account
  391. // @Failure 403 :id is empty
  392. func System_DelRole(c *entitys.CtrlContext) {
  393. type Param struct {
  394. Id string `json:"id"`
  395. }
  396. var params []Param
  397. c.Ctx.BindJSON(&params)
  398. ids := []string{}
  399. for _, param := range params {
  400. ids = append(ids, param.Id)
  401. }
  402. _, err := c.Db.Table(new(models.SysRole)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  403. if err == nil {
  404. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  405. } else {
  406. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  407. }
  408. }
  409. // _UpdateRole
  410. // @Title _UpdateRole
  411. // @Description 修改角色
  412. // @Param id string false "角色ID"
  413. // @Param name string false "角色名称"
  414. // @Param remark string false "备注"
  415. // @Success 200 {object} Account
  416. // @Failure 403 :id is empty
  417. func System_UpdateRole(c *entitys.CtrlContext) {
  418. var role sysmodel.SysRole
  419. err := c.Ctx.BindJSON(&role)
  420. if err != nil {
  421. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  422. return
  423. }
  424. paramMap, _ := sysutils.BeanToMap(&role)
  425. _, err = c.Db.SqlMapClient("update_sys_role", paramMap).Execute()
  426. if err == nil {
  427. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  428. } else {
  429. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  430. }
  431. }
  432. // _GetUserRoles
  433. // @Title _GetUserRoles
  434. // @Description 根据用户id获取用户角色
  435. // @Param user_id string false "用户ID"
  436. // @Success 200 {object} Account
  437. // @Failure 403 :id is empty
  438. func System_GetUserRoles(c *entitys.CtrlContext) {
  439. user_id := c.Ctx.Query("user_id")
  440. var roles []sysmodel.SysRole
  441. err := c.Db.SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", user_id).Find(&roles)
  442. if err == nil {
  443. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", roles})
  444. } else {
  445. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  446. }
  447. }
  448. // _FindRolePage
  449. // @Title _FindRolePage
  450. // @Description 角色分页
  451. // @Param page false "分页参数"
  452. // @Success 200 {object} Account
  453. // @Failure 403 :id is empty
  454. func System_FindRolePage(c *entitys.CtrlContext) {
  455. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  456. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  457. name := c.Ctx.DefaultQuery("name", "")
  458. code := c.Ctx.DefaultQuery("code", "")
  459. paramMap_i_t := map[string]interface{}{"name": name, "code": code, "page": page, "rows": rows}
  460. result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t)
  461. if err == nil {
  462. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  463. } else {
  464. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  465. }
  466. }
  467. // _FindMenuPage
  468. // @Title _FindMenuPage
  469. // @Description 获取角色分页数
  470. // @Success 200 {object} Account
  471. // @Failure 403 :id is empty
  472. func System_FindMenuPage(c *entitys.CtrlContext) {
  473. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  474. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  475. user_id := c.Ctx.DefaultQuery("user_id", "")
  476. name := c.Ctx.DefaultQuery("name", "")
  477. code := c.Ctx.DefaultQuery("code", "")
  478. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  479. _type := c.Ctx.DefaultQuery("type", "")
  480. type_op := c.Ctx.DefaultQuery("type_op", "")
  481. hidden := c.Ctx.DefaultQuery("hidden", "")
  482. op := template.HTML(type_op)
  483. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
  484. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  485. //如果是管理员
  486. if exist {
  487. user_id = ""
  488. }
  489. paramMap_i_t := map[string]interface{}{"user_id": user_id, "hidden": hidden, "page": page, "rows": rows, "type": _type, "type_op": op, "name": name, "code": code, "cn_id": cn_id}
  490. result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t)
  491. if err == nil {
  492. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  493. } else {
  494. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  495. }
  496. }
  497. // _FindDomainPage
  498. // @Title _FindDomainPage
  499. // @Description 获取域分页数
  500. // @Success 200 {object} Account
  501. // @Failure 403 :id is empty
  502. func System_FindDomainPage(c *entitys.CtrlContext) {
  503. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  504. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  505. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  506. result, err := sysutils.PageSearch(c.Db, "system", "find_domain_page", "sys_domain", paramMap_i_t)
  507. if err == nil {
  508. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  509. } else {
  510. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  511. }
  512. }
  513. // _FindRoleMenu
  514. // @Title _FindRoleMenu
  515. // @Description 查找角色权限
  516. // @Param role_id string false "角色id"
  517. // @Success 200 {object} Account
  518. // @Failure 403 :id is empty
  519. func System_FindRoleMenu(c *entitys.CtrlContext) {
  520. role_id := c.Ctx.Query("role_id")
  521. ret := __none_func_system__(role_id)
  522. if ret {
  523. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  524. } else {
  525. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  526. }
  527. }
  528. // _SaveRoleMenu
  529. // @Title _SaveRoleMenu
  530. // @Description 保存角色权限
  531. // @Param role_menu string false "角色权限"
  532. // @Success 200 {object} Account
  533. // @Failure 403 :id is empty
  534. func System_SaveRoleMenu(c *entitys.CtrlContext) {
  535. var paramObj0 []models.SaveRoleMenu
  536. c.Ctx.BindJSON(&paramObj0)
  537. ret := __none_func_system__(paramObj0)
  538. if ret {
  539. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  540. } else {
  541. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  542. }
  543. }
  544. // _RoleAll
  545. // @Title _RoleAll
  546. // @Description 查找所有角色
  547. // @Success 200 {object} Account
  548. // @Failure 403 :id is empty
  549. func System_RoleAll(c *entitys.CtrlContext) {
  550. ret := __none_func_system__()
  551. if ret {
  552. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  553. } else {
  554. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  555. }
  556. }
  557. // _FindPermissions
  558. // @Title _FindPermissions
  559. // @Description 查找用户权限
  560. // @Success 200 {object} Account
  561. // @Failure 403 :id is empty
  562. func System_FindPermissions(c *entitys.CtrlContext) {
  563. ret := __none_func_system__()
  564. if ret {
  565. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  566. } else {
  567. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  568. }
  569. }
  570. // _AddMenu
  571. // @Title _AddMenu
  572. // @Description 添加菜单
  573. // @Param string false "菜单"
  574. // @Success 200 {object} Account
  575. // @Failure 403 :id is empty
  576. func System_AddMenu(c *entitys.CtrlContext) {
  577. var paramObj0 models.SysMenu
  578. c.Ctx.BindJSON(&paramObj0)
  579. tk, _ := c.Ctx.Get("token")
  580. user := tk.(*entitys.Token)
  581. paramObj0.Id = sysutils.NewUUID()
  582. paramObj0.CreateBy = user.UserId
  583. paramObj0.LastUpdateBy = user.UserId
  584. paramObj0.CreateTime = models.NowLocal()
  585. paramObj0.LastUpdateTime = time.Now().UnixNano()
  586. paramObj0.DelFlag = 0
  587. if paramObj0.Parent != "" {
  588. parentNodes := []sysmodel.SysMenu{}
  589. err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Find(&parentNodes)
  590. if err != nil {
  591. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  592. return
  593. }
  594. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  595. } else {
  596. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  597. }
  598. //_, err := c.LocalSqlMapClient("insert_sys_menu", &paramObj0).Execute()
  599. paramMap, err := sysutils.BeanToMap(&paramObj0)
  600. _, err = c.Db.SqlMapClient("insert_sys_menu", paramMap).Execute()
  601. if err == nil {
  602. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  603. } else {
  604. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  605. }
  606. }
  607. // _DelMenu
  608. // @Title _DelMenu
  609. // @Description 删除菜单
  610. // @Param id string false "菜单ID"
  611. // @Success 200 {object} Account
  612. // @Failure 403 :id is empty
  613. func System_DelMenu(c *entitys.CtrlContext) {
  614. type Param struct {
  615. Id string `json:"id"`
  616. }
  617. var params []Param
  618. c.Ctx.BindJSON(&params)
  619. ids := []string{}
  620. for _, param := range params {
  621. ids = append(ids, param.Id)
  622. }
  623. _, err := c.Db.Table(new(models.SysMenu)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  624. if err == nil {
  625. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  626. } else {
  627. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  628. }
  629. }
  630. // _UpdateMenu
  631. // @Title _UpdateMenu
  632. // @Description 更新菜单
  633. // @Param string false "菜单"
  634. // @Success 200 {object} Account
  635. // @Failure 403 :id is empty
  636. func System_UpdateMenu(c *entitys.CtrlContext) {
  637. var paramObj0 models.SysMenu
  638. err := c.Ctx.BindJSON(&paramObj0)
  639. tk, _ := c.Ctx.Get("token")
  640. user := tk.(*entitys.Token)
  641. if paramObj0.Parent != "" {
  642. parentNodes := []sysmodel.SysMenu{}
  643. err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Find(&parentNodes)
  644. if err != nil {
  645. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  646. return
  647. }
  648. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  649. } else {
  650. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  651. }
  652. paramObj0.LastUpdateBy = user.UserId
  653. paramObj0.LastUpdateTime = time.Now().UnixNano()
  654. paramMap, err := sysutils.BeanToMap(&paramObj0)
  655. _, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute()
  656. if err == nil {
  657. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  658. } else {
  659. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  660. }
  661. }
  662. // _AddOrg
  663. // @Title _AddOrg
  664. // @Description 添加组织
  665. // @Param name string false "组织名称"
  666. // @Param domain string false "域"
  667. // @Param parent string false "父ID"
  668. // @Success 200 {object} Account
  669. // @Failure 403 :id is empty
  670. func System_AddOrg(c *entitys.CtrlContext) {
  671. var paramObj0 models.SysOrg
  672. c.Ctx.BindJSON(&paramObj0)
  673. tk, _ := c.Ctx.Get("token")
  674. user := tk.(*entitys.Token)
  675. paramObj0.Id = sysutils.NewUUID()
  676. paramObj0.CreateBy = user.UserId
  677. paramObj0.LastUpdateBy = user.UserId
  678. paramObj0.CreateTime = models.NowLocal()
  679. paramObj0.LastUpdateTime = time.Now().UnixNano()
  680. paramObj0.DelFlag = 0
  681. if paramObj0.Parent != "" {
  682. parentNodes := []sysmodel.SysOrg{}
  683. err := c.Db.SqlMapClient("one_sys_org", map[string]interface{}{"id": paramObj0.Parent}).Find(&parentNodes)
  684. if err != nil {
  685. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  686. return
  687. }
  688. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  689. } else {
  690. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  691. }
  692. //_, err := c.LocalSqlMapClient("insert_sys_org", &paramObj0).Execute()
  693. paramMap, err := sysutils.BeanToMap(&paramObj0)
  694. _, err = c.Db.SqlMapClient("insert_sys_org", paramMap).Execute()
  695. if err == nil {
  696. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  697. } else {
  698. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  699. }
  700. }
  701. // _DelOrg
  702. // @Title _DelOrg
  703. // @Description 删除组织
  704. // @Param id string array false "用户ID"
  705. // @Success 200 {object} Account
  706. // @Failure 403 :id is empty
  707. func System_DelOrg(c *entitys.CtrlContext) {
  708. type Param struct {
  709. Id string `json:"id"`
  710. }
  711. var params []Param
  712. c.Ctx.BindJSON(&params)
  713. ids := []string{}
  714. for _, param := range params {
  715. ids = append(ids, param.Id)
  716. }
  717. _, err := c.Db.Table(new(models.SysOrg)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  718. if err == nil {
  719. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  720. } else {
  721. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  722. }
  723. }
  724. // _UpdateOrg
  725. // @Title _UpdateOrg
  726. // @Description 修改组织
  727. // @Param name string false "组织名称"
  728. // @Param domain string false "域"
  729. // @Param parent string false "父ID"
  730. // @Success 200 {object} Account
  731. // @Failure 403 :id is empty
  732. func System_UpdateOrg(c *entitys.CtrlContext) {
  733. //name := c.Ctx.Query("name")
  734. //domain := c.Ctx.Query("domain")
  735. //parent := c.Ctx.Query("parent")
  736. var paramObj0 models.SysOrg
  737. err := c.Ctx.BindJSON(&paramObj0)
  738. tk, _ := c.Ctx.Get("token")
  739. user := tk.(*entitys.Token)
  740. if paramObj0.Parent != "" {
  741. parentNodes := []sysmodel.SysOrg{}
  742. err := c.Db.SqlMapClient("one_sys_org", paramObj0.Parent).Find(&parentNodes)
  743. if err != nil {
  744. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  745. return
  746. }
  747. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  748. } else {
  749. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  750. }
  751. paramObj0.LastUpdateBy = user.UserId
  752. paramObj0.LastUpdateTime = time.Now().UnixNano()
  753. paramMap, err := sysutils.BeanToMap(&paramObj0)
  754. _, err = c.Db.SqlMapClient("update_sys_org", paramMap).Execute()
  755. if err == nil {
  756. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  757. } else {
  758. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  759. }
  760. }
  761. // _GetOrgByUserid
  762. // @Title _GetOrgByUserid
  763. // @Description 根据用户id获取用户组织
  764. // @Param user_id string false "用户id"
  765. // @Success 200 {object} Account
  766. // @Failure 403 :id is empty
  767. func System_GetOrgByUserid(c *entitys.CtrlContext) {
  768. user_id := c.Ctx.Query("user_id")
  769. var org sysmodel.SysOrg
  770. err := c.Db.SqlMapClient("get_org_by_userid", user_id).Find(&org)
  771. if err == nil {
  772. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", org})
  773. } else {
  774. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  775. }
  776. }
  777. // _AddDomain
  778. // @Title _AddDomain
  779. // @Description 添加域
  780. // @Param false "域"
  781. // @Success 200 {object} Account
  782. // @Failure 403 :id is empty
  783. func System_AddDomain(c *entitys.CtrlContext) {
  784. var paramObj0 models.SysDomain
  785. c.Ctx.BindJSON(&paramObj0)
  786. ////1、测试连接串
  787. //db, err := xorm.NewEngine("mysql", paramObj0.DataSource)
  788. //if err == nil {
  789. // //engine.initOrmEngine(db, "mysql")
  790. // //c.BusinessOrmEngine[v.Domain] = db
  791. //}
  792. tk, _ := c.Ctx.Get("token")
  793. user := tk.(*entitys.Token)
  794. paramObj0.Id = sysutils.NewUUID()
  795. paramObj0.CreateBy = user.UserId
  796. paramObj0.LastUpdateBy = user.UserId
  797. paramObj0.CreateTime = sysmodel.NowLocal()
  798. paramObj0.LastUpdateTime = time.Now().UnixNano()
  799. paramObj0.Theme = "default"
  800. paramObj0.DelFlag = 0
  801. paramMap, err := sysutils.BeanToMap(&paramObj0)
  802. if err != nil {
  803. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  804. return
  805. }
  806. _, err = c.Db.SqlMapClient("insert_sys_domain", paramMap).Execute()
  807. if err == nil {
  808. //添加数据库基本用户权限数据
  809. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  810. if ret {
  811. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  812. } else {
  813. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  814. }
  815. } else {
  816. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  817. }
  818. }
  819. // _DelDomain
  820. // @Title _DelDomain
  821. // @Description 删除域
  822. // @Param id string false "域ID"
  823. // @Success 200 {object} Account
  824. // @Failure 403 :id is empty
  825. func System_DelDomain(c *entitys.CtrlContext) {
  826. type Param struct {
  827. Id string `json:"id"`
  828. }
  829. var params []Param
  830. c.Ctx.BindJSON(&params)
  831. ids := []string{}
  832. for _, param := range params {
  833. ids = append(ids, param.Id)
  834. }
  835. _, err := c.Db.Table(new(models.SysDomain)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  836. if err != nil {
  837. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  838. return
  839. }
  840. ret := __none_func_system__()
  841. if ret {
  842. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  843. } else {
  844. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  845. }
  846. }
  847. // _UpdateDomain
  848. // @Title _UpdateDomain
  849. // @Description 修改域
  850. // @Param false "域"
  851. // @Success 200 {object} Account
  852. // @Failure 403 :id is empty
  853. func System_UpdateDomain(c *entitys.CtrlContext) {
  854. var paramObj0 models.SysDomain
  855. c.Ctx.BindJSON(&paramObj0)
  856. tk, _ := c.Ctx.Get("token")
  857. user := tk.(*entitys.Token)
  858. paramObj0.LastUpdateTime = time.Now().UnixNano()
  859. paramObj0.LastUpdateBy = user.UserId
  860. paramMap, err := sysutils.BeanToMap(&paramObj0)
  861. if err != nil {
  862. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  863. return
  864. }
  865. _, err = c.Db.SqlMapClient("update_sys_domain", paramMap).Execute()
  866. if err == nil {
  867. //添加数据库基本用户权限数据
  868. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  869. if ret {
  870. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  871. } else {
  872. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  873. }
  874. } else {
  875. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  876. }
  877. }
  878. // _GetDomain
  879. // @Title _GetDomain
  880. // @Description 根据domain获取域
  881. // @Param domain string false "域"
  882. // @Success 200 {object} Account
  883. // @Failure 403 :id is empty
  884. func System_GetDomain(c *entitys.CtrlContext) {
  885. domain := c.Ctx.Query("domain")
  886. var domainObj sysmodel.SysDomain
  887. _, err := c.PlatformDbEngine.Where("domain = ?", domain).Get(&domainObj)
  888. if err == nil {
  889. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", domainObj})
  890. } else {
  891. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  892. }
  893. }
  894. // _AddDomainMenu
  895. // @Title _AddDomainMenu
  896. // @Description 域添加菜单
  897. // @Param false "添加域菜单bean"
  898. // @Success 200 {object} Account
  899. // @Failure 403 :id is empty
  900. func System_AddDomainMenu(c *entitys.CtrlContext) {
  901. var paramObj0 struct {
  902. //域名ID
  903. DomainId string `json:"domain_id"`
  904. //菜单
  905. Menus []sysmodel.SysMenu `json:"menus"`
  906. // type
  907. Type int `json:"type"`
  908. }
  909. err := c.Ctx.BindJSON(&paramObj0)
  910. if err != nil {
  911. c.Ctx.JSON(500, sysmodel.SysReturn{500, "BindJSON error: " + err.Error(), nil})
  912. return
  913. }
  914. var domain sysmodel.SysDomain
  915. param := map[string]interface{}{"id": paramObj0.DomainId}
  916. _, err = c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  917. if err != nil {
  918. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  919. return
  920. }
  921. var menuIds = make([]string, len(paramObj0.Menus))
  922. for i := range paramObj0.Menus {
  923. menuIds[i] = paramObj0.Menus[i].Id
  924. }
  925. var menus []sysmodel.SysMenu
  926. err = c.Db.In("id", menuIds).Find(&menus)
  927. if err != nil {
  928. c.Ctx.JSON(500, sysmodel.SysReturn{500, "find menu error: " + err.Error(), nil})
  929. return
  930. }
  931. for i := range menus {
  932. for j := range paramObj0.Menus {
  933. if menus[i].Id == paramObj0.Menus[j].Id {
  934. menus[i].Name = paramObj0.Menus[j].Name
  935. break
  936. }
  937. }
  938. }
  939. session := c.App.GetBusinessDb(domain.Domain).NewSession()
  940. defer session.Close()
  941. session.Begin()
  942. deleteSqlMapKey := ""
  943. if paramObj0.Type >= 0 {
  944. deleteSqlMapKey = "delete_backend_sys_menu"
  945. } else {
  946. deleteSqlMapKey = "delete_app_sys_menu"
  947. }
  948. _, err = c.App.GetBusinessDb(domain.Domain).SqlMapClient(deleteSqlMapKey).Execute()
  949. if err != nil {
  950. session.Rollback()
  951. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  952. return
  953. }
  954. if len(paramObj0.Menus) <= 0 {
  955. session.Commit()
  956. c.Ctx.JSON(200, sysmodel.SysReturn{200, "the menus is empty", nil})
  957. return
  958. }
  959. _, err = c.App.GetBusinessDb(domain.Domain).Insert(&paramObj0.Menus)
  960. if err != nil {
  961. session.Rollback()
  962. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  963. return
  964. }
  965. session.Commit()
  966. ret := __none_func_system__(paramObj0)
  967. if ret {
  968. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  969. } else {
  970. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  971. }
  972. }
  973. // _GetDomainMenuTree
  974. // @Title _GetDomainMenuTree
  975. // @Description 域添加菜单
  976. // @Param domain_id string false "域id"
  977. // @Success 200 {object} Account
  978. // @Failure 403 :id is empty
  979. func System_GetDomainMenuTree(c *entitys.CtrlContext) {
  980. domain_id := c.Ctx.Query("domain_id")
  981. _type := c.Ctx.DefaultQuery("type", "")
  982. type_op := c.Ctx.DefaultQuery("type_op", "")
  983. op := template.HTML(type_op)
  984. var domain sysmodel.SysDomain
  985. param := map[string]interface{}{"id": domain_id, "type": _type, "type_op": op}
  986. _, err := c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  987. if err != nil {
  988. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  989. return
  990. }
  991. paramMap := map[string]interface{}{"user_id": "", "type": _type, "type_op": op, "name": "", "hidden": ""}
  992. domainMenus, err := c.App.GetBusinessDb(domain.Domain).SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  993. if err != nil {
  994. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get domain_menu tree: " + err.Error(), nil})
  995. return
  996. }
  997. domainTree, err := sysutils.BuildTree("", domainMenus)
  998. sysMenus, err := c.Db.SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  999. if err != nil {
  1000. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get sys_menu tree: " + err.Error(), nil})
  1001. return
  1002. }
  1003. var sysMenusMap map[string]map[string]interface{}
  1004. sysMenusMap = make(map[string]map[string]interface{}, 0)
  1005. for _, menu := range sysMenus {
  1006. sysMenusMap[menu["id"].(string)] = menu
  1007. }
  1008. //剔除域已存在的菜单
  1009. //for _, domainMenu := range domainMenus {
  1010. // delete(sysMenusMap, domainMenu["id"].(string))
  1011. //}
  1012. var sysMenuRest []map[string]interface{}
  1013. for _, menu := range sysMenusMap {
  1014. sysMenuRest = append(sysMenuRest, menu)
  1015. }
  1016. sysTree, err := sysutils.BuildTree("", sysMenuRest)
  1017. ret := __none_func_system__(domain_id)
  1018. if ret {
  1019. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "domain_tree": domainTree}})
  1020. } else {
  1021. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1022. }
  1023. }
  1024. // _GetUserMenuTree
  1025. // @Title _GetUserMenuTree
  1026. // @Description 获取用户权限菜单
  1027. // @Param user_id string false "用户id"
  1028. // @Success 200 {object} Account
  1029. // @Failure 403 :id is empty
  1030. func System_GetRoleMenuTree(c *entitys.CtrlContext) {
  1031. role_id := c.Ctx.Query("role_id")
  1032. //paramMap := map[string]interface{}{"role_id": role_id}
  1033. //sysMenu, err := c.Db.SqlMapClient("get_role_no_have_menu_tree", &paramMap).Query().List()
  1034. //if err != nil {
  1035. // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1036. // return
  1037. //}
  1038. //sysTree, err := sysutils.BuildTree("", sysMenu)
  1039. op := template.HTML(">=")
  1040. paramMap := map[string]interface{}{"user_id": "", "sort": "name", "type": 0, "type_op": op, "hidden": 0}
  1041. sysTree, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap)
  1042. if err != nil {
  1043. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1044. return
  1045. }
  1046. paramMap2 := map[string]interface{}{"role_id": role_id}
  1047. //roleTree, err := sysutils.TreeSearch(c.Db, "system", "get_role_menu_tree", "sys_menu", paramMap2)
  1048. roleMenu, err := c.Db.SqlMapClient("get_role_menu_tree", &paramMap2).Query().List()
  1049. if err != nil {
  1050. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1051. return
  1052. }
  1053. roleTree, err := sysutils.BuildTree("", roleMenu)
  1054. ret := __none_func_system__(role_id)
  1055. if ret {
  1056. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
  1057. } else {
  1058. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1059. }
  1060. }
  1061. // _AddRoleMenu
  1062. // @Title _AddRoleMenu
  1063. // @Description 添加角色菜单
  1064. // @Param menu_id false "菜单id"
  1065. // @Param role_id string false "角色id"
  1066. // @Success 200 {object} Account
  1067. // @Failure 403 :id is empty
  1068. func System_AddRoleMenu(c *entitys.CtrlContext) {
  1069. tk, _ := c.Ctx.Get("token")
  1070. user := tk.(*entitys.Token)
  1071. var paramObj0 struct {
  1072. MenuIds []string `json:"menu_ids"`
  1073. RoleId string `json:"role_id"`
  1074. }
  1075. c.Ctx.BindJSON(&paramObj0)
  1076. session := c.Db.NewSession()
  1077. defer session.Close()
  1078. session.Begin()
  1079. _, err := session.SqlMapClient("del_role_menu", paramObj0.RoleId).Execute()
  1080. if err != nil {
  1081. session.Rollback()
  1082. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1083. return
  1084. }
  1085. var roleMenus []*sysmodel.SysRoleMenu
  1086. for _, menu := range paramObj0.MenuIds {
  1087. roleMenu := &sysmodel.SysRoleMenu{}
  1088. roleMenu.Id = sysutils.NewUUID()
  1089. roleMenu.MenuId = menu
  1090. roleMenu.RoleId = paramObj0.RoleId
  1091. roleMenu.CreateBy = user.UserId
  1092. roleMenu.CreateTime = sysmodel.NowLocal()
  1093. roleMenus = append(roleMenus, roleMenu)
  1094. }
  1095. _, err = session.InsertMulti(&roleMenus)
  1096. if err != nil {
  1097. session.Rollback()
  1098. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1099. return
  1100. }
  1101. session.Commit()
  1102. ret := __none_func_system__(paramObj0)
  1103. if ret {
  1104. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1105. } else {
  1106. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1107. }
  1108. }
  1109. // _FindAreaPage
  1110. // @Title _FindAreaPage
  1111. // @Description 获取区域管理分页数
  1112. // @Success 200 {object} Account
  1113. // @Failure 403 :id is empty
  1114. func System_FindAreaPage(c *entitys.CtrlContext) {
  1115. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1116. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1117. var paramMap = make(map[string]interface{})
  1118. paramMap["page"] = page
  1119. paramMap["rows"] = rows
  1120. paramMap["del_flag"] = c.Ctx.Query("del_flag")
  1121. paramMap["id"] = c.Ctx.Query("id")
  1122. paramMap["name"] = c.Ctx.Query("name")
  1123. paramMap["parent"] = c.Ctx.Query("parent")
  1124. paramMap["inheritance"] = c.Ctx.Query("inheritance")
  1125. paramMap["temp_id"] = c.Ctx.Query("temp_id")
  1126. paramMap["manager"] = c.Ctx.Query("manager")
  1127. paramMap["org_id"] = c.Ctx.Query("org_id")
  1128. paramMap["org_name"] = c.Ctx.Query("org_name")
  1129. paramMap["org_inheritance"] = c.Ctx.Query("org_inheritance")
  1130. paramMap["manager_name"] = c.Ctx.Query("manager_name")
  1131. result, err := sysutils.PageSearch(c.Db, "system", "find_area_page", "sys_user", paramMap)
  1132. if err == nil {
  1133. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1134. } else {
  1135. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1136. }
  1137. }
  1138. // _AddArea
  1139. // @Title _AddArea
  1140. // @Description 添加区域
  1141. // @Param name string false "区域名称"
  1142. // @Param parent string false "父节点"
  1143. // @Param inheritance string false "继承关系"
  1144. // @Param org_id string false "组织ID"
  1145. // @Param temp_id string false "模板ID"
  1146. // @Param temp_value string false "模板内容"
  1147. // @Param manager string false "负责人"
  1148. // @Success 200 {object} Account
  1149. // @Failure 403 :id is empty
  1150. func System_AddArea(c *entitys.CtrlContext) {
  1151. var err error
  1152. var bean sysmodel.SysArea
  1153. if err = c.Ctx.BindJSON(&bean); err != nil {
  1154. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1155. return
  1156. }
  1157. user_id := c.Ctx.GetString("user_id")
  1158. bean.Id = sysutils.NewUUID()
  1159. bean.DelFlag = 0
  1160. bean.CreateBy = user_id
  1161. bean.LastUpdateBy = user_id
  1162. bean.CreateTime = sysmodel.NowLocal()
  1163. bean.LastUpdateTime = time.Now().UnixNano()
  1164. if bean.Parent != "" {
  1165. parentNodes := sysmodel.SysArea{}
  1166. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1167. if err != nil {
  1168. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1169. return
  1170. }
  1171. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1172. } else {
  1173. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1174. }
  1175. _, err = c.Db.InsertOne(&bean)
  1176. if err == nil {
  1177. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1178. } else {
  1179. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1180. }
  1181. }
  1182. // _DelArea
  1183. // @Title _DelArea
  1184. // @Description 删除区域
  1185. // @Param ids string false "用户ID"
  1186. // @Success 200 {object} Account
  1187. // @Failure 403 :id is empty
  1188. func System_DelArea(c *entitys.CtrlContext) {
  1189. var err error
  1190. var bean = &models.SysArea{}
  1191. type Param struct {
  1192. Id string `json:"id"`
  1193. }
  1194. var params []Param
  1195. c.Ctx.BindJSON(&params)
  1196. ids := []string{}
  1197. for _, param := range params {
  1198. ids = append(ids, param.Id)
  1199. }
  1200. session := c.Db.NewSession()
  1201. defer session.Close()
  1202. if err := session.Begin(); err != nil {
  1203. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1204. return
  1205. }
  1206. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1207. if err == nil {
  1208. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1209. }
  1210. if err == nil {
  1211. err = session.Commit()
  1212. }
  1213. if err == nil {
  1214. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1215. } else {
  1216. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1217. }
  1218. }
  1219. // _RecoverArea
  1220. // @Title _RecoverArea
  1221. // @Description 恢复区域
  1222. // @Param ids string false "区域ID"
  1223. // @Success 200 {object} Account
  1224. // @Failure 403 :id is empty
  1225. func System_RecoverArea(c *entitys.CtrlContext) {
  1226. var err error
  1227. var bean = &models.SysArea{}
  1228. idArr := make([]string, 0)
  1229. if ids := c.Ctx.Query("ids"); ids == "" {
  1230. err = c.Ctx.BindJSON(&idArr)
  1231. if err != nil || len(idArr) <= 0 {
  1232. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1233. return
  1234. }
  1235. } else {
  1236. idArr = strings.Split(ids, ",")
  1237. }
  1238. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1239. if err == nil {
  1240. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1241. } else {
  1242. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1243. }
  1244. }
  1245. // _UpdateArea
  1246. // @Title _UpdateArea
  1247. // @Description 修改区域
  1248. // @Param name string false "区域名称"
  1249. // @Param parent string false "父节点"
  1250. // @Param inheritance string false "继承关系"
  1251. // @Param org_id string false "组织ID"
  1252. // @Param temp_id string false "模板ID"
  1253. // @Param temp_value string false "模板内容"
  1254. // @Param manager string false "负责人"
  1255. // @Success 200 {object} Account
  1256. // @Failure 403 :id is empty
  1257. func System_UpdateArea(c *entitys.CtrlContext) {
  1258. var err error
  1259. var bean sysmodel.SysArea
  1260. if err = c.Ctx.BindJSON(&bean); err != nil {
  1261. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1262. return
  1263. }
  1264. user_id := c.Ctx.GetString("user_id")
  1265. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1266. if !exist && err == nil {
  1267. err = errors.New("record does not exist")
  1268. }
  1269. if err != nil {
  1270. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1271. return
  1272. }
  1273. bean.LastUpdateBy = user_id
  1274. bean.LastUpdateTime = time.Now().UnixNano()
  1275. if bean.Parent != "" {
  1276. parentNodes := sysmodel.SysArea{}
  1277. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1278. if err != nil {
  1279. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1280. return
  1281. }
  1282. if parentNodes.Inheritance == "" {
  1283. parentNodes.Inheritance = "|"
  1284. }
  1285. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1286. } else {
  1287. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1288. }
  1289. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1290. if err == nil {
  1291. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1292. } else {
  1293. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1294. }
  1295. }
  1296. // _GetArea
  1297. // @Title _GetArea
  1298. // @Description 根据区域ID获取区域信息
  1299. // @Param id string false "区域ID"
  1300. // @Success 200 {object} Account
  1301. // @Failure 403 :id is empty
  1302. func System_GetArea(c *entitys.CtrlContext) {
  1303. id := c.Ctx.Query("id")
  1304. //var area sysmodel.SysArea
  1305. //exist, err := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Get(&area)
  1306. result := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Query()
  1307. if result.Result != nil && len(result.Result) > 0 {
  1308. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result.Result[0]})
  1309. } else {
  1310. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1311. }
  1312. }
  1313. // _GetAreaTree
  1314. // @Title _GetAreaTree
  1315. // @Description 获取区域管理树
  1316. // @Success 200 {object} Account
  1317. // @Failure 403 :id is empty
  1318. func System_GetAreaTree(c *entitys.CtrlContext) {
  1319. paramMap_i_t := map[string]interface{}{"sort": "name"}
  1320. result, err := sysutils.TreeSearch(c.Db, "system", "get_area_tree", "sys_area", paramMap_i_t)
  1321. if err == nil {
  1322. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1323. } else {
  1324. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1325. }
  1326. }
  1327. // _FindAreaTemplatePage
  1328. // @Title _FindAreaTemplatePage
  1329. // @Description 获取区域模板分页数
  1330. // @Success 200 {object} Account
  1331. // @Failure 403 :id is empty
  1332. func System_FindAreaTemplatePage(c *entitys.CtrlContext) {
  1333. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1334. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1335. del_flag := c.Ctx.Query("del_flag")
  1336. name := c.Ctx.Query("name")
  1337. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1338. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_page", "sys_area", paramMap_i_t)
  1339. if err == nil {
  1340. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1341. } else {
  1342. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1343. }
  1344. }
  1345. // _AddAreaTemplate
  1346. // @Title _AddAreaTemplate
  1347. // @Description 添加区域模板
  1348. // @Param name string false "名称"
  1349. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1350. // @Param default int64 false "是否默认 1:是 0:否"
  1351. // @Success 200 {object} Account
  1352. // @Failure 403 :id is empty
  1353. func System_AddAreaTemplate(c *entitys.CtrlContext) {
  1354. var err error
  1355. var bean sysmodel.SysAreaTemplate
  1356. if err = c.Ctx.BindJSON(&bean); err != nil {
  1357. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1358. return
  1359. }
  1360. user_id := c.Ctx.GetString("user_id")
  1361. bean.Id = sysutils.NewUUID()
  1362. bean.DelFlag = 0
  1363. bean.CreateBy = user_id
  1364. bean.LastUpdateBy = user_id
  1365. bean.CreateTime = sysmodel.NowLocal()
  1366. bean.LastUpdateTime = time.Now().UnixNano()
  1367. _, err = c.Db.InsertOne(&bean)
  1368. if err == nil {
  1369. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1370. } else {
  1371. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1372. }
  1373. }
  1374. // _UpdateAreaTemplate
  1375. // @Title _UpdateAreaTemplate
  1376. // @Description 修改区域模板
  1377. // @Param name string false "名称"
  1378. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1379. // @Param default int64 false "是否默认 1:是 0:否"
  1380. // @Success 200 {object} Account
  1381. // @Failure 403 :id is empty
  1382. func System_UpdateAreaTemplate(c *entitys.CtrlContext) {
  1383. var err error
  1384. var bean sysmodel.SysAreaTemplate
  1385. if err = c.Ctx.BindJSON(&bean); err != nil {
  1386. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1387. return
  1388. }
  1389. user_id := c.Ctx.GetString("user_id")
  1390. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1391. if !exist && err == nil {
  1392. err = errors.New("record does not exist")
  1393. }
  1394. if err != nil {
  1395. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1396. return
  1397. }
  1398. bean.LastUpdateBy = user_id
  1399. bean.LastUpdateTime = time.Now().UnixNano()
  1400. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1401. if err == nil {
  1402. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1403. } else {
  1404. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1405. }
  1406. }
  1407. // _DelAreaTemplate
  1408. // @Title _DelAreaTemplate
  1409. // @Description 删除区域模板
  1410. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1411. // @Success 200 {object} Account
  1412. // @Failure 403 :id is empty
  1413. func System_DelAreaTemplate(c *entitys.CtrlContext) {
  1414. var err error
  1415. var bean = &models.SysAreaTemplate{}
  1416. type Param struct {
  1417. Id string `json:"id"`
  1418. }
  1419. var params []Param
  1420. c.Ctx.BindJSON(&params)
  1421. ids := []string{}
  1422. for _, param := range params {
  1423. ids = append(ids, param.Id)
  1424. }
  1425. session := c.Db.NewSession()
  1426. defer session.Close()
  1427. if err := session.Begin(); err != nil {
  1428. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1429. return
  1430. }
  1431. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1432. if err == nil {
  1433. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1434. }
  1435. if err == nil {
  1436. err = session.Commit()
  1437. }
  1438. if err == nil {
  1439. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1440. } else {
  1441. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1442. }
  1443. }
  1444. // _RecoverAreaTemplate
  1445. // @Title _RecoverAreaTemplate
  1446. // @Description 恢复区域模板
  1447. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1448. // @Success 200 {object} Account
  1449. // @Failure 403 :id is empty
  1450. func System_RecoverAreaTemplate(c *entitys.CtrlContext) {
  1451. var err error
  1452. var bean = &models.SysAreaTemplate{}
  1453. idArr := make([]string, 0)
  1454. if ids := c.Ctx.Query("ids"); ids == "" {
  1455. err = c.Ctx.BindJSON(&idArr)
  1456. if err != nil || len(idArr) <= 0 {
  1457. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1458. return
  1459. }
  1460. } else {
  1461. idArr = strings.Split(ids, ",")
  1462. }
  1463. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1464. if err == nil {
  1465. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1466. } else {
  1467. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1468. }
  1469. }
  1470. // _GetAreaTemplate
  1471. // @Title _GetAreaTemplate
  1472. // @Description 根据区域模板ID获取区域模板信息
  1473. // @Param id string false "区域模板ID"
  1474. // @Success 200 {object} Account
  1475. // @Failure 403 :id is empty
  1476. func System_GetAreaTemplate(c *entitys.CtrlContext) {
  1477. id := c.Ctx.Query("id")
  1478. var area sysmodel.SysAreaTemplate
  1479. exist, err := c.Db.SqlMapClient("selectone_sys_area_template", &map[string]interface{}{"id": id}).Get(&area)
  1480. if !exist && err == nil {
  1481. err = errors.New("record does not exist")
  1482. }
  1483. if err == nil {
  1484. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1485. } else {
  1486. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1487. }
  1488. }
  1489. // _FindAreaTemplateDetailPage
  1490. // @Title _FindAreaTemplateDetailPage
  1491. // @Description 获取区域模板明细分页数
  1492. // @Success 200 {object} Account
  1493. // @Failure 403 :id is empty
  1494. func System_FindAreaTemplateDetailPage(c *entitys.CtrlContext) {
  1495. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1496. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1497. del_flag := c.Ctx.Query("del_flag")
  1498. __sort__ := c.Ctx.Query("__sort__")
  1499. name := c.Ctx.Query("name")
  1500. temp_id := c.Ctx.Query("temp_id")
  1501. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1502. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_detail_page", "sys_area", paramMap_i_t)
  1503. if err == nil {
  1504. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1505. } else {
  1506. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1507. }
  1508. }
  1509. // _AddAreaTemplateDetail
  1510. // @Title _AddAreaTemplateDetail
  1511. // @Description 添加区域模板明细
  1512. // @Param temp_id string false "模板id"
  1513. // @Param name string false "名称"
  1514. // @Param value string false "值"
  1515. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1516. // @Param priority int64 false "优先级"
  1517. // @Param content string false "内容"
  1518. // @Success 200 {object} Account
  1519. // @Failure 403 :id is empty
  1520. func System_AddAreaTemplateDetail(c *entitys.CtrlContext) {
  1521. var err error
  1522. var bean sysmodel.SysAreaTemplateDetail
  1523. if err = c.Ctx.BindJSON(&bean); err != nil {
  1524. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1525. return
  1526. }
  1527. user_id := c.Ctx.GetString("user_id")
  1528. bean.Id = sysutils.NewUUID()
  1529. bean.DelFlag = 0
  1530. bean.CreateBy = user_id
  1531. bean.LastUpdateBy = user_id
  1532. bean.CreateTime = sysmodel.NowLocal()
  1533. bean.LastUpdateTime = time.Now().UnixNano()
  1534. _, err = c.Db.InsertOne(&bean)
  1535. if err == nil {
  1536. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1537. } else {
  1538. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1539. }
  1540. }
  1541. // _UpdateAreaTemplateDetail
  1542. // @Title _UpdateAreaTemplateDetail
  1543. // @Description 修改区域模板明细
  1544. // @Param temp_id string false "模板id"
  1545. // @Param name string false "名称"
  1546. // @Param value string false "值"
  1547. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1548. // @Param priority int64 false "优先级"
  1549. // @Param content string false "内容"
  1550. // @Success 200 {object} Account
  1551. // @Failure 403 :id is empty
  1552. func System_UpdateAreaTemplateDetail(c *entitys.CtrlContext) {
  1553. var err error
  1554. var bean sysmodel.SysAreaTemplateDetail
  1555. if err = c.Ctx.BindJSON(&bean); err != nil {
  1556. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1557. return
  1558. }
  1559. user_id := c.Ctx.GetString("user_id")
  1560. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1561. if !exist && err == nil {
  1562. err = errors.New("record does not exist")
  1563. }
  1564. if err != nil {
  1565. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1566. return
  1567. }
  1568. bean.LastUpdateBy = user_id
  1569. bean.LastUpdateTime = time.Now().UnixNano()
  1570. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1571. if err == nil {
  1572. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1573. } else {
  1574. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1575. }
  1576. }
  1577. // _DelAreaTemplateDetail
  1578. // @Title _DelAreaTemplateDetail
  1579. // @Description 删除区域模板明细
  1580. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1581. // @Success 200 {object} Account
  1582. // @Failure 403 :id is empty
  1583. func System_DelAreaTemplateDetail(c *entitys.CtrlContext) {
  1584. var err error
  1585. var bean = &models.SysAreaTemplateDetail{}
  1586. type Param struct {
  1587. Id string `json:"id"`
  1588. }
  1589. var params []Param
  1590. c.Ctx.BindJSON(&params)
  1591. ids := []string{}
  1592. for _, param := range params {
  1593. ids = append(ids, param.Id)
  1594. }
  1595. session := c.Db.NewSession()
  1596. defer session.Close()
  1597. if err := session.Begin(); err != nil {
  1598. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1599. return
  1600. }
  1601. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1602. if err == nil {
  1603. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1604. }
  1605. if err == nil {
  1606. err = session.Commit()
  1607. }
  1608. if err == nil {
  1609. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1610. } else {
  1611. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1612. }
  1613. }
  1614. // _RecoverAreaTemplateDetail
  1615. // @Title _RecoverAreaTemplateDetail
  1616. // @Description 恢复区域模板明细
  1617. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1618. // @Success 200 {object} Account
  1619. // @Failure 403 :id is empty
  1620. func System_RecoverAreaTemplateDetail(c *entitys.CtrlContext) {
  1621. var err error
  1622. var bean = &models.SysAreaTemplateDetail{}
  1623. idArr := make([]string, 0)
  1624. if ids := c.Ctx.Query("ids"); ids == "" {
  1625. err = c.Ctx.BindJSON(&idArr)
  1626. if err != nil || len(idArr) <= 0 {
  1627. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1628. return
  1629. }
  1630. } else {
  1631. idArr = strings.Split(ids, ",")
  1632. }
  1633. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1634. if err == nil {
  1635. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1636. } else {
  1637. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1638. }
  1639. }
  1640. // _GetAreaTemplateDetail
  1641. // @Title _GetAreaTemplateDetail
  1642. // @Description 根据区域模板明细ID获取区域模板明细信息
  1643. // @Param id string false "区域模板明细ID"
  1644. // @Success 200 {object} Account
  1645. // @Failure 403 :id is empty
  1646. func System_GetAreaTemplateDetail(c *entitys.CtrlContext) {
  1647. id := c.Ctx.Query("id")
  1648. var area sysmodel.SysAreaTemplateDetail
  1649. exist, err := c.Db.SqlMapClient("selectone_sys_area_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  1650. if !exist && err == nil {
  1651. err = errors.New("record does not exist")
  1652. }
  1653. if err == nil {
  1654. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1655. } else {
  1656. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1657. }
  1658. }
  1659. // _FindUserTemplatePage
  1660. // @Title _FindUserTemplatePage
  1661. // @Description 获取用户信息模板分页数
  1662. // @Success 200 {object} Account
  1663. // @Failure 403 :id is empty
  1664. func System_FindUserTemplatePage(c *entitys.CtrlContext) {
  1665. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1666. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1667. del_flag := c.Ctx.Query("del_flag")
  1668. name := c.Ctx.Query("name")
  1669. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1670. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_page", "sys_area", paramMap_i_t)
  1671. if err == nil {
  1672. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1673. } else {
  1674. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1675. }
  1676. }
  1677. // _AddUserTemplate
  1678. // @Title _AddUserTemplate
  1679. // @Description 添加用户信息模板
  1680. // @Param name string false "名称"
  1681. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1682. // @Param default int64 false "是否默认 1:是 0:否"
  1683. // @Success 200 {object} Account
  1684. // @Failure 403 :id is empty
  1685. func System_AddUserTemplate(c *entitys.CtrlContext) {
  1686. var err error
  1687. var bean sysmodel.SysUserTemplate
  1688. if err = c.Ctx.BindJSON(&bean); err != nil {
  1689. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1690. return
  1691. }
  1692. user_id := c.Ctx.GetString("user_id")
  1693. bean.Id = sysutils.NewUUID()
  1694. bean.DelFlag = 0
  1695. bean.CreateBy = user_id
  1696. bean.LastUpdateBy = user_id
  1697. bean.CreateTime = sysmodel.NowLocal()
  1698. bean.LastUpdateTime = time.Now().UnixNano()
  1699. _, err = c.Db.InsertOne(&bean)
  1700. if err == nil {
  1701. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1702. } else {
  1703. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1704. }
  1705. }
  1706. // _UpdateUserTemplate
  1707. // @Title _UpdateUserTemplate
  1708. // @Description 修改用户信息模板
  1709. // @Param name string false "名称"
  1710. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1711. // @Param default int64 false "是否默认 1:是 0:否"
  1712. // @Success 200 {object} Account
  1713. // @Failure 403 :id is empty
  1714. func System_UpdateUserTemplate(c *entitys.CtrlContext) {
  1715. var err error
  1716. var bean sysmodel.SysUserTemplate
  1717. if err = c.Ctx.BindJSON(&bean); err != nil {
  1718. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1719. return
  1720. }
  1721. user_id := c.Ctx.GetString("user_id")
  1722. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1723. if !exist && err == nil {
  1724. err = errors.New("record does not exist")
  1725. }
  1726. if err != nil {
  1727. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1728. return
  1729. }
  1730. bean.LastUpdateBy = user_id
  1731. bean.LastUpdateTime = time.Now().UnixNano()
  1732. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1733. if err == nil {
  1734. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1735. } else {
  1736. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1737. }
  1738. }
  1739. // _DelUserTemplate
  1740. // @Title _DelUserTemplate
  1741. // @Description 删除用户信息模板
  1742. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1743. // @Success 200 {object} Account
  1744. // @Failure 403 :id is empty
  1745. func System_DelUserTemplate(c *entitys.CtrlContext) {
  1746. var err error
  1747. var bean = &models.SysUserTemplate{}
  1748. type Param struct {
  1749. Id string `json:"id"`
  1750. }
  1751. var params []Param
  1752. c.Ctx.BindJSON(&params)
  1753. ids := []string{}
  1754. for _, param := range params {
  1755. ids = append(ids, param.Id)
  1756. }
  1757. session := c.Db.NewSession()
  1758. defer session.Close()
  1759. if err := session.Begin(); err != nil {
  1760. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1761. return
  1762. }
  1763. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1764. if err == nil {
  1765. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1766. }
  1767. if err == nil {
  1768. err = session.Commit()
  1769. }
  1770. if err == nil {
  1771. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1772. } else {
  1773. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1774. }
  1775. }
  1776. // _RecoverUserTemplate
  1777. // @Title _RecoverUserTemplate
  1778. // @Description 恢复用户信息模板
  1779. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1780. // @Success 200 {object} Account
  1781. // @Failure 403 :id is empty
  1782. func System_RecoverUserTemplate(c *entitys.CtrlContext) {
  1783. var err error
  1784. var bean = &models.SysUserTemplate{}
  1785. idArr := make([]string, 0)
  1786. if ids := c.Ctx.Query("ids"); ids == "" {
  1787. err = c.Ctx.BindJSON(&idArr)
  1788. if err != nil || len(idArr) <= 0 {
  1789. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1790. return
  1791. }
  1792. } else {
  1793. idArr = strings.Split(ids, ",")
  1794. }
  1795. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1796. if err == nil {
  1797. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1798. } else {
  1799. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1800. }
  1801. }
  1802. // _GetUserTemplate
  1803. // @Title _GetUserTemplate
  1804. // @Description 根据用户信息模板ID获取用户信息模板信息
  1805. // @Param id string false "用户信息模板ID"
  1806. // @Success 200 {object} Account
  1807. // @Failure 403 :id is empty
  1808. func System_GetUserTemplate(c *entitys.CtrlContext) {
  1809. id := c.Ctx.Query("id")
  1810. var area sysmodel.SysUserTemplate
  1811. exist, err := c.Db.SqlMapClient("selectone_sys_user_template", &map[string]interface{}{"id": id}).Get(&area)
  1812. if !exist && err == nil {
  1813. err = errors.New("record does not exist")
  1814. }
  1815. if err == nil {
  1816. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1817. } else {
  1818. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1819. }
  1820. }
  1821. // _FindUserTemplateDetailPage
  1822. // @Title _FindUserTemplateDetailPage
  1823. // @Description 获取用户信息模板明细分页数
  1824. // @Success 200 {object} Account
  1825. // @Failure 403 :id is empty
  1826. func System_FindUserTemplateDetailPage(c *entitys.CtrlContext) {
  1827. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1828. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1829. del_flag := c.Ctx.Query("del_flag")
  1830. __sort__ := c.Ctx.Query("__sort__")
  1831. name := c.Ctx.Query("name")
  1832. temp_id := c.Ctx.Query("temp_id")
  1833. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1834. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_detail_page", "sys_area", paramMap_i_t)
  1835. if err == nil {
  1836. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1837. } else {
  1838. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1839. }
  1840. }
  1841. // _AddUserTemplateDetail
  1842. // @Title _AddUserTemplateDetail
  1843. // @Description 添加用户信息模板明细
  1844. // @Param temp_id string false "模板id"
  1845. // @Param name string false "名称"
  1846. // @Param value string false "值"
  1847. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1848. // @Param priority int64 false "优先级"
  1849. // @Param content string false "内容"
  1850. // @Success 200 {object} Account
  1851. // @Failure 403 :id is empty
  1852. func System_AddUserTemplateDetail(c *entitys.CtrlContext) {
  1853. var err error
  1854. var bean sysmodel.SysUserTemplateDetail
  1855. if err = c.Ctx.BindJSON(&bean); err != nil {
  1856. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1857. return
  1858. }
  1859. user_id := c.Ctx.GetString("user_id")
  1860. bean.Id = sysutils.NewUUID()
  1861. bean.DelFlag = 0
  1862. bean.CreateBy = user_id
  1863. bean.LastUpdateBy = user_id
  1864. bean.CreateTime = sysmodel.NowLocal()
  1865. bean.LastUpdateTime = time.Now().UnixNano()
  1866. _, err = c.Db.InsertOne(&bean)
  1867. if err == nil {
  1868. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1869. } else {
  1870. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1871. }
  1872. }
  1873. // _UpdateUserTemplateDetail
  1874. // @Title _UpdateUserTemplateDetail
  1875. // @Description 修改用户信息模板明细
  1876. // @Param temp_id string false "模板id"
  1877. // @Param name string false "名称"
  1878. // @Param value string false "值"
  1879. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1880. // @Param priority int64 false "优先级"
  1881. // @Param content string false "内容"
  1882. // @Success 200 {object} Account
  1883. // @Failure 403 :id is empty
  1884. func System_UpdateUserTemplateDetail(c *entitys.CtrlContext) {
  1885. var err error
  1886. var bean sysmodel.SysUserTemplateDetail
  1887. if err = c.Ctx.BindJSON(&bean); err != nil {
  1888. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1889. return
  1890. }
  1891. user_id := c.Ctx.GetString("user_id")
  1892. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1893. if !exist && err == nil {
  1894. err = errors.New("record does not exist")
  1895. }
  1896. if err != nil {
  1897. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1898. return
  1899. }
  1900. bean.LastUpdateBy = user_id
  1901. bean.LastUpdateTime = time.Now().UnixNano()
  1902. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1903. if err == nil {
  1904. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1905. } else {
  1906. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1907. }
  1908. }
  1909. // _DelUserTemplateDetail
  1910. // @Title _DelUserTemplateDetail
  1911. // @Description 删除用户信息模板明细
  1912. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  1913. // @Success 200 {object} Account
  1914. // @Failure 403 :id is empty
  1915. func System_DelUserTemplateDetail(c *entitys.CtrlContext) {
  1916. var err error
  1917. var bean = &models.SysUserTemplateDetail{}
  1918. type Param struct {
  1919. Id string `json:"id"`
  1920. }
  1921. var params []Param
  1922. c.Ctx.BindJSON(&params)
  1923. ids := []string{}
  1924. for _, param := range params {
  1925. ids = append(ids, param.Id)
  1926. }
  1927. session := c.Db.NewSession()
  1928. defer session.Close()
  1929. if err := session.Begin(); err != nil {
  1930. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1931. return
  1932. }
  1933. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1934. if err == nil {
  1935. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1936. }
  1937. if err == nil {
  1938. err = session.Commit()
  1939. }
  1940. if err == nil {
  1941. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1942. } else {
  1943. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1944. }
  1945. }
  1946. // _RecoverUserTemplateDetail
  1947. // @Title _RecoverUserTemplateDetail
  1948. // @Description 恢复用户信息模板明细
  1949. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  1950. // @Success 200 {object} Account
  1951. // @Failure 403 :id is empty
  1952. func System_RecoverUserTemplateDetail(c *entitys.CtrlContext) {
  1953. var err error
  1954. var bean = &models.SysUserTemplateDetail{}
  1955. idArr := make([]string, 0)
  1956. if ids := c.Ctx.Query("ids"); ids == "" {
  1957. err = c.Ctx.BindJSON(&idArr)
  1958. if err != nil || len(idArr) <= 0 {
  1959. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1960. return
  1961. }
  1962. } else {
  1963. idArr = strings.Split(ids, ",")
  1964. }
  1965. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1966. if err == nil {
  1967. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1968. } else {
  1969. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1970. }
  1971. }
  1972. // _GetUserTemplateDetail
  1973. // @Title _GetUserTemplateDetail
  1974. // @Description 根据用户信息模板明细ID获取用户信息模板明细信息
  1975. // @Param id string false "用户信息模板明细ID"
  1976. // @Success 200 {object} Account
  1977. // @Failure 403 :id is empty
  1978. func System_GetUserTemplateDetail(c *entitys.CtrlContext) {
  1979. id := c.Ctx.Query("id")
  1980. var area sysmodel.SysUserTemplateDetail
  1981. exist, err := c.Db.SqlMapClient("selectone_sys_user_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  1982. if !exist && err == nil {
  1983. err = errors.New("record does not exist")
  1984. }
  1985. if err == nil {
  1986. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1987. } else {
  1988. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1989. }
  1990. }
  1991. // _AddOptionset
  1992. // @Title _AddOptionset
  1993. // @Description 添加字典
  1994. // @Param false "字典"
  1995. // @Success 200 {object} Account
  1996. // @Failure 403 :id is empty
  1997. func System_AddOptionset(c *entitys.CtrlContext) {
  1998. var paramObj0 models.SysOptionset
  1999. c.Ctx.BindJSON(&paramObj0)
  2000. user_id := c.Ctx.GetString("user_id")
  2001. paramObj0.Id = sysutils.NewUUID()
  2002. paramObj0.CreateBy = user_id
  2003. paramObj0.CreateTime = sysmodel.NowLocal()
  2004. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2005. paramObj0.LastUpdateBy = user_id
  2006. paramObj0.DelFlag = 0
  2007. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2008. _, err := c.Db.SqlMapClient("insert_sys_optionset", paramMap).Execute()
  2009. if err == nil {
  2010. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2011. } else {
  2012. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2013. }
  2014. }
  2015. // _DelOptionset
  2016. // @Title _DelOptionset
  2017. // @Description 删除字典
  2018. // @Param id string false "字典ID"
  2019. // @Success 200 {object} Account
  2020. // @Failure 403 :id is empty
  2021. func System_DelOptionset(c *entitys.CtrlContext) {
  2022. type Param struct {
  2023. Id string `json:"id"`
  2024. }
  2025. var params []Param
  2026. c.Ctx.BindJSON(&params)
  2027. ids := []string{}
  2028. for _, param := range params {
  2029. ids = append(ids, param.Id)
  2030. }
  2031. _, err := c.Db.Table(new(models.SysOptionset)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2032. if err == nil {
  2033. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2034. } else {
  2035. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2036. }
  2037. }
  2038. // _UpdateOptionset
  2039. // @Title _UpdateOptionset
  2040. // @Description 修改字典
  2041. // @Param false "字典"
  2042. // @Success 200 {object} Account
  2043. // @Failure 403 :id is empty
  2044. func System_UpdateOptionset(c *entitys.CtrlContext) {
  2045. var paramObj0 models.SysOptionset
  2046. c.Ctx.BindJSON(&paramObj0)
  2047. user_id := c.Ctx.GetString("user_id")
  2048. paramObj0.LastUpdateBy = user_id
  2049. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2050. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2051. _, err := c.Db.SqlMapClient("update_sys_optionset", paramMap).Execute()
  2052. if err == nil {
  2053. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2054. } else {
  2055. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2056. }
  2057. }
  2058. // _FindOptionsetPage
  2059. // @Title _FindOptionsetPage
  2060. // @Description 获取字典分页数
  2061. // @Success 200 {object} Account
  2062. // @Failure 403 :id is empty
  2063. func System_FindOptionsetPage(c *entitys.CtrlContext) {
  2064. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2065. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2066. name := c.Ctx.DefaultQuery("name", "")
  2067. code := c.Ctx.DefaultQuery("code", "")
  2068. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code}
  2069. result, err := sysutils.PageSearch(c.Db, "system", "find_optionset_page", "sys_optionset", paramMap_i_t)
  2070. if err == nil {
  2071. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2072. } else {
  2073. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2074. }
  2075. }
  2076. // _GetOptionsetByCode
  2077. // @Title _GetOptionsetByCode
  2078. // @Description 根据编码查找字典
  2079. // @Param code string false "字典编码"
  2080. // @Success 200 {object} Account
  2081. // @Failure 403 :id is empty
  2082. func System_GetOptionsetByCode(c *entitys.CtrlContext) {
  2083. code := c.Ctx.Query("code")
  2084. var option sysmodel.SysOptionset
  2085. exit, err := c.Db.Table(new(sysmodel.SysOptionset)).Where("code = ?", code).Get(&option)
  2086. if exit && err == nil {
  2087. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", option})
  2088. } else {
  2089. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2090. }
  2091. }
  2092. func __none_func_system__(params ...interface{}) bool {
  2093. return true
  2094. }