SystemController.go 90 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054
  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. paramMap_i_t := map[string]interface{}{
  93. "page": page,
  94. "rows": rows,
  95. "name": name,
  96. "login_id": login_id,
  97. }
  98. result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t)
  99. if err != nil {
  100. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), ""})
  101. return
  102. }
  103. //type Role struct {
  104. // RoleName string `json:"role_name"`
  105. // UserRole string `json:"user_role"`
  106. //}
  107. ////获取用户角色
  108. //users := result.Content.([]map[string]interface{})
  109. //for i, user := range users {
  110. // roles := []Role{}
  111. // err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles)
  112. // if err != nil {
  113. // fmt.Println("----", err.Error())
  114. // continue
  115. // }
  116. // users[i]["user_role"] = roles[0].UserRole
  117. // users[i]["role_name"] = roles[0].RoleName
  118. //}
  119. //
  120. //result.Content = users
  121. if err == nil {
  122. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  123. } else {
  124. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  125. }
  126. }
  127. // _GetOrgTree
  128. // @Title _GetOrgTree
  129. // @Description 获取组织架构树
  130. // @Success 200 {object} Account
  131. // @Failure 403 :id is empty
  132. func System_GetOrgTree(c *entitys.CtrlContext) {
  133. var roleRule interface{} = ""
  134. rule_code := "org_tree"
  135. var user sysmodel.SysUser
  136. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5,如果是管理员,可以看所有,否则只看到本部门
  137. user_id := c.Ctx.GetString("user_id")
  138. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  139. //如果是管理员
  140. if exist {
  141. user_id = ""
  142. paramMap_i_t := map[string]interface{}{"sort": "name", "role_rule": roleRule}
  143. result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t)
  144. if err == nil {
  145. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  146. } else {
  147. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  148. }
  149. } else if rule_code != "" {
  150. var roleRules []models.SysDataPermissionDetail
  151. // 根据rule_code获取角色对应的接口规则
  152. err := c.Db.SqlMapClient("get_user_rule_by_code", rule_code, user_id).Find(&roleRules)
  153. if err != nil {
  154. roleRule = ""
  155. } else {
  156. roleRule = sysutils.ParseRule(roleRules)
  157. }
  158. // 查找用户组织ID
  159. _, err = c.Db.ID(user_id).Get(&user)
  160. if err != nil {
  161. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  162. return
  163. }
  164. stplkey := fmt.Sprintf("%s_%s.tpl", "system", "get_org_tree")
  165. paramMap_i_t := map[string]interface{}{"sort": "name", "org_id": user.OrgId, "role_rule": roleRule}
  166. result, err := c.Db.SqlTemplateClient(stplkey, &paramMap_i_t).Query().List()
  167. if err != nil {
  168. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  169. return
  170. }
  171. var org_id = ""
  172. if roleRule.(template.HTML) == "" {
  173. org_id = ""
  174. } else {
  175. org_id = user.OrgId
  176. }
  177. tree, err := sysutils.BuildTree(org_id, result)
  178. if err == nil {
  179. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", tree})
  180. } else {
  181. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  182. }
  183. }
  184. }
  185. // _FindOrgPage
  186. // @Title _FindOrgPage
  187. // @Description 获取组织架构分页数
  188. // @Success 200 {object} Account
  189. // @Failure 403 :id is empty
  190. func System_FindOrgPage(c *entitys.CtrlContext) {
  191. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  192. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  193. name := c.Ctx.DefaultQuery("name", "")
  194. code := c.Ctx.DefaultQuery("code", "")
  195. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  196. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id}
  197. result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "sys_org", paramMap_i_t)
  198. if err == nil {
  199. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  200. } else {
  201. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  202. }
  203. }
  204. // _AddUser
  205. // @Title _AddUser
  206. // @Description 添加用户
  207. // @Param login_id string false "登录ID"
  208. // @Param password string false "密码"
  209. // @Param org_id string false "组织ID"
  210. // @Param email string false "邮箱"
  211. // @Success 200 {object} Account
  212. // @Failure 403 :id is empty
  213. func System_AddUser(c *entitys.CtrlContext) {
  214. tk, _ := c.Ctx.Get("token")
  215. opUser := tk.(*entitys.Token)
  216. var user sysmodel.SysUser
  217. err := c.Ctx.BindJSON(&user)
  218. if err != nil {
  219. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  220. }
  221. fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId)
  222. //查找login_id是否存在
  223. exit, _ := c.PlatformDbEngine.Table(new(sysmodel.SysUser)).Where("login_id = ? and del_flag = ?", user.LoginId, 0).Exist()
  224. if exit {
  225. c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
  226. return
  227. }
  228. user_id := c.Ctx.GetString("user_id")
  229. user.Id = sysutils.NewUUID()
  230. user.Name = user.Name
  231. user.CreateTime = models.NowLocal()
  232. user.LastUpdateTime = time.Now().UnixNano()
  233. user.CreateBy = user_id
  234. user.LastUpdateBy = user_id
  235. user.DelFlag = 0
  236. user.Domain = opUser.Domain
  237. user.Password = sysutils.HashPassword(user.Password, "")
  238. _, err = c.PlatformDbEngine.Insert(&user)
  239. if err != nil {
  240. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台插入用户错误:" + err.Error(), nil})
  241. }
  242. _, err = c.Db.Insert(&user)
  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. // _DelUser
  250. // @Title _DelUser
  251. // @Description 删除用户
  252. // @Param id string false "用户ID"
  253. // @Success 200 {object} Account
  254. // @Failure 403 :id is empty
  255. func System_DelUser(c *entitys.CtrlContext) {
  256. type Param struct {
  257. Id string `json:"id"`
  258. }
  259. var params []Param
  260. c.Ctx.BindJSON(&params)
  261. ids := []string{}
  262. for _, param := range params {
  263. ids = append(ids, param.Id)
  264. }
  265. session := c.Db.NewSession()
  266. defer session.Close()
  267. session.Begin()
  268. _, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  269. if err != nil {
  270. session.Rollback()
  271. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  272. return
  273. }
  274. _, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1})
  275. if err != nil {
  276. session.Rollback()
  277. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  278. return
  279. }
  280. session.Commit()
  281. _, err = c.PlatformDbEngine.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  282. if err == nil {
  283. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  284. } else {
  285. c.Ctx.JSON(200, sysmodel.SysReturn{500, "平台删除用户失败:" + err.Error(), nil})
  286. }
  287. }
  288. // _UpdateUser
  289. // @Title _UpdateUser
  290. // @Description 修改用户
  291. // @Param login_id string false "登录ID"
  292. // @Param password string false "密码"
  293. // @Param org_id string false "组织ID"
  294. // @Param email string false "邮箱"
  295. // @Success 200 {object} Account
  296. // @Failure 403 :id is empty
  297. func System_UpdateUser(c *entitys.CtrlContext) {
  298. tk, _ := c.Ctx.Get("token")
  299. user := tk.(*entitys.Token)
  300. var postData struct {
  301. sysmodel.SysUser
  302. UserRole []string `json:"user_role"`
  303. }
  304. //var user sysmodel.SysUser
  305. err := c.Ctx.BindJSON(&postData)
  306. if err != nil {
  307. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  308. return
  309. }
  310. //postData.LastUpdateTime = time.Now().UnixNano()
  311. //postData.LastUpdateBy = user.UserId
  312. session := c.Db.NewSession()
  313. defer session.Close()
  314. session.Begin()
  315. //paramMap, _ := sysutils.BeanToMap(&postData)
  316. 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}
  317. _, err = session.SqlMapClient("update_user", &paramMap).Execute()
  318. if err != nil {
  319. session.Rollback()
  320. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  321. return
  322. }
  323. _, err = c.PlatformDbEngine.SqlMapClient("update_user", &paramMap).Execute()
  324. if err != nil {
  325. session.Rollback()
  326. c.Ctx.JSON(500, sysmodel.SysReturn{500, "平台更新用户失败:" + err.Error(), nil})
  327. return
  328. }
  329. userRoles := []sysmodel.SysUserRole{}
  330. for _, roleId := range postData.UserRole {
  331. userRole := sysmodel.SysUserRole{}
  332. userRole.Id = sysutils.NewUUID()
  333. userRole.UserId = postData.Id
  334. userRole.RoleId = roleId
  335. userRole.DelFlag = 0
  336. userRole.CreateTime = sysmodel.NowLocal()
  337. userRole.CreateBy = user.UserId
  338. userRole.LastUpdateBy = user.UserId
  339. userRole.LastUpdateTime = time.Now().UnixNano()
  340. userRoles = append(userRoles, userRole)
  341. }
  342. _, err = session.SqlMapClient("delete_user_role", &map[string]interface{}{"user_id": postData.Id}).Execute()
  343. if err != nil {
  344. session.Rollback()
  345. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  346. return
  347. }
  348. _, err = session.InsertMulti(&userRoles)
  349. if err == nil {
  350. session.Commit()
  351. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  352. } else {
  353. session.Rollback()
  354. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  355. }
  356. }
  357. // _UpdatePassword
  358. // @Title _UpdatePassword
  359. // @Description 修改用户密码
  360. // @Param string false "用户ID"
  361. // @Param password string false "密码"
  362. // @Success 200 {object} Account
  363. // @Failure 403 :id is empty
  364. func System_UpdatePassword(c *entitys.CtrlContext) {
  365. var user sysmodel.SysUser
  366. err := c.Ctx.BindJSON(&user)
  367. operatorId := c.Ctx.GetString("user_id")
  368. if err != nil {
  369. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  370. return
  371. }
  372. user.Password = sysutils.HashPassword(user.Password, "")
  373. paramMap := map[string]interface{}{"id": user.Id, "password": user.Password, "last_update_time": time.Now().UnixNano(), "last_update_by": operatorId}
  374. _, err = c.PlatformDbEngine.SqlMapClient("update_user_password", &paramMap).Execute()
  375. if err == nil {
  376. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  377. } else {
  378. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  379. }
  380. }
  381. // _GetUser
  382. // @Title _GetUser
  383. // @Description 更加用户ID获取用户信息
  384. // @Param user_id string false "用户ID"
  385. // @Success 200 {object} Account
  386. // @Failure 403 :id is empty
  387. func System_GetUser(c *entitys.CtrlContext) {
  388. user_id := c.Ctx.Query("user_id")
  389. var user sysmodel.SysUser
  390. _, err := c.Db.SqlMapClient("selectone_sys_user", &map[string]interface{}{"id": user_id}).Get(&user)
  391. if err == nil {
  392. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", user})
  393. } else {
  394. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  395. }
  396. }
  397. // _AddRole
  398. // @Title _AddRole
  399. // @Description 添加角色
  400. // @Param name string false "角色名称"
  401. // @Param remark string false "备注"
  402. // @Success 200 {object} Account
  403. // @Failure 403 :id is empty
  404. func System_AddRole(c *entitys.CtrlContext) {
  405. var paramObj0 models.SysRole
  406. c.Ctx.BindJSON(&paramObj0)
  407. tk, _ := c.Ctx.Get("token")
  408. user := tk.(*entitys.Token)
  409. paramObj0.Id = sysutils.NewUUID()
  410. paramObj0.CreateBy = user.UserId
  411. paramObj0.LastUpdateBy = user.UserId
  412. paramObj0.CreateTime = models.NowLocal()
  413. paramObj0.LastUpdateTime = time.Now().UnixNano()
  414. paramObj0.DelFlag = 0
  415. //_, err := c.LocalSqlMapClient("insert_sys_role", &paramObj0).Execute()
  416. paramMap, err := sysutils.BeanToMap(&paramObj0)
  417. _, err = c.Db.SqlMapClient("insert_sys_role", paramMap).Execute()
  418. if err == nil {
  419. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  420. } else {
  421. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  422. }
  423. }
  424. // _DelRole
  425. // @Title _DelRole
  426. // @Description 添加角色
  427. // @Param id string false "角色ID"
  428. // @Success 200 {object} Account
  429. // @Failure 403 :id is empty
  430. func System_DelRole(c *entitys.CtrlContext) {
  431. type Param struct {
  432. Id string `json:"id"`
  433. }
  434. var params []Param
  435. c.Ctx.BindJSON(&params)
  436. ids := []string{}
  437. for _, param := range params {
  438. ids = append(ids, param.Id)
  439. }
  440. _, err := c.Db.Table(new(models.SysRole)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  441. if err == nil {
  442. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  443. } else {
  444. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  445. }
  446. }
  447. // _UpdateRole
  448. // @Title _UpdateRole
  449. // @Description 修改角色
  450. // @Param id string false "角色ID"
  451. // @Param name string false "角色名称"
  452. // @Param remark string false "备注"
  453. // @Success 200 {object} Account
  454. // @Failure 403 :id is empty
  455. func System_UpdateRole(c *entitys.CtrlContext) {
  456. var role sysmodel.SysRole
  457. err := c.Ctx.BindJSON(&role)
  458. if err != nil {
  459. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  460. return
  461. }
  462. paramMap, _ := sysutils.BeanToMap(&role)
  463. _, err = c.Db.SqlMapClient("update_sys_role", paramMap).Execute()
  464. if err == nil {
  465. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  466. } else {
  467. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  468. }
  469. }
  470. // _GetUserRoles
  471. // @Title _GetUserRoles
  472. // @Description 根据用户id获取用户角色
  473. // @Param user_id string false "用户ID"
  474. // @Success 200 {object} Account
  475. // @Failure 403 :id is empty
  476. func System_GetUserRoles(c *entitys.CtrlContext) {
  477. user_id := c.Ctx.Query("user_id")
  478. var roles []sysmodel.SysRole
  479. 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)
  480. if err == nil {
  481. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", roles})
  482. } else {
  483. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  484. }
  485. }
  486. // _FindRolePage
  487. // @Title _FindRolePage
  488. // @Description 角色分页
  489. // @Param page false "分页参数"
  490. // @Success 200 {object} Account
  491. // @Failure 403 :id is empty
  492. func System_FindRolePage(c *entitys.CtrlContext) {
  493. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  494. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  495. name := c.Ctx.DefaultQuery("name", "")
  496. code := c.Ctx.DefaultQuery("code", "")
  497. paramMap_i_t := map[string]interface{}{"name": name, "code": code, "page": page, "rows": rows}
  498. result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t)
  499. if err == nil {
  500. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  501. } else {
  502. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  503. }
  504. }
  505. // _FindMenuPage
  506. // @Title _FindMenuPage
  507. // @Description 获取角色分页数
  508. // @Success 200 {object} Account
  509. // @Failure 403 :id is empty
  510. func System_FindMenuPage(c *entitys.CtrlContext) {
  511. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  512. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  513. user_id := c.Ctx.DefaultQuery("user_id", "")
  514. name := c.Ctx.DefaultQuery("name", "")
  515. code := c.Ctx.DefaultQuery("code", "")
  516. cn_id := c.Ctx.DefaultQuery("cn_id", "")
  517. _type := c.Ctx.DefaultQuery("type", "")
  518. type_op := c.Ctx.DefaultQuery("type_op", "")
  519. hidden := c.Ctx.DefaultQuery("hidden", "")
  520. op := template.HTML(type_op)
  521. // 管理员角色ID 5c38ee66-c5e6-40a7-b190-86d115bae3e5
  522. exist, _ := c.Db.Table("sys_user_role").Where("user_id = ? and role_id = ?", user_id, "5c38ee66-c5e6-40a7-b190-86d115bae3e5").Exist()
  523. //如果是管理员
  524. if exist {
  525. user_id = ""
  526. }
  527. 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}
  528. result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t)
  529. if err == nil {
  530. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  531. } else {
  532. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  533. }
  534. }
  535. // _FindDomainPage
  536. // @Title _FindDomainPage
  537. // @Description 获取域分页数
  538. // @Success 200 {object} Account
  539. // @Failure 403 :id is empty
  540. func System_FindDomainPage(c *entitys.CtrlContext) {
  541. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  542. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  543. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  544. result, err := sysutils.PageSearch(c.Db, "system", "find_domain_page", "sys_domain", paramMap_i_t)
  545. if err == nil {
  546. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  547. } else {
  548. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  549. }
  550. }
  551. // _FindRoleMenu
  552. // @Title _FindRoleMenu
  553. // @Description 查找角色权限
  554. // @Param role_id string false "角色id"
  555. // @Success 200 {object} Account
  556. // @Failure 403 :id is empty
  557. func System_FindRoleMenu(c *entitys.CtrlContext) {
  558. role_id := c.Ctx.Query("role_id")
  559. ret := __none_func_system__(role_id)
  560. if ret {
  561. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  562. } else {
  563. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  564. }
  565. }
  566. // _SaveRoleMenu
  567. // @Title _SaveRoleMenu
  568. // @Description 保存角色权限
  569. // @Param role_menu string false "角色权限"
  570. // @Success 200 {object} Account
  571. // @Failure 403 :id is empty
  572. func System_SaveRoleMenu(c *entitys.CtrlContext) {
  573. var paramObj0 []models.SaveRoleMenu
  574. c.Ctx.BindJSON(&paramObj0)
  575. ret := __none_func_system__(paramObj0)
  576. if ret {
  577. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  578. } else {
  579. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  580. }
  581. }
  582. // _RoleAll
  583. // @Title _RoleAll
  584. // @Description 查找所有角色
  585. // @Success 200 {object} Account
  586. // @Failure 403 :id is empty
  587. func System_RoleAll(c *entitys.CtrlContext) {
  588. ret := __none_func_system__()
  589. if ret {
  590. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  591. } else {
  592. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  593. }
  594. }
  595. // _FindPermissions
  596. // @Title _FindPermissions
  597. // @Description 查找用户权限
  598. // @Success 200 {object} Account
  599. // @Failure 403 :id is empty
  600. func System_FindPermissions(c *entitys.CtrlContext) {
  601. ret := __none_func_system__()
  602. if ret {
  603. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  604. } else {
  605. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  606. }
  607. }
  608. // _AddMenu
  609. // @Title _AddMenu
  610. // @Description 添加菜单
  611. // @Param string false "菜单"
  612. // @Success 200 {object} Account
  613. // @Failure 403 :id is empty
  614. func System_AddMenu(c *entitys.CtrlContext) {
  615. var paramObj0 models.SysMenu
  616. c.Ctx.BindJSON(&paramObj0)
  617. tk, _ := c.Ctx.Get("token")
  618. user := tk.(*entitys.Token)
  619. paramObj0.Id = sysutils.NewUUID()
  620. paramObj0.CreateBy = user.UserId
  621. paramObj0.LastUpdateBy = user.UserId
  622. paramObj0.CreateTime = models.NowLocal()
  623. paramObj0.LastUpdateTime = time.Now().UnixNano()
  624. paramObj0.DelFlag = 0
  625. if paramObj0.Parent != "" {
  626. parentNodes := []sysmodel.SysMenu{}
  627. err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Find(&parentNodes)
  628. if err != nil {
  629. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  630. return
  631. }
  632. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  633. } else {
  634. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  635. }
  636. //_, err := c.LocalSqlMapClient("insert_sys_menu", &paramObj0).Execute()
  637. paramMap, err := sysutils.BeanToMap(&paramObj0)
  638. _, err = c.Db.SqlMapClient("insert_sys_menu", paramMap).Execute()
  639. if err == nil {
  640. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  641. } else {
  642. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  643. }
  644. }
  645. // _DelMenu
  646. // @Title _DelMenu
  647. // @Description 删除菜单
  648. // @Param id string false "菜单ID"
  649. // @Success 200 {object} Account
  650. // @Failure 403 :id is empty
  651. func System_DelMenu(c *entitys.CtrlContext) {
  652. type Param struct {
  653. Id string `json:"id"`
  654. }
  655. var params []Param
  656. c.Ctx.BindJSON(&params)
  657. ids := []string{}
  658. for _, param := range params {
  659. ids = append(ids, param.Id)
  660. }
  661. _, err := c.Db.Table(new(models.SysMenu)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  662. if err == nil {
  663. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  664. } else {
  665. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  666. }
  667. }
  668. // _UpdateMenu
  669. // @Title _UpdateMenu
  670. // @Description 更新菜单
  671. // @Param string false "菜单"
  672. // @Success 200 {object} Account
  673. // @Failure 403 :id is empty
  674. func System_UpdateMenu(c *entitys.CtrlContext) {
  675. var paramObj0 models.SysMenu
  676. err := c.Ctx.BindJSON(&paramObj0)
  677. tk, _ := c.Ctx.Get("token")
  678. user := tk.(*entitys.Token)
  679. if paramObj0.Parent != "" {
  680. parentNode := sysmodel.SysMenu{}
  681. bool, err := c.Db.SqlMapClient("select_parent_menu", paramObj0.Parent).Get(&parentNode)
  682. if !bool || err != nil {
  683. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  684. return
  685. }
  686. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNode.Inheritance)
  687. } else {
  688. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  689. }
  690. paramObj0.LastUpdateBy = user.UserId
  691. paramObj0.LastUpdateTime = time.Now().UnixNano()
  692. sess := c.Db.NewSession()
  693. sess.Begin()
  694. paramMap, err := sysutils.BeanToMap(&paramObj0)
  695. _, err = sess.SqlMapClient("update_sys_menu", paramMap).Execute()
  696. if err != nil {
  697. sess.Rollback()
  698. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  699. }
  700. // 查找目录,修改Inheritance值
  701. //childrenNodes := []sysmodel.SysMenu{}
  702. childrenNode := new(sysmodel.SysMenu)
  703. rows, err := sess.SqlMapClient("select_children_menu", paramObj0.Id).Rows(childrenNode)
  704. if err != nil {
  705. sess.Rollback()
  706. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  707. return
  708. }
  709. defer rows.Close()
  710. for rows.Next() {
  711. err = rows.Scan(childrenNode)
  712. if err != nil {
  713. sess.Rollback()
  714. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  715. return
  716. }
  717. childrenNode.Inheritance = fmt.Sprintf("%s%s|", paramObj0.Inheritance, childrenNode.Id)
  718. childrenNode.LastUpdateBy = user.UserId
  719. childrenNode.LastUpdateTime = time.Now().UnixNano()
  720. paramMap, _ := sysutils.BeanToMap(childrenNode)
  721. _, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute()
  722. if err != nil {
  723. break
  724. }
  725. }
  726. if err == nil {
  727. sess.Commit()
  728. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  729. } else {
  730. sess.Rollback()
  731. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  732. }
  733. }
  734. // _AddOrg
  735. // @Title _AddOrg
  736. // @Description 添加组织
  737. // @Param name string false "组织名称"
  738. // @Param domain string false "域"
  739. // @Param parent string false "父ID"
  740. // @Success 200 {object} Account
  741. // @Failure 403 :id is empty
  742. func System_AddOrg(c *entitys.CtrlContext) {
  743. var paramObj0 models.SysOrg
  744. c.Ctx.BindJSON(&paramObj0)
  745. tk, _ := c.Ctx.Get("token")
  746. user := tk.(*entitys.Token)
  747. paramObj0.Id = sysutils.NewUUID()
  748. paramObj0.CreateBy = user.UserId
  749. paramObj0.LastUpdateBy = user.UserId
  750. paramObj0.CreateTime = models.NowLocal()
  751. paramObj0.LastUpdateTime = time.Now().UnixNano()
  752. paramObj0.DelFlag = 0
  753. if paramObj0.Parent != "" {
  754. parentNodes := []sysmodel.SysOrg{}
  755. err := c.Db.SqlMapClient("selectone_sys_org", &map[string]interface{}{"id": paramObj0.Parent}).Find(&parentNodes)
  756. if err != nil {
  757. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  758. return
  759. }
  760. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  761. } else {
  762. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  763. }
  764. //_, err := c.LocalSqlMapClient("insert_sys_org", &paramObj0).Execute()
  765. paramMap, err := sysutils.BeanToMap(&paramObj0)
  766. _, err = c.Db.SqlMapClient("insert_sys_org", paramMap).Execute()
  767. if err == nil {
  768. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  769. } else {
  770. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  771. }
  772. }
  773. // _DelOrg
  774. // @Title _DelOrg
  775. // @Description 删除组织
  776. // @Param id string array false "用户ID"
  777. // @Success 200 {object} Account
  778. // @Failure 403 :id is empty
  779. func System_DelOrg(c *entitys.CtrlContext) {
  780. type Param struct {
  781. Id string `json:"id"`
  782. }
  783. var params []Param
  784. c.Ctx.BindJSON(&params)
  785. ids := []string{}
  786. for _, param := range params {
  787. ids = append(ids, param.Id)
  788. }
  789. _, err := c.Db.Table(new(models.SysOrg)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  790. if err == nil {
  791. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  792. } else {
  793. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  794. }
  795. }
  796. // _UpdateOrg
  797. // @Title _UpdateOrg
  798. // @Description 修改组织
  799. // @Param name string false "组织名称"
  800. // @Param domain string false "域"
  801. // @Param parent string false "父ID"
  802. // @Success 200 {object} Account
  803. // @Failure 403 :id is empty
  804. func System_UpdateOrg(c *entitys.CtrlContext) {
  805. //name := c.Ctx.Query("name")
  806. //domain := c.Ctx.Query("domain")
  807. //parent := c.Ctx.Query("parent")
  808. var paramObj0 models.SysOrg
  809. err := c.Ctx.BindJSON(&paramObj0)
  810. tk, _ := c.Ctx.Get("token")
  811. user := tk.(*entitys.Token)
  812. if paramObj0.Parent != "" {
  813. parentNodes := []sysmodel.SysOrg{}
  814. err := c.Db.SqlMapClient("one_sys_org", paramObj0.Parent).Find(&parentNodes)
  815. if err != nil {
  816. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  817. return
  818. }
  819. paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
  820. } else {
  821. paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
  822. }
  823. paramObj0.LastUpdateBy = user.UserId
  824. paramObj0.LastUpdateTime = time.Now().UnixNano()
  825. paramMap, err := sysutils.BeanToMap(&paramObj0)
  826. _, err = c.Db.SqlMapClient("update_sys_org", paramMap).Execute()
  827. if err == nil {
  828. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  829. } else {
  830. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  831. }
  832. }
  833. // _GetOrgByUserid
  834. // @Title _GetOrgByUserid
  835. // @Description 根据组织
  836. // @Param user_id string false "用户id"
  837. // @Success 200 {object} Account
  838. // @Failure 403 :id is empty
  839. func System_GetOrgUsers(c *entitys.CtrlContext) {
  840. user_id := c.Ctx.Query("user_id")
  841. role_id := c.Ctx.Query("role_id")
  842. fmt.Println(user_id, "---------", role_id)
  843. var err error
  844. //users := []sysmodel.SysUser{}
  845. var users []sysmodel.SysUser
  846. if role_id == "" {
  847. err = c.Db.SqlMapClient("get_org_users", user_id).Find(&users)
  848. } else {
  849. err = c.Db.SqlMapClient("get_org_role_users", user_id, role_id).Find(&users)
  850. if err != nil || users == nil {
  851. c.Ctx.JSON(500, sysmodel.SysReturn{500, "无法找到部门审批人!", nil})
  852. return
  853. }
  854. }
  855. if err == nil {
  856. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", users})
  857. } else {
  858. c.Ctx.JSON(500, sysmodel.SysReturn{500, "错误", nil})
  859. }
  860. }
  861. // _AddDomain
  862. // @Title _AddDomain
  863. // @Description 添加域
  864. // @Param false "域"
  865. // @Success 200 {object} Account
  866. // @Failure 403 :id is empty
  867. func System_AddDomain(c *entitys.CtrlContext) {
  868. var paramObj0 models.SysDomain
  869. c.Ctx.BindJSON(&paramObj0)
  870. ////1、测试连接串
  871. //db, err := xorm.NewEngine("mysql", paramObj0.DataSource)
  872. //if err == nil {
  873. // //engine.initOrmEngine(db, "mysql")
  874. // //c.BusinessOrmEngine[v.Domain] = db
  875. //}
  876. tk, _ := c.Ctx.Get("token")
  877. user := tk.(*entitys.Token)
  878. paramObj0.Id = sysutils.NewUUID()
  879. paramObj0.CreateBy = user.UserId
  880. paramObj0.LastUpdateBy = user.UserId
  881. paramObj0.CreateTime = sysmodel.NowLocal()
  882. paramObj0.LastUpdateTime = time.Now().UnixNano()
  883. paramObj0.Theme = "default"
  884. paramObj0.DelFlag = 0
  885. paramMap, err := sysutils.BeanToMap(&paramObj0)
  886. if err != nil {
  887. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  888. return
  889. }
  890. _, err = c.Db.SqlMapClient("insert_sys_domain", paramMap).Execute()
  891. if err == nil {
  892. //添加数据库基本用户权限数据
  893. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  894. if ret {
  895. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  896. } else {
  897. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  898. }
  899. } else {
  900. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  901. }
  902. }
  903. // _DelDomain
  904. // @Title _DelDomain
  905. // @Description 删除域
  906. // @Param id string false "域ID"
  907. // @Success 200 {object} Account
  908. // @Failure 403 :id is empty
  909. func System_DelDomain(c *entitys.CtrlContext) {
  910. type Param struct {
  911. Id string `json:"id"`
  912. }
  913. var params []Param
  914. c.Ctx.BindJSON(&params)
  915. ids := []string{}
  916. for _, param := range params {
  917. ids = append(ids, param.Id)
  918. }
  919. _, err := c.Db.Table(new(models.SysDomain)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  920. if err != nil {
  921. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  922. return
  923. }
  924. ret := __none_func_system__()
  925. if ret {
  926. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  927. } else {
  928. c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
  929. }
  930. }
  931. // _UpdateDomain
  932. // @Title _UpdateDomain
  933. // @Description 修改域
  934. // @Param false "域"
  935. // @Success 200 {object} Account
  936. // @Failure 403 :id is empty
  937. func System_UpdateDomain(c *entitys.CtrlContext) {
  938. var paramObj0 models.SysDomain
  939. c.Ctx.BindJSON(&paramObj0)
  940. tk, _ := c.Ctx.Get("token")
  941. user := tk.(*entitys.Token)
  942. paramObj0.LastUpdateTime = time.Now().UnixNano()
  943. paramObj0.LastUpdateBy = user.UserId
  944. paramMap, err := sysutils.BeanToMap(&paramObj0)
  945. if err != nil {
  946. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  947. return
  948. }
  949. _, err = c.Db.SqlMapClient("update_sys_domain", paramMap).Execute()
  950. if err == nil {
  951. //添加数据库基本用户权限数据
  952. ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true)
  953. if ret {
  954. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id})
  955. } else {
  956. c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil})
  957. }
  958. } else {
  959. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  960. }
  961. }
  962. // _GetDomain
  963. // @Title _GetDomain
  964. // @Description 根据domain获取域
  965. // @Param domain string false "域"
  966. // @Success 200 {object} Account
  967. // @Failure 403 :id is empty
  968. func System_GetDomain(c *entitys.CtrlContext) {
  969. domain := c.Ctx.Query("domain")
  970. var domainObj sysmodel.SysDomain
  971. _, err := c.PlatformDbEngine.Where("domain = ?", domain).Get(&domainObj)
  972. if err == nil {
  973. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", domainObj})
  974. } else {
  975. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  976. }
  977. }
  978. // _AddDomainMenu
  979. // @Title _AddDomainMenu
  980. // @Description 域添加菜单
  981. // @Param false "添加域菜单bean"
  982. // @Success 200 {object} Account
  983. // @Failure 403 :id is empty
  984. func System_AddDomainMenu(c *entitys.CtrlContext) {
  985. var paramObj0 struct {
  986. //域名ID
  987. DomainId string `json:"domain_id"`
  988. //菜单
  989. Menus []sysmodel.SysMenu `json:"menus"`
  990. // type
  991. Type int `json:"type"`
  992. }
  993. err := c.Ctx.BindJSON(&paramObj0)
  994. if err != nil {
  995. c.Ctx.JSON(500, sysmodel.SysReturn{500, "BindJSON error: " + err.Error(), nil})
  996. return
  997. }
  998. var domain sysmodel.SysDomain
  999. param := map[string]interface{}{"id": paramObj0.DomainId}
  1000. _, err = c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  1001. if err != nil {
  1002. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  1003. return
  1004. }
  1005. var menuIds = make([]string, len(paramObj0.Menus))
  1006. for i := range paramObj0.Menus {
  1007. menuIds[i] = paramObj0.Menus[i].Id
  1008. }
  1009. var menus []sysmodel.SysMenu
  1010. err = c.Db.In("id", menuIds).Find(&menus)
  1011. if err != nil {
  1012. c.Ctx.JSON(500, sysmodel.SysReturn{500, "find menu error: " + err.Error(), nil})
  1013. return
  1014. }
  1015. for i := range menus {
  1016. for j := range paramObj0.Menus {
  1017. if menus[i].Id == paramObj0.Menus[j].Id {
  1018. menus[i].Name = paramObj0.Menus[j].Name
  1019. break
  1020. }
  1021. }
  1022. }
  1023. session := c.App.GetBusinessDb(domain.Domain).NewSession()
  1024. defer session.Close()
  1025. session.Begin()
  1026. deleteSqlMapKey := ""
  1027. if paramObj0.Type >= 0 {
  1028. deleteSqlMapKey = "delete_backend_sys_menu"
  1029. } else {
  1030. deleteSqlMapKey = "delete_app_sys_menu"
  1031. }
  1032. _, err = c.App.GetBusinessDb(domain.Domain).SqlMapClient(deleteSqlMapKey).Execute()
  1033. if err != nil {
  1034. session.Rollback()
  1035. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  1036. return
  1037. }
  1038. if len(paramObj0.Menus) <= 0 {
  1039. session.Commit()
  1040. c.Ctx.JSON(200, sysmodel.SysReturn{200, "the menus is empty", nil})
  1041. return
  1042. }
  1043. _, err = c.App.GetBusinessDb(domain.Domain).Insert(&paramObj0.Menus)
  1044. if err != nil {
  1045. session.Rollback()
  1046. c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
  1047. return
  1048. }
  1049. session.Commit()
  1050. ret := __none_func_system__(paramObj0)
  1051. if ret {
  1052. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1053. } else {
  1054. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1055. }
  1056. }
  1057. // _GetDomainMenuTree
  1058. // @Title _GetDomainMenuTree
  1059. // @Description 域添加菜单
  1060. // @Param domain_id string false "域id"
  1061. // @Success 200 {object} Account
  1062. // @Failure 403 :id is empty
  1063. func System_GetDomainMenuTree(c *entitys.CtrlContext) {
  1064. domain_id := c.Ctx.Query("domain_id")
  1065. _type := c.Ctx.DefaultQuery("type", "")
  1066. type_op := c.Ctx.DefaultQuery("type_op", "")
  1067. op := template.HTML(type_op)
  1068. var domain sysmodel.SysDomain
  1069. param := map[string]interface{}{"id": domain_id, "type": _type, "type_op": op}
  1070. _, err := c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
  1071. if err != nil {
  1072. c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
  1073. return
  1074. }
  1075. paramMap := map[string]interface{}{"user_id": "", "type": _type, "type_op": op, "name": "", "hidden": ""}
  1076. domainMenus, err := c.App.GetBusinessDb(domain.Domain).SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  1077. if err != nil {
  1078. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get domain_menu tree: " + err.Error(), nil})
  1079. return
  1080. }
  1081. domainTree, err := sysutils.BuildTree("", domainMenus)
  1082. sysMenus, err := c.Db.SqlTemplateClient("system_get_menu_tree.tpl", &paramMap).Query().List()
  1083. if err != nil {
  1084. c.Ctx.JSON(500, sysmodel.SysReturn{500, "get sys_menu tree: " + err.Error(), nil})
  1085. return
  1086. }
  1087. var sysMenusMap map[string]map[string]interface{}
  1088. sysMenusMap = make(map[string]map[string]interface{}, 0)
  1089. for _, menu := range sysMenus {
  1090. sysMenusMap[menu["id"].(string)] = menu
  1091. }
  1092. //剔除域已存在的菜单
  1093. //for _, domainMenu := range domainMenus {
  1094. // delete(sysMenusMap, domainMenu["id"].(string))
  1095. //}
  1096. var sysMenuRest []map[string]interface{}
  1097. for _, menu := range sysMenusMap {
  1098. sysMenuRest = append(sysMenuRest, menu)
  1099. }
  1100. sysTree, err := sysutils.BuildTree("", sysMenuRest)
  1101. ret := __none_func_system__(domain_id)
  1102. if ret {
  1103. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "domain_tree": domainTree}})
  1104. } else {
  1105. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1106. }
  1107. }
  1108. // _GetUserMenuTree
  1109. // @Title _GetUserMenuTree
  1110. // @Description 获取用户权限菜单
  1111. // @Param user_id string false "用户id"
  1112. // @Success 200 {object} Account
  1113. // @Failure 403 :id is empty
  1114. func System_GetRoleMenuTree(c *entitys.CtrlContext) {
  1115. role_id := c.Ctx.Query("role_id")
  1116. //paramMap := map[string]interface{}{"role_id": role_id}
  1117. //sysMenu, err := c.Db.SqlMapClient("get_role_no_have_menu_tree", &paramMap).Query().List()
  1118. //if err != nil {
  1119. // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1120. // return
  1121. //}
  1122. //sysTree, err := sysutils.BuildTree("", sysMenu)
  1123. op := template.HTML(">=")
  1124. paramMap := map[string]interface{}{"user_id": "", "sort": "name", "type": 0, "type_op": op, "hidden": 0}
  1125. sysTree, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap)
  1126. if err != nil {
  1127. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1128. return
  1129. }
  1130. paramMap2 := map[string]interface{}{"role_id": role_id}
  1131. //roleTree, err := sysutils.TreeSearch(c.Db, "system", "get_role_menu_tree", "sys_menu", paramMap2)
  1132. roleMenu, err := c.Db.SqlMapClient("get_role_menu_tree", &paramMap2).Query().List()
  1133. if err != nil {
  1134. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1135. return
  1136. }
  1137. roleTree, err := sysutils.BuildTree("", roleMenu)
  1138. ret := __none_func_system__(role_id)
  1139. if ret {
  1140. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}})
  1141. } else {
  1142. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1143. }
  1144. }
  1145. // _AddRoleMenu
  1146. // @Title _AddRoleMenu
  1147. // @Description 添加角色菜单
  1148. // @Param menu_id false "菜单id"
  1149. // @Param role_id string false "角色id"
  1150. // @Success 200 {object} Account
  1151. // @Failure 403 :id is empty
  1152. func System_AddRoleMenu(c *entitys.CtrlContext) {
  1153. tk, _ := c.Ctx.Get("token")
  1154. user := tk.(*entitys.Token)
  1155. var paramObj0 struct {
  1156. MenuIds []string `json:"menu_ids"`
  1157. RoleId string `json:"role_id"`
  1158. }
  1159. c.Ctx.BindJSON(&paramObj0)
  1160. session := c.Db.NewSession()
  1161. defer session.Close()
  1162. session.Begin()
  1163. _, err := session.SqlMapClient("del_role_menu", paramObj0.RoleId).Execute()
  1164. if err != nil {
  1165. session.Rollback()
  1166. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1167. return
  1168. }
  1169. var roleMenus []*sysmodel.SysRoleMenu
  1170. for _, menu := range paramObj0.MenuIds {
  1171. roleMenu := &sysmodel.SysRoleMenu{}
  1172. roleMenu.Id = sysutils.NewUUID()
  1173. roleMenu.MenuId = menu
  1174. roleMenu.RoleId = paramObj0.RoleId
  1175. roleMenu.CreateBy = user.UserId
  1176. roleMenu.CreateTime = sysmodel.NowLocal()
  1177. roleMenus = append(roleMenus, roleMenu)
  1178. }
  1179. _, err = session.InsertMulti(&roleMenus)
  1180. if err != nil {
  1181. session.Rollback()
  1182. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1183. return
  1184. }
  1185. session.Commit()
  1186. ret := __none_func_system__(paramObj0)
  1187. if ret {
  1188. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1189. } else {
  1190. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1191. }
  1192. }
  1193. // _FindAreaPage
  1194. // @Title _FindAreaPage
  1195. // @Description 获取区域管理分页数
  1196. // @Success 200 {object} Account
  1197. // @Failure 403 :id is empty
  1198. func System_FindAreaPage(c *entitys.CtrlContext) {
  1199. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1200. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1201. var paramMap = make(map[string]interface{})
  1202. paramMap["page"] = page
  1203. paramMap["rows"] = rows
  1204. paramMap["del_flag"] = c.Ctx.Query("del_flag")
  1205. paramMap["id"] = c.Ctx.Query("id")
  1206. paramMap["name"] = c.Ctx.Query("name")
  1207. paramMap["parent"] = c.Ctx.Query("parent")
  1208. paramMap["inheritance"] = c.Ctx.Query("inheritance")
  1209. paramMap["temp_id"] = c.Ctx.Query("temp_id")
  1210. paramMap["manager"] = c.Ctx.Query("manager")
  1211. paramMap["org_id"] = c.Ctx.Query("org_id")
  1212. paramMap["org_name"] = c.Ctx.Query("org_name")
  1213. paramMap["org_inheritance"] = c.Ctx.Query("org_inheritance")
  1214. paramMap["manager_name"] = c.Ctx.Query("manager_name")
  1215. result, err := sysutils.PageSearch(c.Db, "system", "find_area_page", "sys_user", paramMap)
  1216. if err == nil {
  1217. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1218. } else {
  1219. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1220. }
  1221. }
  1222. // _AddArea
  1223. // @Title _AddArea
  1224. // @Description 添加区域
  1225. // @Param name string false "区域名称"
  1226. // @Param parent string false "父节点"
  1227. // @Param inheritance string false "继承关系"
  1228. // @Param org_id string false "组织ID"
  1229. // @Param temp_id string false "模板ID"
  1230. // @Param temp_value string false "模板内容"
  1231. // @Param manager string false "负责人"
  1232. // @Success 200 {object} Account
  1233. // @Failure 403 :id is empty
  1234. func System_AddArea(c *entitys.CtrlContext) {
  1235. var err error
  1236. var bean sysmodel.SysArea
  1237. if err = c.Ctx.BindJSON(&bean); err != nil {
  1238. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1239. return
  1240. }
  1241. user_id := c.Ctx.GetString("user_id")
  1242. bean.Id = sysutils.NewUUID()
  1243. bean.DelFlag = 0
  1244. bean.CreateBy = user_id
  1245. bean.LastUpdateBy = user_id
  1246. bean.CreateTime = sysmodel.NowLocal()
  1247. bean.LastUpdateTime = time.Now().UnixNano()
  1248. if bean.Parent != "" {
  1249. parentNodes := sysmodel.SysArea{}
  1250. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1251. if err != nil {
  1252. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1253. return
  1254. }
  1255. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1256. } else {
  1257. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1258. }
  1259. _, err = c.Db.InsertOne(&bean)
  1260. if err == nil {
  1261. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1262. } else {
  1263. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1264. }
  1265. }
  1266. // _DelArea
  1267. // @Title _DelArea
  1268. // @Description 删除区域
  1269. // @Param ids string false "用户ID"
  1270. // @Success 200 {object} Account
  1271. // @Failure 403 :id is empty
  1272. func System_DelArea(c *entitys.CtrlContext) {
  1273. var err error
  1274. var bean = &models.SysArea{}
  1275. type Param struct {
  1276. Id string `json:"id"`
  1277. }
  1278. var params []Param
  1279. c.Ctx.BindJSON(&params)
  1280. ids := []string{}
  1281. for _, param := range params {
  1282. ids = append(ids, param.Id)
  1283. }
  1284. session := c.Db.NewSession()
  1285. defer session.Close()
  1286. if err := session.Begin(); err != nil {
  1287. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1288. return
  1289. }
  1290. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1291. if err == nil {
  1292. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1293. }
  1294. if err == nil {
  1295. err = session.Commit()
  1296. }
  1297. if err == nil {
  1298. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1299. } else {
  1300. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1301. }
  1302. }
  1303. // _RecoverArea
  1304. // @Title _RecoverArea
  1305. // @Description 恢复区域
  1306. // @Param ids string false "区域ID"
  1307. // @Success 200 {object} Account
  1308. // @Failure 403 :id is empty
  1309. func System_RecoverArea(c *entitys.CtrlContext) {
  1310. var err error
  1311. var bean = &models.SysArea{}
  1312. idArr := make([]string, 0)
  1313. if ids := c.Ctx.Query("ids"); ids == "" {
  1314. err = c.Ctx.BindJSON(&idArr)
  1315. if err != nil || len(idArr) <= 0 {
  1316. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1317. return
  1318. }
  1319. } else {
  1320. idArr = strings.Split(ids, ",")
  1321. }
  1322. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1323. if err == nil {
  1324. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1325. } else {
  1326. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1327. }
  1328. }
  1329. // _UpdateArea
  1330. // @Title _UpdateArea
  1331. // @Description 修改区域
  1332. // @Param name string false "区域名称"
  1333. // @Param parent string false "父节点"
  1334. // @Param inheritance string false "继承关系"
  1335. // @Param org_id string false "组织ID"
  1336. // @Param temp_id string false "模板ID"
  1337. // @Param temp_value string false "模板内容"
  1338. // @Param manager string false "负责人"
  1339. // @Success 200 {object} Account
  1340. // @Failure 403 :id is empty
  1341. func System_UpdateArea(c *entitys.CtrlContext) {
  1342. var err error
  1343. var bean sysmodel.SysArea
  1344. if err = c.Ctx.BindJSON(&bean); err != nil {
  1345. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1346. return
  1347. }
  1348. user_id := c.Ctx.GetString("user_id")
  1349. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1350. if !exist && err == nil {
  1351. err = errors.New("record does not exist")
  1352. }
  1353. if err != nil {
  1354. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1355. return
  1356. }
  1357. bean.LastUpdateBy = user_id
  1358. bean.LastUpdateTime = time.Now().UnixNano()
  1359. if bean.Parent != "" {
  1360. parentNodes := sysmodel.SysArea{}
  1361. _, err := c.Db.SqlMapClient("selectone_sys_area", &map[string]interface{}{"id": bean.Parent}).Get(&parentNodes)
  1362. if err != nil {
  1363. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1364. return
  1365. }
  1366. if parentNodes.Inheritance == "" {
  1367. parentNodes.Inheritance = "|"
  1368. }
  1369. bean.Inheritance = fmt.Sprintf("|%s%s", bean.Id, parentNodes.Inheritance)
  1370. } else {
  1371. bean.Inheritance = fmt.Sprintf("|%s|", bean.Id)
  1372. }
  1373. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1374. if err == nil {
  1375. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1376. } else {
  1377. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1378. }
  1379. }
  1380. // _GetArea
  1381. // @Title _GetArea
  1382. // @Description 根据区域ID获取区域信息
  1383. // @Param id string false "区域ID"
  1384. // @Success 200 {object} Account
  1385. // @Failure 403 :id is empty
  1386. func System_GetArea(c *entitys.CtrlContext) {
  1387. id := c.Ctx.Query("id")
  1388. //var area sysmodel.SysArea
  1389. //exist, err := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Get(&area)
  1390. result := c.Db.SqlMapClient("get_area", &map[string]interface{}{"id": id}).Query()
  1391. if result.Result != nil && len(result.Result) > 0 {
  1392. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result.Result[0]})
  1393. } else {
  1394. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  1395. }
  1396. }
  1397. // _GetAreaTree
  1398. // @Title _GetAreaTree
  1399. // @Description 获取区域管理树
  1400. // @Success 200 {object} Account
  1401. // @Failure 403 :id is empty
  1402. func System_GetAreaTree(c *entitys.CtrlContext) {
  1403. paramMap_i_t := map[string]interface{}{"sort": "name"}
  1404. result, err := sysutils.TreeSearch(c.Db, "system", "get_area_tree", "sys_area", paramMap_i_t)
  1405. if err == nil {
  1406. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1407. } else {
  1408. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1409. }
  1410. }
  1411. // _FindAreaTemplatePage
  1412. // @Title _FindAreaTemplatePage
  1413. // @Description 获取区域模板分页数
  1414. // @Success 200 {object} Account
  1415. // @Failure 403 :id is empty
  1416. func System_FindAreaTemplatePage(c *entitys.CtrlContext) {
  1417. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1418. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1419. del_flag := c.Ctx.Query("del_flag")
  1420. name := c.Ctx.Query("name")
  1421. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1422. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_page", "sys_area", paramMap_i_t)
  1423. if err == nil {
  1424. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1425. } else {
  1426. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1427. }
  1428. }
  1429. // _AddAreaTemplate
  1430. // @Title _AddAreaTemplate
  1431. // @Description 添加区域模板
  1432. // @Param name string false "名称"
  1433. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1434. // @Param default int64 false "是否默认 1:是 0:否"
  1435. // @Success 200 {object} Account
  1436. // @Failure 403 :id is empty
  1437. func System_AddAreaTemplate(c *entitys.CtrlContext) {
  1438. var err error
  1439. var bean sysmodel.SysAreaTemplate
  1440. if err = c.Ctx.BindJSON(&bean); err != nil {
  1441. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1442. return
  1443. }
  1444. user_id := c.Ctx.GetString("user_id")
  1445. bean.Id = sysutils.NewUUID()
  1446. bean.DelFlag = 0
  1447. bean.CreateBy = user_id
  1448. bean.LastUpdateBy = user_id
  1449. bean.CreateTime = sysmodel.NowLocal()
  1450. bean.LastUpdateTime = time.Now().UnixNano()
  1451. _, err = c.Db.InsertOne(&bean)
  1452. if err == nil {
  1453. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1454. } else {
  1455. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1456. }
  1457. }
  1458. // _UpdateAreaTemplate
  1459. // @Title _UpdateAreaTemplate
  1460. // @Description 修改区域模板
  1461. // @Param name string false "名称"
  1462. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1463. // @Param default int64 false "是否默认 1:是 0:否"
  1464. // @Success 200 {object} Account
  1465. // @Failure 403 :id is empty
  1466. func System_UpdateAreaTemplate(c *entitys.CtrlContext) {
  1467. var err error
  1468. var bean sysmodel.SysAreaTemplate
  1469. if err = c.Ctx.BindJSON(&bean); err != nil {
  1470. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1471. return
  1472. }
  1473. user_id := c.Ctx.GetString("user_id")
  1474. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1475. if !exist && err == nil {
  1476. err = errors.New("record does not exist")
  1477. }
  1478. if err != nil {
  1479. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1480. return
  1481. }
  1482. bean.LastUpdateBy = user_id
  1483. bean.LastUpdateTime = time.Now().UnixNano()
  1484. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1485. if err == nil {
  1486. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1487. } else {
  1488. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1489. }
  1490. }
  1491. // _DelAreaTemplate
  1492. // @Title _DelAreaTemplate
  1493. // @Description 删除区域模板
  1494. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1495. // @Success 200 {object} Account
  1496. // @Failure 403 :id is empty
  1497. func System_DelAreaTemplate(c *entitys.CtrlContext) {
  1498. var err error
  1499. var bean = &models.SysAreaTemplate{}
  1500. type Param struct {
  1501. Id string `json:"id"`
  1502. }
  1503. var params []Param
  1504. c.Ctx.BindJSON(&params)
  1505. ids := []string{}
  1506. for _, param := range params {
  1507. ids = append(ids, param.Id)
  1508. }
  1509. session := c.Db.NewSession()
  1510. defer session.Close()
  1511. if err := session.Begin(); err != nil {
  1512. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1513. return
  1514. }
  1515. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1516. if err == nil {
  1517. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1518. }
  1519. if err == nil {
  1520. err = session.Commit()
  1521. }
  1522. if err == nil {
  1523. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1524. } else {
  1525. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1526. }
  1527. }
  1528. // _RecoverAreaTemplate
  1529. // @Title _RecoverAreaTemplate
  1530. // @Description 恢复区域模板
  1531. // @Param ids string false "区域模板ID 多个之间(,)隔开"
  1532. // @Success 200 {object} Account
  1533. // @Failure 403 :id is empty
  1534. func System_RecoverAreaTemplate(c *entitys.CtrlContext) {
  1535. var err error
  1536. var bean = &models.SysAreaTemplate{}
  1537. idArr := make([]string, 0)
  1538. if ids := c.Ctx.Query("ids"); ids == "" {
  1539. err = c.Ctx.BindJSON(&idArr)
  1540. if err != nil || len(idArr) <= 0 {
  1541. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1542. return
  1543. }
  1544. } else {
  1545. idArr = strings.Split(ids, ",")
  1546. }
  1547. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1548. if err == nil {
  1549. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1550. } else {
  1551. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1552. }
  1553. }
  1554. // _GetAreaTemplate
  1555. // @Title _GetAreaTemplate
  1556. // @Description 根据区域模板ID获取区域模板信息
  1557. // @Param id string false "区域模板ID"
  1558. // @Success 200 {object} Account
  1559. // @Failure 403 :id is empty
  1560. func System_GetAreaTemplate(c *entitys.CtrlContext) {
  1561. id := c.Ctx.Query("id")
  1562. var area sysmodel.SysAreaTemplate
  1563. exist, err := c.Db.SqlMapClient("selectone_sys_area_template", &map[string]interface{}{"id": id}).Get(&area)
  1564. if !exist && err == nil {
  1565. err = errors.New("record does not exist")
  1566. }
  1567. if err == nil {
  1568. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1569. } else {
  1570. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1571. }
  1572. }
  1573. // _FindAreaTemplateDetailPage
  1574. // @Title _FindAreaTemplateDetailPage
  1575. // @Description 获取区域模板明细分页数
  1576. // @Success 200 {object} Account
  1577. // @Failure 403 :id is empty
  1578. func System_FindAreaTemplateDetailPage(c *entitys.CtrlContext) {
  1579. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1580. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1581. del_flag := c.Ctx.Query("del_flag")
  1582. __sort__ := c.Ctx.Query("__sort__")
  1583. name := c.Ctx.Query("name")
  1584. temp_id := c.Ctx.Query("temp_id")
  1585. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1586. result, err := sysutils.PageSearch(c.Db, "system", "find_area_template_detail_page", "sys_area", paramMap_i_t)
  1587. if err == nil {
  1588. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1589. } else {
  1590. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1591. }
  1592. }
  1593. // _AddAreaTemplateDetail
  1594. // @Title _AddAreaTemplateDetail
  1595. // @Description 添加区域模板明细
  1596. // @Param temp_id string false "模板id"
  1597. // @Param name string false "名称"
  1598. // @Param value string false "值"
  1599. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1600. // @Param priority int64 false "优先级"
  1601. // @Param content string false "内容"
  1602. // @Success 200 {object} Account
  1603. // @Failure 403 :id is empty
  1604. func System_AddAreaTemplateDetail(c *entitys.CtrlContext) {
  1605. var err error
  1606. var bean sysmodel.SysAreaTemplateDetail
  1607. if err = c.Ctx.BindJSON(&bean); err != nil {
  1608. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1609. return
  1610. }
  1611. user_id := c.Ctx.GetString("user_id")
  1612. bean.Id = sysutils.NewUUID()
  1613. bean.DelFlag = 0
  1614. bean.CreateBy = user_id
  1615. bean.LastUpdateBy = user_id
  1616. bean.CreateTime = sysmodel.NowLocal()
  1617. bean.LastUpdateTime = time.Now().UnixNano()
  1618. _, err = c.Db.InsertOne(&bean)
  1619. if err == nil {
  1620. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1621. } else {
  1622. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1623. }
  1624. }
  1625. // _UpdateAreaTemplateDetail
  1626. // @Title _UpdateAreaTemplateDetail
  1627. // @Description 修改区域模板明细
  1628. // @Param temp_id string false "模板id"
  1629. // @Param name string false "名称"
  1630. // @Param value string false "值"
  1631. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1632. // @Param priority int64 false "优先级"
  1633. // @Param content string false "内容"
  1634. // @Success 200 {object} Account
  1635. // @Failure 403 :id is empty
  1636. func System_UpdateAreaTemplateDetail(c *entitys.CtrlContext) {
  1637. var err error
  1638. var bean sysmodel.SysAreaTemplateDetail
  1639. if err = c.Ctx.BindJSON(&bean); err != nil {
  1640. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1641. return
  1642. }
  1643. user_id := c.Ctx.GetString("user_id")
  1644. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1645. if !exist && err == nil {
  1646. err = errors.New("record does not exist")
  1647. }
  1648. if err != nil {
  1649. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1650. return
  1651. }
  1652. bean.LastUpdateBy = user_id
  1653. bean.LastUpdateTime = time.Now().UnixNano()
  1654. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1655. if err == nil {
  1656. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1657. } else {
  1658. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1659. }
  1660. }
  1661. // _DelAreaTemplateDetail
  1662. // @Title _DelAreaTemplateDetail
  1663. // @Description 删除区域模板明细
  1664. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1665. // @Success 200 {object} Account
  1666. // @Failure 403 :id is empty
  1667. func System_DelAreaTemplateDetail(c *entitys.CtrlContext) {
  1668. var err error
  1669. var bean = &models.SysAreaTemplateDetail{}
  1670. type Param struct {
  1671. Id string `json:"id"`
  1672. }
  1673. var params []Param
  1674. c.Ctx.BindJSON(&params)
  1675. ids := []string{}
  1676. for _, param := range params {
  1677. ids = append(ids, param.Id)
  1678. }
  1679. session := c.Db.NewSession()
  1680. defer session.Close()
  1681. if err := session.Begin(); err != nil {
  1682. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1683. return
  1684. }
  1685. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1686. if err == nil {
  1687. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1688. }
  1689. if err == nil {
  1690. err = session.Commit()
  1691. }
  1692. if err == nil {
  1693. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1694. } else {
  1695. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1696. }
  1697. }
  1698. // _RecoverAreaTemplateDetail
  1699. // @Title _RecoverAreaTemplateDetail
  1700. // @Description 恢复区域模板明细
  1701. // @Param ids string false "区域模板明细ID 多个之间(,)隔开"
  1702. // @Success 200 {object} Account
  1703. // @Failure 403 :id is empty
  1704. func System_RecoverAreaTemplateDetail(c *entitys.CtrlContext) {
  1705. var err error
  1706. var bean = &models.SysAreaTemplateDetail{}
  1707. idArr := make([]string, 0)
  1708. if ids := c.Ctx.Query("ids"); ids == "" {
  1709. err = c.Ctx.BindJSON(&idArr)
  1710. if err != nil || len(idArr) <= 0 {
  1711. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1712. return
  1713. }
  1714. } else {
  1715. idArr = strings.Split(ids, ",")
  1716. }
  1717. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1718. if err == nil {
  1719. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1720. } else {
  1721. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1722. }
  1723. }
  1724. // _GetAreaTemplateDetail
  1725. // @Title _GetAreaTemplateDetail
  1726. // @Description 根据区域模板明细ID获取区域模板明细信息
  1727. // @Param id string false "区域模板明细ID"
  1728. // @Success 200 {object} Account
  1729. // @Failure 403 :id is empty
  1730. func System_GetAreaTemplateDetail(c *entitys.CtrlContext) {
  1731. id := c.Ctx.Query("id")
  1732. var area sysmodel.SysAreaTemplateDetail
  1733. exist, err := c.Db.SqlMapClient("selectone_sys_area_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  1734. if !exist && err == nil {
  1735. err = errors.New("record does not exist")
  1736. }
  1737. if err == nil {
  1738. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1739. } else {
  1740. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1741. }
  1742. }
  1743. // _FindUserTemplatePage
  1744. // @Title _FindUserTemplatePage
  1745. // @Description 获取用户信息模板分页数
  1746. // @Success 200 {object} Account
  1747. // @Failure 403 :id is empty
  1748. func System_FindUserTemplatePage(c *entitys.CtrlContext) {
  1749. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1750. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1751. del_flag := c.Ctx.Query("del_flag")
  1752. name := c.Ctx.Query("name")
  1753. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name}
  1754. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_page", "sys_area", paramMap_i_t)
  1755. if err == nil {
  1756. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1757. } else {
  1758. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1759. }
  1760. }
  1761. // _AddUserTemplate
  1762. // @Title _AddUserTemplate
  1763. // @Description 添加用户信息模板
  1764. // @Param name string false "名称"
  1765. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1766. // @Param default int64 false "是否默认 1:是 0:否"
  1767. // @Success 200 {object} Account
  1768. // @Failure 403 :id is empty
  1769. func System_AddUserTemplate(c *entitys.CtrlContext) {
  1770. var err error
  1771. var bean sysmodel.SysUserTemplate
  1772. if err = c.Ctx.BindJSON(&bean); err != nil {
  1773. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1774. return
  1775. }
  1776. user_id := c.Ctx.GetString("user_id")
  1777. bean.Id = sysutils.NewUUID()
  1778. bean.DelFlag = 0
  1779. bean.CreateBy = user_id
  1780. bean.LastUpdateBy = user_id
  1781. bean.CreateTime = sysmodel.NowLocal()
  1782. bean.LastUpdateTime = time.Now().UnixNano()
  1783. _, err = c.Db.InsertOne(&bean)
  1784. if err == nil {
  1785. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1786. } else {
  1787. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1788. }
  1789. }
  1790. // _UpdateUserTemplate
  1791. // @Title _UpdateUserTemplate
  1792. // @Description 修改用户信息模板
  1793. // @Param name string false "名称"
  1794. // @Param type int64 false "模板类型 0:固定模板 1:动态模板 2:自定义模板"
  1795. // @Param default int64 false "是否默认 1:是 0:否"
  1796. // @Success 200 {object} Account
  1797. // @Failure 403 :id is empty
  1798. func System_UpdateUserTemplate(c *entitys.CtrlContext) {
  1799. var err error
  1800. var bean sysmodel.SysUserTemplate
  1801. if err = c.Ctx.BindJSON(&bean); err != nil {
  1802. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1803. return
  1804. }
  1805. user_id := c.Ctx.GetString("user_id")
  1806. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1807. if !exist && err == nil {
  1808. err = errors.New("record does not exist")
  1809. }
  1810. if err != nil {
  1811. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1812. return
  1813. }
  1814. bean.LastUpdateBy = user_id
  1815. bean.LastUpdateTime = time.Now().UnixNano()
  1816. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1817. if err == nil {
  1818. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1819. } else {
  1820. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1821. }
  1822. }
  1823. // _DelUserTemplate
  1824. // @Title _DelUserTemplate
  1825. // @Description 删除用户信息模板
  1826. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1827. // @Success 200 {object} Account
  1828. // @Failure 403 :id is empty
  1829. func System_DelUserTemplate(c *entitys.CtrlContext) {
  1830. var err error
  1831. var bean = &models.SysUserTemplate{}
  1832. type Param struct {
  1833. Id string `json:"id"`
  1834. }
  1835. var params []Param
  1836. c.Ctx.BindJSON(&params)
  1837. ids := []string{}
  1838. for _, param := range params {
  1839. ids = append(ids, param.Id)
  1840. }
  1841. session := c.Db.NewSession()
  1842. defer session.Close()
  1843. if err := session.Begin(); err != nil {
  1844. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1845. return
  1846. }
  1847. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  1848. if err == nil {
  1849. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  1850. }
  1851. if err == nil {
  1852. err = session.Commit()
  1853. }
  1854. if err == nil {
  1855. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1856. } else {
  1857. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1858. }
  1859. }
  1860. // _RecoverUserTemplate
  1861. // @Title _RecoverUserTemplate
  1862. // @Description 恢复用户信息模板
  1863. // @Param ids string false "用户信息模板ID 多个之间(,)隔开"
  1864. // @Success 200 {object} Account
  1865. // @Failure 403 :id is empty
  1866. func System_RecoverUserTemplate(c *entitys.CtrlContext) {
  1867. var err error
  1868. var bean = &models.SysUserTemplate{}
  1869. idArr := make([]string, 0)
  1870. if ids := c.Ctx.Query("ids"); ids == "" {
  1871. err = c.Ctx.BindJSON(&idArr)
  1872. if err != nil || len(idArr) <= 0 {
  1873. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  1874. return
  1875. }
  1876. } else {
  1877. idArr = strings.Split(ids, ",")
  1878. }
  1879. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  1880. if err == nil {
  1881. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  1882. } else {
  1883. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1884. }
  1885. }
  1886. // _GetUserTemplate
  1887. // @Title _GetUserTemplate
  1888. // @Description 根据用户信息模板ID获取用户信息模板信息
  1889. // @Param id string false "用户信息模板ID"
  1890. // @Success 200 {object} Account
  1891. // @Failure 403 :id is empty
  1892. func System_GetUserTemplate(c *entitys.CtrlContext) {
  1893. id := c.Ctx.Query("id")
  1894. var area sysmodel.SysUserTemplate
  1895. exist, err := c.Db.SqlMapClient("selectone_sys_user_template", &map[string]interface{}{"id": id}).Get(&area)
  1896. if !exist && err == nil {
  1897. err = errors.New("record does not exist")
  1898. }
  1899. if err == nil {
  1900. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  1901. } else {
  1902. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1903. }
  1904. }
  1905. // _FindUserTemplateDetailPage
  1906. // @Title _FindUserTemplateDetailPage
  1907. // @Description 获取用户信息模板明细分页数
  1908. // @Success 200 {object} Account
  1909. // @Failure 403 :id is empty
  1910. func System_FindUserTemplateDetailPage(c *entitys.CtrlContext) {
  1911. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  1912. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  1913. del_flag := c.Ctx.Query("del_flag")
  1914. __sort__ := c.Ctx.Query("__sort__")
  1915. name := c.Ctx.Query("name")
  1916. temp_id := c.Ctx.Query("temp_id")
  1917. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "del_flag": del_flag, "name": name, "temp_id": temp_id, "__sort__": __sort__}
  1918. result, err := sysutils.PageSearch(c.Db, "system", "find_user_template_detail_page", "sys_area", paramMap_i_t)
  1919. if err == nil {
  1920. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  1921. } else {
  1922. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1923. }
  1924. }
  1925. // _AddUserTemplateDetail
  1926. // @Title _AddUserTemplateDetail
  1927. // @Description 添加用户信息模板明细
  1928. // @Param temp_id string false "模板id"
  1929. // @Param name string false "名称"
  1930. // @Param value string false "值"
  1931. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1932. // @Param priority int64 false "优先级"
  1933. // @Param content string false "内容"
  1934. // @Success 200 {object} Account
  1935. // @Failure 403 :id is empty
  1936. func System_AddUserTemplateDetail(c *entitys.CtrlContext) {
  1937. var err error
  1938. var bean sysmodel.SysUserTemplateDetail
  1939. if err = c.Ctx.BindJSON(&bean); err != nil {
  1940. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1941. return
  1942. }
  1943. user_id := c.Ctx.GetString("user_id")
  1944. bean.Id = sysutils.NewUUID()
  1945. bean.DelFlag = 0
  1946. bean.CreateBy = user_id
  1947. bean.LastUpdateBy = user_id
  1948. bean.CreateTime = sysmodel.NowLocal()
  1949. bean.LastUpdateTime = time.Now().UnixNano()
  1950. _, err = c.Db.InsertOne(&bean)
  1951. if err == nil {
  1952. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1953. } else {
  1954. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1955. }
  1956. }
  1957. // _UpdateUserTemplateDetail
  1958. // @Title _UpdateUserTemplateDetail
  1959. // @Description 修改用户信息模板明细
  1960. // @Param temp_id string false "模板id"
  1961. // @Param name string false "名称"
  1962. // @Param value string false "值"
  1963. // @Param type int64 false "类型 0:数值项 1:单选项 2:文字项 3:列表项"
  1964. // @Param priority int64 false "优先级"
  1965. // @Param content string false "内容"
  1966. // @Success 200 {object} Account
  1967. // @Failure 403 :id is empty
  1968. func System_UpdateUserTemplateDetail(c *entitys.CtrlContext) {
  1969. var err error
  1970. var bean sysmodel.SysUserTemplateDetail
  1971. if err = c.Ctx.BindJSON(&bean); err != nil {
  1972. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1973. return
  1974. }
  1975. user_id := c.Ctx.GetString("user_id")
  1976. exist, err := c.Db.Table(&bean).Where("id = ?", bean.Id).Exist()
  1977. if !exist && err == nil {
  1978. err = errors.New("record does not exist")
  1979. }
  1980. if err != nil {
  1981. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  1982. return
  1983. }
  1984. bean.LastUpdateBy = user_id
  1985. bean.LastUpdateTime = time.Now().UnixNano()
  1986. _, err = c.Db.AllCols().ID(bean.Id).Update(&bean)
  1987. if err == nil {
  1988. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", bean.Id})
  1989. } else {
  1990. c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
  1991. }
  1992. }
  1993. // _DelUserTemplateDetail
  1994. // @Title _DelUserTemplateDetail
  1995. // @Description 删除用户信息模板明细
  1996. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  1997. // @Success 200 {object} Account
  1998. // @Failure 403 :id is empty
  1999. func System_DelUserTemplateDetail(c *entitys.CtrlContext) {
  2000. var err error
  2001. var bean = &models.SysUserTemplateDetail{}
  2002. type Param struct {
  2003. Id string `json:"id"`
  2004. }
  2005. var params []Param
  2006. c.Ctx.BindJSON(&params)
  2007. ids := []string{}
  2008. for _, param := range params {
  2009. ids = append(ids, param.Id)
  2010. }
  2011. session := c.Db.NewSession()
  2012. defer session.Close()
  2013. if err := session.Begin(); err != nil {
  2014. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2015. return
  2016. }
  2017. _, err = session.Table(bean).Where("del_flag=1").In("id", ids).Delete(bean)
  2018. if err == nil {
  2019. _, err = session.Table(bean).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
  2020. }
  2021. if err == nil {
  2022. err = session.Commit()
  2023. }
  2024. if err == nil {
  2025. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2026. } else {
  2027. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2028. }
  2029. }
  2030. // _RecoverUserTemplateDetail
  2031. // @Title _RecoverUserTemplateDetail
  2032. // @Description 恢复用户信息模板明细
  2033. // @Param ids string false "用户信息模板明细ID 多个之间(,)隔开"
  2034. // @Success 200 {object} Account
  2035. // @Failure 403 :id is empty
  2036. func System_RecoverUserTemplateDetail(c *entitys.CtrlContext) {
  2037. var err error
  2038. var bean = &models.SysUserTemplateDetail{}
  2039. idArr := make([]string, 0)
  2040. if ids := c.Ctx.Query("ids"); ids == "" {
  2041. err = c.Ctx.BindJSON(&idArr)
  2042. if err != nil || len(idArr) <= 0 {
  2043. c.Ctx.JSON(500, sysmodel.SysReturn{500, "ids is empty", nil})
  2044. return
  2045. }
  2046. } else {
  2047. idArr = strings.Split(ids, ",")
  2048. }
  2049. _, err = c.Db.Table(bean).In("id", idArr).Update(map[string]interface{}{"del_flag": 0})
  2050. if err == nil {
  2051. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2052. } else {
  2053. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2054. }
  2055. }
  2056. // _GetUserTemplateDetail
  2057. // @Title _GetUserTemplateDetail
  2058. // @Description 根据用户信息模板明细ID获取用户信息模板明细信息
  2059. // @Param id string false "用户信息模板明细ID"
  2060. // @Success 200 {object} Account
  2061. // @Failure 403 :id is empty
  2062. func System_GetUserTemplateDetail(c *entitys.CtrlContext) {
  2063. id := c.Ctx.Query("id")
  2064. var area sysmodel.SysUserTemplateDetail
  2065. exist, err := c.Db.SqlMapClient("selectone_sys_user_template_detail", &map[string]interface{}{"id": id}).Get(&area)
  2066. if !exist && err == nil {
  2067. err = errors.New("record does not exist")
  2068. }
  2069. if err == nil {
  2070. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", area})
  2071. } else {
  2072. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2073. }
  2074. }
  2075. // _AddOptionset
  2076. // @Title _AddOptionset
  2077. // @Description 添加字典
  2078. // @Param false "字典"
  2079. // @Success 200 {object} Account
  2080. // @Failure 403 :id is empty
  2081. func System_AddOptionset(c *entitys.CtrlContext) {
  2082. var paramObj0 models.SysOptionset
  2083. c.Ctx.BindJSON(&paramObj0)
  2084. user_id := c.Ctx.GetString("user_id")
  2085. paramObj0.Id = sysutils.NewUUID()
  2086. paramObj0.CreateBy = user_id
  2087. paramObj0.CreateTime = sysmodel.NowLocal()
  2088. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2089. paramObj0.LastUpdateBy = user_id
  2090. paramObj0.DelFlag = 0
  2091. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2092. _, err := c.Db.SqlMapClient("insert_sys_optionset", paramMap).Execute()
  2093. if err == nil {
  2094. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2095. } else {
  2096. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2097. }
  2098. }
  2099. // _DelOptionset
  2100. // @Title _DelOptionset
  2101. // @Description 删除字典
  2102. // @Param id string false "字典ID"
  2103. // @Success 200 {object} Account
  2104. // @Failure 403 :id is empty
  2105. func System_DelOptionset(c *entitys.CtrlContext) {
  2106. type Param struct {
  2107. Id string `json:"id"`
  2108. }
  2109. var params []Param
  2110. c.Ctx.BindJSON(&params)
  2111. ids := []string{}
  2112. for _, param := range params {
  2113. ids = append(ids, param.Id)
  2114. }
  2115. _, 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")})
  2116. if err == nil {
  2117. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2118. } else {
  2119. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2120. }
  2121. }
  2122. // _UpdateOptionset
  2123. // @Title _UpdateOptionset
  2124. // @Description 修改字典
  2125. // @Param false "字典"
  2126. // @Success 200 {object} Account
  2127. // @Failure 403 :id is empty
  2128. func System_UpdateOptionset(c *entitys.CtrlContext) {
  2129. var paramObj0 models.SysOptionset
  2130. c.Ctx.BindJSON(&paramObj0)
  2131. user_id := c.Ctx.GetString("user_id")
  2132. paramObj0.LastUpdateBy = user_id
  2133. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2134. paramMap, _ := sysutils.BeanToMap(&paramObj0)
  2135. _, err := c.Db.SqlMapClient("update_sys_optionset", paramMap).Execute()
  2136. if err == nil {
  2137. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2138. } else {
  2139. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2140. }
  2141. }
  2142. // _FindOptionsetPage
  2143. // @Title _FindOptionsetPage
  2144. // @Description 获取字典分页数
  2145. // @Success 200 {object} Account
  2146. // @Failure 403 :id is empty
  2147. func System_FindOptionsetPage(c *entitys.CtrlContext) {
  2148. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2149. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2150. name := c.Ctx.DefaultQuery("name", "")
  2151. code := c.Ctx.DefaultQuery("code", "")
  2152. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code}
  2153. result, err := sysutils.PageSearch(c.Db, "system", "find_optionset_page", "sys_optionset", paramMap_i_t)
  2154. if err == nil {
  2155. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2156. } else {
  2157. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2158. }
  2159. }
  2160. // _GetOptionsetByCode
  2161. // @Title _GetOptionsetByCode
  2162. // @Description 根据编码查找字典
  2163. // @Param code string false "字典编码"
  2164. // @Success 200 {object} Account
  2165. // @Failure 403 :id is empty
  2166. func System_GetOptionsetByCode(c *entitys.CtrlContext) {
  2167. code := c.Ctx.Query("code")
  2168. var option sysmodel.SysOptionset
  2169. exit, err := c.Db.Table(new(sysmodel.SysOptionset)).Where("code = ?", code).Get(&option)
  2170. if exit && err == nil {
  2171. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", option})
  2172. } else {
  2173. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2174. }
  2175. }
  2176. // _AddTableColUser
  2177. // @Title _AddTableColUser
  2178. // @Description 添加用户可见列
  2179. // @Param false "用户可见列"
  2180. // @Success 200 {object} Account
  2181. // @Failure 403 :id is empty
  2182. func System_AddTableColUser(c *entitys.CtrlContext) {
  2183. var paramObj0 models.SysTableColUser
  2184. c.Ctx.BindJSON(&paramObj0)
  2185. user_id := c.Ctx.GetString("user_id")
  2186. // 查询用户是否有此可见列数据
  2187. var tabelColUser sysmodel.SysTableColUser
  2188. exit, err := c.Db.Where("user_id = ? and code = ?", user_id, paramObj0.Code).Get(&tabelColUser)
  2189. if err != nil {
  2190. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2191. return
  2192. }
  2193. // 如果存在,更新,不存在插入
  2194. if exit {
  2195. tabelColUser.Value = paramObj0.Value
  2196. _, err = c.Db.ID(tabelColUser.Id).Cols("value").Update(&tabelColUser)
  2197. if err == nil {
  2198. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2199. } else {
  2200. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2201. }
  2202. return
  2203. }
  2204. paramObj0.Id = sysutils.NewUUID()
  2205. paramObj0.UserId = user_id
  2206. paramObj0.DelFlag = 0
  2207. paramObj0.CreateTime = sysmodel.NowLocal()
  2208. paramObj0.LastUpdateTime = time.Now().UnixNano()
  2209. paramObj0.CreateBy = user_id
  2210. paramObj0.LastUpdateBy = user_id
  2211. _, err = c.Db.Insert(&paramObj0)
  2212. if err == nil {
  2213. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2214. } else {
  2215. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2216. }
  2217. }
  2218. // _UpdateTableColUser
  2219. // @Title _UpdateTableColUser
  2220. // @Description 修改用户可见列
  2221. // @Param false "用户可见列"
  2222. // @Success 200 {object} Account
  2223. // @Failure 403 :id is empty
  2224. func System_UpdateTableColUser(c *entitys.CtrlContext) {
  2225. var paramObj0 models.SysTableColUser
  2226. c.Ctx.BindJSON(&paramObj0)
  2227. ret := __none_func_system__(paramObj0)
  2228. if ret {
  2229. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2230. } else {
  2231. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2232. }
  2233. }
  2234. // _FindTableColUserpage
  2235. // @Title _FindTableColUserpage
  2236. // @Description 分页获取用户可见列
  2237. // @Success 200 {object} Account
  2238. // @Failure 403 :id is empty
  2239. func System_FindTableColUserpage(c *entitys.CtrlContext) {
  2240. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2241. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2242. code := c.Ctx.DefaultQuery("code", "")
  2243. user_id := c.Ctx.DefaultQuery("user_id", "")
  2244. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "code": code, "user_id": user_id}
  2245. result, err := sysutils.PageSearch(c.Db, "system", "find_table_col_userpage", "sys_table_col_user", paramMap_i_t)
  2246. if err == nil {
  2247. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2248. } else {
  2249. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2250. }
  2251. }
  2252. // _AddDataPermission
  2253. // @Title _AddDataPermission
  2254. // @Description 添加数据权限
  2255. // @Param string false "数据权限"
  2256. // @Success 200 {object} Account
  2257. // @Failure 403 :id is empty
  2258. func System_AddDataPermission(c *entitys.CtrlContext) {
  2259. var paramObj0 models.SysDataPermission
  2260. c.Ctx.BindJSON(&paramObj0)
  2261. ret := __none_func_system__(paramObj0)
  2262. if ret {
  2263. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2264. } else {
  2265. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2266. }
  2267. }
  2268. // _DelDataPermission
  2269. // @Title _DelDataPermission
  2270. // @Description 删除数据权限
  2271. // @Param id string false "数据权限ID"
  2272. // @Success 200 {object} Account
  2273. // @Failure 403 :id is empty
  2274. func System_DelDataPermission(c *entitys.CtrlContext) {
  2275. id := c.Ctx.Query("id")
  2276. ret := __none_func_system__(id)
  2277. if ret {
  2278. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2279. } else {
  2280. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2281. }
  2282. }
  2283. // _UpdateDataPermission
  2284. // @Title _UpdateDataPermission
  2285. // @Description 更新数据权限
  2286. // @Param string false "数据权限"
  2287. // @Success 200 {object} Account
  2288. // @Failure 403 :id is empty
  2289. func System_UpdateDataPermission(c *entitys.CtrlContext) {
  2290. var paramObj0 models.SysDataPermission
  2291. c.Ctx.BindJSON(&paramObj0)
  2292. ret := __none_func_system__(paramObj0)
  2293. if ret {
  2294. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2295. } else {
  2296. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2297. }
  2298. }
  2299. // _FindDataPermissionPage
  2300. // @Title _FindDataPermissionPage
  2301. // @Description 分页获取数据权限
  2302. // @Success 200 {object} Account
  2303. // @Failure 403 :id is empty
  2304. func System_FindDataPermissionPage(c *entitys.CtrlContext) {
  2305. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2306. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2307. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  2308. result, err := sysutils.PageSearch(c.Db, "system", "find_data_permission_page", "data_permission", paramMap_i_t)
  2309. if err == nil {
  2310. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2311. } else {
  2312. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2313. }
  2314. }
  2315. // _ModifyPassword
  2316. // @Title _ModifyPassword
  2317. // @Description 修改密码
  2318. // @Param body models.ModifyPassword true ""
  2319. // @Success 200 {object} Account
  2320. // @Failure 403 :id is empty
  2321. func System_ModifyPassword(c *entitys.CtrlContext) {
  2322. var err error
  2323. var param models.ModifyPassword
  2324. if err = c.Ctx.BindJSON(&param); err != nil {
  2325. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2326. return
  2327. }
  2328. var errmsg string
  2329. switch {
  2330. case param.Origin == "":
  2331. errmsg = "原密码不能为空"
  2332. case param.New == "":
  2333. errmsg = "新密码不能为空"
  2334. case param.Confirm == "":
  2335. errmsg = "确认密码不能为空"
  2336. case param.Confirm != param.New:
  2337. errmsg = "两次密码不一致"
  2338. }
  2339. if errmsg != "" {
  2340. c.Ctx.JSON(500, sysmodel.SysReturn{500, errmsg, nil})
  2341. return
  2342. }
  2343. engine := c.PlatformDbEngine
  2344. var userId = c.Ctx.GetString("user_id")
  2345. if param.UserId == "" {
  2346. param.UserId = userId
  2347. }
  2348. var user sysmodel.SysUser
  2349. _, err = engine.ID(param.UserId).Get(&user)
  2350. if err != nil {
  2351. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2352. return
  2353. }
  2354. password := sysutils.HashPassword(param.Origin, "")
  2355. if !strings.EqualFold(password, user.Password) {
  2356. c.Ctx.JSON(500, sysmodel.SysReturn{500, "原密码错误", nil})
  2357. return
  2358. }
  2359. _, err = engine.Table(user).ID(user.Id).
  2360. Update(map[string]interface{}{
  2361. "password": sysutils.HashPassword(param.New, ""),
  2362. "last_update_by": userId,
  2363. "last_update_time": time.Now().UnixNano(),
  2364. })
  2365. if err == nil {
  2366. c.Ctx.JSON(200, sysmodel.SysReturn{200, "modify successfully", nil})
  2367. } else {
  2368. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2369. }
  2370. }
  2371. // _AddTagGroup
  2372. // @Title _AddTagGroup
  2373. // @Description 添加标签分组
  2374. // @Param name string false "分组名称"
  2375. // @Param code string false "编码"
  2376. // @Success 200 {object} Account
  2377. // @Failure 403 :id is empty
  2378. func System_AddTagGroup(c *entitys.CtrlContext) {
  2379. userId := c.Ctx.GetString("user_id")
  2380. var obj struct {
  2381. Name string `json:"name"`
  2382. Code string `json:"code"`
  2383. Tags []sysmodel.SysTag `json:"tags"`
  2384. }
  2385. if err := c.Ctx.BindJSON(&obj); err != nil {
  2386. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2387. return
  2388. }
  2389. tagGroup := sysmodel.SysTagGroup{}
  2390. tagGroup.Id = sysutils.NewUUID()
  2391. tagGroup.Name = obj.Name
  2392. tagGroup.Code = obj.Code
  2393. tagGroup.LastUpdateBy = userId
  2394. tagGroup.CreateBy = userId
  2395. tagGroup.CreateTime = sysmodel.NowLocal()
  2396. tagGroup.LastUpdateTime = time.Now().UnixNano()
  2397. tagGroup.DelFlag = 0
  2398. tags := []sysmodel.SysTag{}
  2399. for _, t := range obj.Tags {
  2400. tag := sysmodel.SysTag{}
  2401. tag.GroupId = tagGroup.Id
  2402. tag.Name = t.Name
  2403. tag.Id = sysutils.NewUUID()
  2404. tag.LastUpdateBy = userId
  2405. tag.CreateBy = userId
  2406. tag.CreateTime = sysmodel.NowLocal()
  2407. tag.LastUpdateTime = time.Now().UnixNano()
  2408. tag.DelFlag = 0
  2409. tags = append(tags, tag)
  2410. }
  2411. session := c.Db.NewSession()
  2412. session.Begin()
  2413. _, err := session.Insert(&tagGroup)
  2414. if err != nil {
  2415. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2416. session.Rollback()
  2417. return
  2418. }
  2419. _, err = session.Insert(&tags)
  2420. if err == nil {
  2421. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2422. session.Commit()
  2423. } else {
  2424. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2425. session.Rollback()
  2426. }
  2427. }
  2428. // _DelTagGroup
  2429. // @Title _DelTagGroup
  2430. // @Description 删除分组
  2431. // @Param id string false "角色ID"
  2432. // @Success 200 {object} Account
  2433. // @Failure 403 :id is empty
  2434. func System_DelTagGroup(c *entitys.CtrlContext) {
  2435. type Param struct {
  2436. Id string `json:"id"`
  2437. }
  2438. var params []Param
  2439. if err := c.Ctx.BindJSON(&params); err != nil {
  2440. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2441. return
  2442. }
  2443. ids := []string{}
  2444. for _, param := range params {
  2445. ids = append(ids, param.Id)
  2446. }
  2447. _, err := c.Db.Table(new(models.SysTagGroup)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2448. if err == nil {
  2449. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2450. } else {
  2451. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2452. }
  2453. }
  2454. // _UpdateTagGroup
  2455. // @Title _UpdateTagGroup
  2456. // @Description 修改分组
  2457. // @Param name string false "分组名称"
  2458. // @Param code string false "编码"
  2459. // @Success 200 {object} Account
  2460. // @Failure 403 :id is empty
  2461. func System_UpdateTagGroup(c *entitys.CtrlContext) {
  2462. userId := c.Ctx.GetString("user_id")
  2463. var obj struct {
  2464. sysmodel.SysTagGroup
  2465. Tags []sysmodel.SysTag `json:"tags"`
  2466. }
  2467. if err := c.Ctx.BindJSON(&obj); err != nil {
  2468. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2469. return
  2470. }
  2471. session := c.Db.NewSession()
  2472. session.Begin()
  2473. if _, err := c.Db.Table(new(sysmodel.SysTagGroup)).ID(obj.Id).Update(map[string]interface{}{"name": obj.Name, "code": obj.Code, "last_update_time": time.Now().UnixNano(), "last_update_by": userId}); err != nil {
  2474. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2475. session.Rollback()
  2476. return
  2477. }
  2478. for _, t := range obj.Tags {
  2479. if t.Id == "" {
  2480. tag := sysmodel.SysTag{}
  2481. tag.GroupId = obj.Id
  2482. tag.Name = t.Name
  2483. tag.Id = sysutils.NewUUID()
  2484. tag.LastUpdateBy = userId
  2485. tag.CreateBy = userId
  2486. tag.CreateTime = sysmodel.NowLocal()
  2487. tag.LastUpdateTime = time.Now().UnixNano()
  2488. tag.DelFlag = 0
  2489. if _, err := c.Db.Insert(&tag); err != nil {
  2490. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2491. session.Rollback()
  2492. return
  2493. }
  2494. } else {
  2495. if _, err := c.Db.Table(new(sysmodel.SysTag)).ID(t.Id).Update(map[string]interface{}{"name": t.Name, "last_update_time": time.Now().UnixNano(), "last_update_by": userId}); err != nil {
  2496. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2497. session.Rollback()
  2498. return
  2499. }
  2500. }
  2501. }
  2502. session.Commit()
  2503. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2504. }
  2505. // _GetTagGroup
  2506. // @Title _GetTagGroup
  2507. // @Description 根据标签ID获取标签分组
  2508. // @Param id string false "分组ID"
  2509. // @Success 200 {object} Account
  2510. // @Failure 403 :id is empty
  2511. func System_GetTagGroup(c *entitys.CtrlContext) {
  2512. //type Param struct {
  2513. // Id string `json:"id"`
  2514. //}
  2515. //var params []Param
  2516. //if err := c.Ctx.BindJSON(&params); err != nil {
  2517. // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2518. // return
  2519. //}
  2520. //ids := []string{}
  2521. //for _, param := range params {
  2522. // ids = append(ids, param.Id)
  2523. //}
  2524. //
  2525. //_, err := c.Db.Table(new(models.SysTagGroup)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2526. //
  2527. //if err == nil {
  2528. // c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2529. //} else {
  2530. // c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2531. //}
  2532. }
  2533. // _TagGroupPage
  2534. // @Title _TagGroupPage
  2535. // @Description 获取标签分组分页数
  2536. // @Success 200 {object} Account
  2537. // @Failure 403 :id is empty
  2538. func System_TagGroupPage(c *entitys.CtrlContext) {
  2539. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2540. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2541. name := c.Ctx.DefaultQuery("name", "")
  2542. code := c.Ctx.DefaultQuery("code", "")
  2543. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code}
  2544. result, err := sysutils.PageSearch(c.Db, "system", "tag_group_page", "sys_tag_group", paramMap_i_t)
  2545. if err == nil {
  2546. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2547. } else {
  2548. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2549. }
  2550. }
  2551. // _TagPage
  2552. // @Title _TagPage
  2553. // @Description 获取标签分页数
  2554. // @Success 200 {object} Account
  2555. // @Failure 403 :id is empty
  2556. func System_TagPage(c *entitys.CtrlContext) {
  2557. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2558. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2559. group_id := c.Ctx.DefaultQuery("group_id", "")
  2560. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "group_id": group_id}
  2561. result, err := sysutils.PageSearch(c.Db, "system", "tag_page", "sys_tag", paramMap_i_t)
  2562. if err == nil {
  2563. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2564. } else {
  2565. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2566. }
  2567. }
  2568. // _UserTagPage
  2569. // @Title _UserTagPage
  2570. // @Description 分页获取用户标签
  2571. // @Success 200 {object} Account
  2572. // @Failure 403 :id is empty
  2573. func System_UserTagPage(c *entitys.CtrlContext) {
  2574. page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
  2575. rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
  2576. paramMap_i_t := map[string]interface{}{"page": page, "rows": rows}
  2577. result, err := sysutils.PageSearch(c.Db, "system", "user_tag_page", "sys_user_tag", paramMap_i_t)
  2578. if err == nil {
  2579. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result})
  2580. } else {
  2581. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2582. }
  2583. }
  2584. // _AddTag
  2585. // @Title _AddTag
  2586. // @Description 添加标签
  2587. // @Param name string false "分组名称"
  2588. // @Param group_id string false "分组ID"
  2589. // @Success 200 {object} Account
  2590. // @Failure 403 :id is empty
  2591. func System_AddTag(c *entitys.CtrlContext) {
  2592. name := c.Ctx.Query("name")
  2593. group_id := c.Ctx.Query("group_id")
  2594. ret := __none_func_system__(name, group_id)
  2595. if ret {
  2596. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2597. } else {
  2598. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2599. }
  2600. }
  2601. // _DelTag
  2602. // @Title _DelTag
  2603. // @Description 删除标签
  2604. // @Param id string false "标签ID"
  2605. // @Success 200 {object} Account
  2606. // @Failure 403 :id is empty
  2607. func System_DelTag(c *entitys.CtrlContext) {
  2608. type Param struct {
  2609. Id string `json:"id"`
  2610. }
  2611. var params []Param
  2612. if err := c.Ctx.BindJSON(&params); err != nil {
  2613. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2614. return
  2615. }
  2616. ids := []string{}
  2617. for _, param := range params {
  2618. ids = append(ids, param.Id)
  2619. }
  2620. _, err := c.Db.Table(new(models.SysTag)).In("id", ids).Update(map[string]interface{}{"del_flag": 1, "last_update_time": time.Now().UnixNano(), "last_update_by": c.Ctx.GetString("user_id")})
  2621. if err == nil {
  2622. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2623. } else {
  2624. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2625. }
  2626. }
  2627. // _UpdateTagGroup
  2628. // @Title _UpdateTagGroup
  2629. // @Description 修改标签
  2630. // @Param name string false "分组名称"
  2631. // @Param group_id string false "分组ID"
  2632. // @Success 200 {object} Account
  2633. // @Failure 403 :id is empty
  2634. func System_UpdateTag(c *entitys.CtrlContext) {
  2635. name := c.Ctx.Query("name")
  2636. group_id := c.Ctx.Query("group_id")
  2637. ret := __none_func_system__(name, group_id)
  2638. if ret {
  2639. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2640. } else {
  2641. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2642. }
  2643. }
  2644. // _GetTag
  2645. // @Title _GetTag
  2646. // @Description 根据标签ID获取标签
  2647. // @Param id string false "标签ID"
  2648. // @Success 200 {object} Account
  2649. // @Failure 403 :id is empty
  2650. func System_GetTag(c *entitys.CtrlContext) {
  2651. id := c.Ctx.Query("id")
  2652. ret := __none_func_system__(id)
  2653. if ret {
  2654. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2655. } else {
  2656. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2657. }
  2658. }
  2659. // _AddUserTag
  2660. // @Title _AddUserTag
  2661. // @Description 添加用户标签
  2662. // @Param user_id string false "用户ID"
  2663. // @Param tag_id string false "标签ID"
  2664. // @Success 200 {object} Account
  2665. // @Failure 403 :id is empty
  2666. func System_AddUserTag(c *entitys.CtrlContext) {
  2667. user_id := c.Ctx.Query("user_id")
  2668. tag_id := c.Ctx.Query("tag_id")
  2669. userId := c.Ctx.GetString("user_id")
  2670. userTag := sysmodel.SysUserTag{}
  2671. userTag.Id = sysutils.NewUUID()
  2672. userTag.UserId = user_id
  2673. userTag.TagId = tag_id
  2674. userTag.CreateTime = sysmodel.NowLocal()
  2675. userTag.CreateBy = userId
  2676. userTag.LastUpdateTime = time.Now().UnixNano()
  2677. userTag.LastUpdateBy = userId
  2678. userTag.DelFlag = 0
  2679. if _, err := c.Db.Insert(&userTag); err != nil {
  2680. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2681. } else {
  2682. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2683. }
  2684. }
  2685. // _DelUserTag
  2686. // @Title _DelUserTag
  2687. // @Description 删除标签
  2688. // @Param id string false "标签ID"
  2689. // @Success 200 {object} Account
  2690. // @Failure 403 :id is empty
  2691. func System_DelUserTag(c *entitys.CtrlContext) {
  2692. type Param struct {
  2693. Id string `json:"id"`
  2694. }
  2695. var params []Param
  2696. if err := c.Ctx.BindJSON(&params); err != nil {
  2697. c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
  2698. return
  2699. }
  2700. ids := []string{}
  2701. for _, param := range params {
  2702. ids = append(ids, param.Id)
  2703. }
  2704. var usertag sysmodel.SysUserTag
  2705. _, err := c.Db.In("id", ids).Delete(&usertag)
  2706. if err == nil {
  2707. c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
  2708. } else {
  2709. c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
  2710. }
  2711. }
  2712. func __none_func_system__(params ...interface{}) bool {
  2713. return true
  2714. }