company_permission.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. package company
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type ChartPermission struct {
  7. ChartPermissionId int `description:"权限id"`
  8. ChartPermissionName string `description:"权限名称(旧)"`
  9. PermissionName string `description:"权限名称"`
  10. Sort int `description:"排序"`
  11. Enabled int `description:"是否可用"`
  12. CreatedTime time.Time `description:"创建时间"`
  13. LastUpdatedTime time.Time `description:"最后更新时间"`
  14. TeleconferenceSort int `description:"电话会排序"`
  15. Remark string `description:"备注"`
  16. ClassifyName string `description:"分类"`
  17. PermissionType int `description:"1主观,2客观"`
  18. Checked bool `description:"选中状态"`
  19. }
  20. type PermissionSetItem struct {
  21. ChartPermissionId int `description:"权限id"`
  22. PermissionName string `description:"权限名称"`
  23. PermissionType int `description:"1主观,2客观"`
  24. Checked bool `description:"选中状态"`
  25. Child []*PermissionSetItem `description:"具体的主客观-方便前端的排版用的"`
  26. }
  27. type PermissionSetItemType struct {
  28. PermissionName string `description:"权限名称"`
  29. Checked bool `description:"选中状态"`
  30. CheckedMinate bool `description:"不确定状态"`
  31. NoClicking bool `description:"是否禁止点击"`
  32. Items []*PermissionLookItem
  33. }
  34. type PermissionSetList struct {
  35. ClassifyName string `description:"分类"`
  36. Items []*PermissionSetItem
  37. CheckList []int
  38. }
  39. type PermissionSetListType struct {
  40. ClassifyName string `description:"分类"`
  41. Items []*PermissionSetItemType
  42. CheckList []int
  43. }
  44. type PermissionSetResp struct {
  45. List []*PermissionSetList
  46. //ListUpgrade []*PermissionSetList `description:"升级权限列表"`
  47. ListType []*PermissionSetListType `description:"主观客观列表"`
  48. }
  49. type ChartPermissionFirst struct {
  50. ClassifyName string `description:"分类"`
  51. }
  52. func GetPermissionSetItems(productId int, classifyName string) (items []*PermissionSetItem, err error) {
  53. o := orm.NewOrm()
  54. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type=0 ORDER BY sort ASC `
  55. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  56. return
  57. }
  58. func GetPermissionSetItemsByType(productId int, classifyName string) (items []*PermissionSetItem, err error) {
  59. o := orm.NewOrm()
  60. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type!=2 ORDER BY sort ASC `
  61. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  62. return
  63. }
  64. func GetPermissionSetSandoItems(productId int, classifyName string) (items []*PermissionLookItem, err error) {
  65. o := orm.NewOrm()
  66. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? ORDER BY sort ASC `
  67. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  68. return
  69. }
  70. func GetPermissionSetItemsType(productId int, classifyName string) (items []*PermissionLookItem, err error) {
  71. o := orm.NewOrm()
  72. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? AND permission_type!=0 ORDER BY sort ASC `
  73. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  74. return
  75. }
  76. type CompanyReportPermission struct {
  77. CompanyReportPermissionId int64 `orm:"column(company_report_permission_id);pk"`
  78. CompanyId int
  79. ReportPermissionId int
  80. CreatedTime time.Time
  81. LastUpdatedTime time.Time
  82. ChartPermissionId int
  83. StartDate string `description:"权限开始日期"`
  84. EndDate string `description:"权限结束日期"`
  85. ProductId int `description:"产品id"`
  86. ProductName string `description:"产品名称"`
  87. CompanyContractId int `description:"合同id"`
  88. Status string `description:"'正式','试用','关闭'"`
  89. ModifyTime time.Time `description:"修改时间"`
  90. IsUpgrade int `description:"是否升级,1是,0否"`
  91. ExpensiveYx int `description:"权益研选: 0-3w; 1-5w"`
  92. }
  93. // 新增客户权限
  94. func AddCompanyReportPermission(item *CompanyReportPermission) (err error) {
  95. o := orm.NewOrm()
  96. lastId, err := o.Insert(item)
  97. item.CompanyReportPermissionId = lastId
  98. return
  99. }
  100. func GetCompanyReportPermissionCount(companyId, productId int) (count int, err error) {
  101. o := orm.NewOrm()
  102. sql := `SELECT COUNT(1) AS count FROM company_report_permission WHERE company_id=? AND product_id=? `
  103. err = o.Raw(sql, companyId, productId).QueryRow(&count)
  104. return
  105. }
  106. func DeleteCompanyReportPermission(companyId, productId int) (err error) {
  107. o := orm.NewOrm()
  108. sql := ` DELETE FROM company_report_permission WHERE company_id=? AND product_id=? `
  109. _, err = o.Raw(sql, companyId, productId).Exec()
  110. return
  111. }
  112. type PermissionLookResp struct {
  113. List []*PermissionLookList
  114. ListRai []*PermissionLookList `description:"权益"`
  115. }
  116. type PermissionLookSandoResp struct {
  117. List []*PermissionLookList
  118. ListType []*PermissionSetListType `description:"主观客观列表"`
  119. }
  120. type PermissionLookList struct {
  121. ClassifyName string `description:"分类"`
  122. Items []*PermissionLookItem
  123. ItemsType []*PermissionSetItemType `description:"主观客观列表"`
  124. CheckList []int
  125. RaiMerge int `description:"权益-用于前端判断展示形式:1-全部合并 2-全部拆分"`
  126. }
  127. type PermissionLookItem struct {
  128. ChartPermissionId int `description:"权限id"`
  129. PermissionName string `description:"权限名称"`
  130. StartDate string `description:"权限开始日期"`
  131. EndDate string `description:"权限结束日期"`
  132. Status string `description:"'正式','试用','关闭'"`
  133. ExpireDay string `description:"到期天数"`
  134. ClassifyName string `description:"分类"`
  135. PermissionType int `description:"1主观,2客观"`
  136. PermissionTypeName string `description:"主观、客观"`
  137. Checked bool `description:"选中状态"`
  138. Remark string `description:"备注"`
  139. IsMerge bool `description:"是否合并行业, 给前端的标识, 暂时仅权益使用"`
  140. RaiBothHas bool `description:"权益-是否主客观都有"`
  141. IsUpgrade int `description:"是否升级,1是,0否"`
  142. Child []*PermissionLookItem `description:"子权限"`
  143. }
  144. func GetPermissionLookItems(productId int, classifyName string) (items []*PermissionLookItem, err error) {
  145. o := orm.NewOrm()
  146. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? ORDER BY sort ASC `
  147. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  148. return
  149. }
  150. func GetCompanyPermissionCheck(companyId, permissionId int) (count int, err error) {
  151. o := orm.NewOrm()
  152. sql := `SELECT COUNT(1) AS count FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? `
  153. err = o.Raw(sql, companyId, permissionId).QueryRow(&count)
  154. return
  155. }
  156. // GetCompanyPermission 根据客户id和品种id获取对应的数据
  157. func GetCompanyPermission(companyId, permissionId int) (item *CompanyReportPermission, err error) {
  158. o := orm.NewOrm()
  159. sql := `SELECT * FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? `
  160. err = o.Raw(sql, companyId, permissionId).QueryRow(&item)
  161. return
  162. }
  163. func GetCompanyPermissionCheckItem(companyId, permissionId int) (item *PermissionLookItem, err error) {
  164. o := orm.NewOrm()
  165. sql := `SELECT * FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? `
  166. err = o.Raw(sql, companyId, permissionId).QueryRow(&item)
  167. return
  168. }
  169. // 通过主观ID获取对应的客观ID
  170. func GetPermissionIdById(permissionIds string) (allpermissionId string, err error) {
  171. sql := ` SELECT
  172. GROUP_CONCAT( DISTINCT chart_permission_id SEPARATOR ',' ) AS permission
  173. FROM
  174. chart_permission
  175. WHERE
  176. product_permission_name IN (
  177. SELECT
  178. product_permission_name
  179. FROM
  180. chart_permission
  181. WHERE
  182. chart_permission_id IN ( ` + permissionIds + ` )) `
  183. o := orm.NewOrm()
  184. err = o.Raw(sql).QueryRow(&allpermissionId)
  185. return
  186. }
  187. type PermissionVarietyResp struct {
  188. List []*PermissionVarietyList
  189. }
  190. type PermissionVarietyItem struct {
  191. ChartPermissionId int `description:"权限id"`
  192. ClassifyName string `orm:"column(permission_name)" description:"权限名称"`
  193. }
  194. type PermissionVarietyList struct {
  195. ChartPermissionId int `description:"父级id"`
  196. ClassifyName string `description:"分类"`
  197. Items []*PermissionVarietyItem
  198. }
  199. func GetPermissionVarietyItems(productId int, classifyName string) (items []*PermissionVarietyItem, err error) {
  200. o := orm.NewOrm()
  201. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? GROUP BY permission_name ORDER BY sort ASC `
  202. _, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
  203. return
  204. }
  205. type PermissionCompany struct {
  206. CompanyId int
  207. }
  208. //
  209. //func GetCompanyListCompanyIdByPermissionIdStr(permissionStr string, permissionCount int) (items []*PermissionCompany, err error) {
  210. // o := orm.NewOrm()
  211. // sql := `
  212. // SELECT company_id, COUNT(company_id) ks
  213. // FROM company_report_permission
  214. // WHERE report_permission_id IN (` + permissionStr + `)
  215. //
  216. // GROUP BY company_id
  217. // HAVING company_id IN
  218. //
  219. // (SELECT company_id
  220. // FROM company_report_permission
  221. // GROUP BY company_id
  222. // HAVING COUNT(company_id) = ?)
  223. //
  224. // AND COUNT(company_id) = ?
  225. //`
  226. // _, err = o.Raw(sql, permissionCount, permissionCount).QueryRows(&items)
  227. // return
  228. //}
  229. func GetCompanyListCompanyIdByPermissionIdStr(permissionStr string) (company_id string, err error) {
  230. o := orm.NewOrm()
  231. sql := `
  232. SELECT
  233. GROUP_CONCAT(DISTINCT company_id) AS company_id
  234. FROM company_report_permission
  235. WHERE report_permission_id IN (?)
  236. #GROUP BY company_id
  237. `
  238. err = o.Raw(sql, permissionStr).QueryRow(&company_id)
  239. return
  240. }
  241. func GetPermissionNameByPermissionIdStr(permissionStr string) (chart_permission_name string, err error) {
  242. o := orm.NewOrm()
  243. sql := `SELECT GROUP_CONCAT(DISTINCT chart_permission_name SEPARATOR ',') AS chart_permission_name FROM chart_permission WHERE chart_permission_id IN (` + permissionStr + `)`
  244. err = o.Raw(sql).QueryRow(&chart_permission_name)
  245. return
  246. }
  247. func GetPermissionIdsByPermissionNameStr(chartPermissionName string) (chart_permission_id string, err error) {
  248. o := orm.NewOrm()
  249. sql := `SELECT GROUP_CONCAT(DISTINCT chart_permission_id SEPARATOR ',') AS chart_permission_id FROM chart_permission WHERE chart_permission_name IN(` + chartPermissionName + `)`
  250. err = o.Raw(sql).QueryRow(&chart_permission_id)
  251. return
  252. }
  253. // 新增试用权限
  254. type PermissionAddTryOutReq struct {
  255. CompanyId int `description:"客户id"`
  256. ChartPermissionId string `description:"权限id,多个用英文逗号隔开"`
  257. }
  258. // GetChartPermissionListById 根据权限id获取产品权限详情
  259. func GetChartPermissionListById(chartPermissionId int) (item *ChartPermission, err error) {
  260. o := orm.NewOrm()
  261. sql := `SELECT * FROM chart_permission WHERE chart_permission_id =? `
  262. err = o.Raw(sql, chartPermissionId).QueryRow(&item)
  263. return
  264. }
  265. func GetPermissionLookItemsSandO(permissionIds string) (items []*PermissionLookItem, err error) {
  266. o := orm.NewOrm()
  267. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND chart_permission_id IN (` + permissionIds + `) ORDER BY sort ASC `
  268. _, err = o.Raw(sql).QueryRows(&items)
  269. return
  270. }
  271. func GetPermissionLookItemsSandOByName(permissionName string) (items []*PermissionLookItem, err error) {
  272. o := orm.NewOrm()
  273. sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id = 2 AND remark IN (` + permissionName + `) ORDER BY sort ASC `
  274. _, err = o.Raw(sql).QueryRows(&items)
  275. return
  276. }
  277. func GetParentIdFromGroup(gid int) (items *int, err error) {
  278. o := orm.NewOrm()
  279. sql := `SELECT parent_id FROM sys_group WHERE group_id=? `
  280. err = o.Raw(sql, gid).QueryRow(&items)
  281. return
  282. }
  283. func GetGroupIdsByParentId(gid int) (items []*string, err error) {
  284. o := orm.NewOrm()
  285. sql := `SELECT group_id FROM sys_group WHERE parent_id=? `
  286. _, err = o.Raw(sql, gid).QueryRows(&items)
  287. return
  288. }
  289. func GetGroupNamesById(gid int) (items *string, err error) {
  290. o := orm.NewOrm()
  291. sql := `SELECT group_name FROM sys_group WHERE group_id=? `
  292. err = o.Raw(sql, gid).QueryRow(&items)
  293. return
  294. }