statisticsController.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. 'use strict';
  2. const Controller = require('egg').Controller;
  3. const moment = require('moment');
  4. class StatisticsController extends Controller {
  5. // 1. 采集数据图
  6. async statistics() {
  7. const { ctx, service } = this;
  8. const user = ctx.user;
  9. const level = user.dept.level;
  10. const query = ctx.query;
  11. if (query.level == '5') {
  12. ctx.error('已经是最后一级了');
  13. return;
  14. }
  15. if (query.deptFid && query.level) {
  16. query.deptLevel = parseInt(query.level) + 1;
  17. } else {
  18. query.level = level;
  19. query.deptLevel = query.level;
  20. if (user.role._id != this.app.config.defaultAdminRoleId) {
  21. query.deptId = user.dept._id;
  22. }
  23. }
  24. const statisticsResult = await service.statisticsService.statistics(query);
  25. ctx.success(statisticsResult[0]);
  26. }
  27. async user() {
  28. const { ctx, service } = this;
  29. const user = ctx.user;
  30. const level = user.dept.level;
  31. const query = ctx.query;
  32. if (query.level == '5') {
  33. ctx.error('已经是最后一级了');
  34. return;
  35. }
  36. if (query.deptFid && query.level) {
  37. query.deptLevel = parseInt(query.level) + 1;
  38. } else {
  39. query.level = level;
  40. query.deptLevel = query.level;
  41. if (user.role._id != this.app.config.defaultAdminRoleId) {
  42. query.deptId = user.dept._id;
  43. }
  44. }
  45. const statisticsResult = await service.statisticsService.user(query);
  46. ctx.success(statisticsResult[0]);
  47. }
  48. async info() {
  49. const { ctx, service } = this;
  50. const user = ctx.user;
  51. const level = user.dept.level;
  52. const query = ctx.query;
  53. if (query.level == '5') {
  54. ctx.error('已经是最后一级了');
  55. return;
  56. }
  57. if (query.deptFid && query.level) {
  58. query.deptLevel = parseInt(query.level) + 1;
  59. } else {
  60. query.level = level;
  61. query.deptLevel = query.level;
  62. if (user.role._id != this.app.config.defaultAdminRoleId) {
  63. query.deptId = user.dept._id;
  64. }
  65. }
  66. const statisticsResult = await service.statisticsService.info(query);
  67. ctx.success(statisticsResult[0]);
  68. }
  69. async oldType() {
  70. const { ctx, service } = this;
  71. const user = ctx.user;
  72. const level = user.dept.level;
  73. const query = ctx.query;
  74. if (query.level == '5') {
  75. ctx.error('已经是最后一级了');
  76. return;
  77. }
  78. if (query.deptFid && query.level) {
  79. query.deptLevel = parseInt(query.level) + 1;
  80. } else {
  81. query.level = level;
  82. query.deptLevel = query.level;
  83. if (user.role._id != this.app.config.defaultAdminRoleId) {
  84. query.deptId = user.dept._id;
  85. }
  86. }
  87. const statisticsResult = await service.statisticsService.oldType(query);
  88. ctx.success(statisticsResult[0]);
  89. }
  90. // 2. 吉林省全县区74个审核成功统计图表 优化
  91. async dept3() {
  92. const { ctx, service } = this;
  93. const statisticsResult = await service.statisticsService.dept3();
  94. ctx.success(statisticsResult);
  95. }
  96. // // 吉林省全县区74个审核成功统计图表
  97. // async dept3Statistics() {
  98. // const { ctx, service } = this;
  99. // const statisticsResult = await service.statisticsService.dept3Statistics();
  100. // ctx.success(statisticsResult);
  101. // }
  102. // 3. 地区积分统计图
  103. async deptValues() {
  104. const { ctx, service } = this;
  105. const user = ctx.user;
  106. const level = user.dept.level;
  107. const query = ctx.query;
  108. if (query.level == '5') {
  109. ctx.error('已经是最后一级了');
  110. return;
  111. }
  112. if (query.deptFid && query.level) {
  113. query.deptLevel = parseInt(query.level) + 1;
  114. } else {
  115. query.level = level;
  116. query.deptLevel = query.level;
  117. if (user.role._id != this.app.config.defaultAdminRoleId) {
  118. query.deptId = user.dept._id;
  119. }
  120. }
  121. const deptValuesList = await service.statisticsService.deptValues(query);
  122. ctx.success(deptValuesList);
  123. }
  124. // 4. 个人积分统计图,优化版
  125. async oneValues() {
  126. const { ctx, service } = this;
  127. const user = ctx.user;
  128. const level = user.dept.level;
  129. // 判断当前的dept权限 和传入的5级权限 不能超过当前人dept
  130. if (!ctx.query.dept1) {
  131. delete ctx.query.dept1;
  132. }
  133. if (!ctx.query.dept2) {
  134. delete ctx.query.dept2;
  135. }
  136. if (!ctx.query.dept3) {
  137. delete ctx.query.dept3;
  138. }
  139. if (!ctx.query.dept4) {
  140. delete ctx.query.dept4;
  141. }
  142. if (!ctx.query.dept5) {
  143. delete ctx.query.dept5;
  144. }
  145. delete ctx.query.deptId;
  146. // admin的dept 存在冲突,所以它不需要结合
  147. if (user.role._id != this.app.config.defaultAdminRoleId) {
  148. ctx.query['dept' + level] = user.dept._id;
  149. }
  150. // 判断如果当前是采集员看数据的话 只能看他自己
  151. if (user.role._id + '' == this.app.config.defaultUserRoleId) {
  152. ctx.query.cjname = user.loginName;
  153. }
  154. const result = await service.statisticsService.userValues(ctx.query);
  155. ctx.success(result);
  156. }
  157. // // 个人积分统计图
  158. // async userValues() {
  159. // const { ctx, service } = this;
  160. // const user = ctx.user;
  161. // const level = user.dept.level;
  162. // // 判断当前的dept权限 和传入的5级权限 不能超过当前人dept
  163. // if (!ctx.query.dept1) {
  164. // delete ctx.query.dept1;
  165. // }
  166. // if (!ctx.query.dept2) {
  167. // delete ctx.query.dept2;
  168. // }
  169. // if (!ctx.query.dept3) {
  170. // delete ctx.query.dept3;
  171. // }
  172. // if (!ctx.query.dept4) {
  173. // delete ctx.query.dept4;
  174. // }
  175. // if (!ctx.query.dept5) {
  176. // delete ctx.query.dept5;
  177. // }
  178. // delete ctx.query.deptId;
  179. // // admin的dept 存在冲突,所以它不需要结合
  180. // if (user.role._id != this.app.config.defaultAdminRoleId) {
  181. // ctx.query['dept' + level] = user.dept._id;
  182. // }
  183. //
  184. // // 判断如果当前是采集员看数据的话 只能看他自己
  185. // if (user.role._id + '' == this.app.config.defaultUserRoleId) {
  186. // ctx.query.cjname = user.loginName;
  187. // }
  188. //
  189. // const result = await service.statisticsService.userValues(ctx.query);
  190. // ctx.success(result);
  191. // }
  192. // 5. 探访类别分布图
  193. async visitDeptStatistics() {
  194. const { ctx, service } = this;
  195. const user = ctx.user;
  196. const level = user.dept.level;
  197. const query = ctx.query;
  198. if (query.level == '5') {
  199. ctx.error('已经是最后一级了');
  200. return;
  201. }
  202. if (query.deptFid && query.level) {
  203. query.deptLevel = parseInt(query.level) + 1;
  204. } else {
  205. query.level = level;
  206. query.deptLevel = query.level;
  207. if (user.role._id != this.app.config.defaultAdminRoleId) {
  208. query.deptId = user.dept._id;
  209. }
  210. }
  211. const deptValuesList = await service.statisticsService.visitDeptOldType(query);
  212. ctx.success(deptValuesList);
  213. }
  214. // 6. 探访县区分布图
  215. async visitDept3Statistics() {
  216. const { ctx, service } = this;
  217. const query = ctx.query;
  218. const statisticsResult = await service.statisticsService.visitDept3Statistics(query);
  219. ctx.success(statisticsResult);
  220. }
  221. }
  222. module.exports = StatisticsController;