SystemController.go 65 KB

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