entity.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. package service
  2. import (
  3. util "app.yhyue.com/moapp/jybase/common"
  4. . "app.yhyue.com/moapp/jybase/mongodb"
  5. "app.yhyue.com/moapp/jybase/mysql"
  6. "github.com/zeromicro/go-zero/core/logx"
  7. )
  8. func ClearEnt() {
  9. Ents = map[int]*Ent{}
  10. EntUsers = map[int]*EntUser{}
  11. EntUserDept = map[int]*EntDeptUser{}
  12. EntDeptUsers = map[int][]*EntDeptUser{}
  13. EntRuleUsers = map[string][]*EntRuleUser{}
  14. EntUserRules = map[int][]*EntRuleUser{}
  15. EntDepts = map[int]*EntDept{}
  16. EntParentDept = map[int][]*EntDeptParent{}
  17. EntChildDept = map[int][]*EntDeptParent{}
  18. EntDeptDis = map[int][]*EntDistribute{}
  19. }
  20. //
  21. func InitEnt(mysql *mysql.Mysql, mgo *MongodbSim, dbName string, entId, entUserId int) {
  22. InitEnts(mysql, entId)
  23. InitEntUsers(mysql, entUserId)
  24. InitEntDeptUsers(mysql, entUserId)
  25. InitEntRuleUsers(mysql, entUserId)
  26. InitEntDepts(mysql, entId)
  27. InitEntDeptParents(mysql, entId)
  28. InitEntDistribute(mgo, dbName, entId)
  29. }
  30. ///////////////////////
  31. var Ents = map[int]*Ent{}
  32. type Ent struct {
  33. Id int
  34. Model int
  35. Name string
  36. DeptParent map[int][]int
  37. IsNew int
  38. }
  39. func InitEnts(Mysql *mysql.Mysql, entId int) {
  40. list := Mysql.SelectBySql("select id,model,name from entniche_info where id=? and isNew=1 and status=1 and model in (1,2)", entId)
  41. if list == nil {
  42. return
  43. }
  44. for _, v := range *list {
  45. id := util.IntAll(v["id"])
  46. Ents[id] = &Ent{
  47. Id: id,
  48. Model: util.IntAll(v["model"]),
  49. Name: util.ObjToString(v["name"]),
  50. }
  51. }
  52. logx.Info("entniche_info加载完成!")
  53. }
  54. var EntDepts = map[int]*EntDept{}
  55. type EntDept struct {
  56. Id int
  57. Pid int
  58. Name string
  59. Nodiff int
  60. Subdis int
  61. }
  62. func InitEntDepts(Mysql *mysql.Mysql, entId int) {
  63. list := Mysql.SelectBySql(`select id,name,pid,subdis,nodiff from entniche_department where ent_id=?`, entId)
  64. if list == nil {
  65. return
  66. }
  67. for _, v := range *list {
  68. id := util.IntAll(v["id"])
  69. EntDepts[id] = &EntDept{
  70. Id: id,
  71. Pid: util.IntAll(v["pid"]),
  72. Nodiff: util.IntAll(v["nodiff"]),
  73. Subdis: util.IntAll(v["subdis"]),
  74. Name: util.ObjToString(v["name"]),
  75. }
  76. }
  77. logx.Info("entniche_department加载完成!")
  78. }
  79. var EntUsers = map[int]*EntUser{}
  80. type EntUser struct {
  81. Id int
  82. Name string
  83. Mail string
  84. Phone string
  85. Power int
  86. }
  87. func InitEntUsers(Mysql *mysql.Mysql, entUserId int) {
  88. list := Mysql.SelectBySql(`select id,name,mail,phone,power from entniche_user where id=?`, entUserId)
  89. if list == nil {
  90. return
  91. }
  92. for _, v := range *list {
  93. id := util.IntAll(v["id"])
  94. EntUsers[id] = &EntUser{
  95. Id: id,
  96. Name: util.ObjToString(v["name"]),
  97. Mail: util.ObjToString(v["mail"]),
  98. Phone: util.ObjToString(v["phone"]),
  99. Power: util.IntAll(v["power"]),
  100. }
  101. }
  102. logx.Info("entniche_user加载完成!")
  103. }
  104. //我所有的父部门
  105. var EntParentDept = map[int][]*EntDeptParent{}
  106. //我所有的子部门
  107. var EntChildDept = map[int][]*EntDeptParent{}
  108. type EntDeptParent struct {
  109. Id int
  110. Pid int
  111. }
  112. func InitEntDeptParents(Mysql *mysql.Mysql, entId int) {
  113. list := Mysql.SelectBySql(`select a.id,a.pid from entniche_department_parent a inner join entniche_department b on (a.id=b.id and b.ent_id=?)`, entId)
  114. if list == nil {
  115. return
  116. }
  117. for _, v := range *list {
  118. id := util.IntAll(v["id"])
  119. pid := util.IntAll(v["pid"])
  120. EntParentDept[id] = append(EntParentDept[id], &EntDeptParent{
  121. Id: id,
  122. Pid: pid,
  123. })
  124. EntChildDept[pid] = append(EntChildDept[pid], &EntDeptParent{
  125. Id: id,
  126. Pid: pid,
  127. })
  128. }
  129. logx.Info("entniche_department_parent加载完成!")
  130. }
  131. var EntUserDept = map[int]*EntDeptUser{}
  132. var EntDeptUsers = map[int][]*EntDeptUser{}
  133. type EntDeptUser struct {
  134. UserId int
  135. DeptId int
  136. }
  137. func InitEntDeptUsers(Mysql *mysql.Mysql, entUserId int) {
  138. list := Mysql.SelectBySql(`select dept_id,user_id from entniche_department_user where user_id=?`, entUserId)
  139. if list == nil {
  140. return
  141. }
  142. for _, v := range *list {
  143. user_id := util.IntAll(v["user_id"])
  144. dept_id := util.IntAll(v["dept_id"])
  145. entDeptUser := &EntDeptUser{
  146. UserId: user_id,
  147. DeptId: dept_id,
  148. }
  149. EntUserDept[user_id] = entDeptUser
  150. EntDeptUsers[dept_id] = append(EntDeptUsers[dept_id], entDeptUser)
  151. }
  152. logx.Info("entniche_department_user加载完成!")
  153. }
  154. var EntRuleUsers = map[string][]*EntRuleUser{}
  155. var EntUserRules = map[int][]*EntRuleUser{}
  156. type EntRuleUser struct {
  157. UserId int
  158. RuleId string
  159. }
  160. func InitEntRuleUsers(Mysql *mysql.Mysql, entUserId int) {
  161. list := Mysql.SelectBySql(`select user_id,rule_id from entniche_user_rule where user_id=?`, entUserId)
  162. if list == nil {
  163. return
  164. }
  165. for _, v := range *list {
  166. ruleId := util.ObjToString(v["rule_id"])
  167. userId := util.IntAll(v["user_id"])
  168. entRuleUser := &EntRuleUser{
  169. UserId: userId,
  170. RuleId: ruleId,
  171. }
  172. EntRuleUsers[ruleId] = append(EntRuleUsers[ruleId], entRuleUser)
  173. EntUserRules[userId] = append(EntUserRules[userId], entRuleUser)
  174. }
  175. logx.Info("entniche_user_rule加载完成!")
  176. }
  177. var EntDeptDis = map[int][]*EntDistribute{}
  178. type EntDistribute struct {
  179. Id string
  180. DeptId int
  181. Area map[string]interface{}
  182. Buyerclass []interface{}
  183. Items []string
  184. }
  185. func InitEntDistribute(mgo *MongodbSim, dbName string, entId int) {
  186. sess := mgo.GetMgoConn()
  187. defer mgo.DestoryMongoConn(sess)
  188. it := sess.DB(dbName).C("entniche_distribute").Find(map[string]interface{}{
  189. "i_status": map[string]interface{}{"$ne": 1},
  190. "i_entid": entId,
  191. }).Select(map[string]interface{}{
  192. "_id": 1,
  193. "i_entid": 1,
  194. "i_deptid": 1,
  195. "a_items": 1,
  196. "o_area": 1,
  197. "a_buyerclass": 1,
  198. }).Iter()
  199. for temp := make(map[string]interface{}); it.Next(&temp); {
  200. if temp["i_deptid"] == nil {
  201. continue
  202. }
  203. deptId := util.IntAll(temp["i_deptid"])
  204. a_items, _ := temp["a_items"].([]interface{})
  205. o_area, _ := temp["o_area"].(map[string]interface{})
  206. a_buyerclass, _ := temp["a_buyerclass"].([]interface{})
  207. EntDeptDis[deptId] = append(EntDeptDis[deptId], &EntDistribute{
  208. Id: BsonIdToSId(temp["_id"]),
  209. DeptId: deptId,
  210. Area: o_area,
  211. Buyerclass: a_buyerclass,
  212. Items: util.ObjArrToStringArr(a_items),
  213. })
  214. temp = make(map[string]interface{})
  215. }
  216. }