PushOrderService.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package com.goafanti.order.service.impl;
  2. import com.goafanti.common.constant.AFTConstants;
  3. import com.goafanti.common.dao.AdminMapper;
  4. import com.goafanti.common.utils.StringUtils;
  5. import com.goafanti.core.shiro.token.TokenManager;
  6. import com.goafanti.order.enums.ProcessStatus;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import java.util.List;
  10. @Service
  11. public class PushOrderService {
  12. public static String DEFAULTS_URL="/image/noPermission.jpg";
  13. @Autowired
  14. private AdminMapper adminMapper;
  15. /**
  16. * 根据角色判断是否可以查看合同图片
  17. * @param url 合同地址
  18. * @param aid 营销id
  19. * @param approval 特批
  20. * @param orderDep 订单编号
  21. * @return
  22. */
  23. public String ShiroConstant(String url,String aid,Integer approval,String orderDep){
  24. if (StringUtils.isNotNull(url)) {
  25. //暂时开放营销管理员可以查看
  26. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) ||
  27. TokenManager.hasRole(AFTConstants.CUSTOMER_SERVICE) || TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)
  28. || TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)|| TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
  29. return url;
  30. } else if (TokenManager.hasRole(AFTConstants.CED)) {
  31. if (approval == 1) {
  32. return url;
  33. } else {
  34. return url;
  35. }
  36. } else if (TokenManager.hasRole(AFTConstants.FINANCE)) {
  37. List<String> deps = adminMapper.getFinanceDep(TokenManager.getAdminId());
  38. boolean flag = false;
  39. for (String dep : deps) {
  40. if (dep.equals(orderDep)) {
  41. flag = true;
  42. break;
  43. }
  44. }
  45. if (flag) {
  46. return url;
  47. } else {
  48. return DEFAULTS_URL;
  49. }
  50. } else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
  51. List<String> deps = adminMapper.getLowerFinanceDep(TokenManager.getAdminId());
  52. boolean flag = false;
  53. for (String dep : deps) {
  54. if (orderDep.equals(deps)) {
  55. flag = true;
  56. break;
  57. }
  58. }
  59. if (flag) {
  60. return url;
  61. } else {
  62. return DEFAULTS_URL;
  63. }
  64. } else if (TokenManager.hasRole(AFTConstants.SALESMAN)) {
  65. if (TokenManager.getAdminId().equals(aid)) {
  66. return url;
  67. } else {
  68. return DEFAULTS_URL;
  69. }
  70. } else {
  71. return DEFAULTS_URL;
  72. }
  73. }
  74. return null;
  75. }
  76. /**
  77. * 根据流程与角色判断是否可以查看订单合同
  78. * @param url
  79. * @param aid
  80. * @param processStatus
  81. * @return
  82. */
  83. public String processStatusConstant(String url,String aid,Integer processStatus){
  84. //流程状态 0-已派营销员,1-已派营销员管理员,2-已派财务管理员,3-已派财务专员,4-已派咨询师管理员,5-已部分派咨询师经理,6-已部全部派咨询师经理
  85. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) ||
  86. TokenManager.hasRole(AFTConstants.CED) ){
  87. return url;
  88. }else if (((TokenManager.hasRole(AFTConstants.SALESMAN)||TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)))&&
  89. TokenManager.getAdminId().equals(aid)){
  90. return url;
  91. }else if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)&&processStatus== ProcessStatus.YPYXGLY.getCode()){
  92. return url;
  93. }else if (TokenManager.hasRole(AFTConstants.FINANCE)&&processStatus== ProcessStatus.YPCWZY.getCode()){
  94. return url;
  95. }else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)&&processStatus== ProcessStatus.YPZXSGLY.getCode()){
  96. return url;
  97. }else{
  98. return DEFAULTS_URL;
  99. }
  100. }
  101. /**
  102. * 根据变更流程判断是否可以查看
  103. *
  104. * @param url
  105. * @param processStatus
  106. * @param status 在流程走完则要财务退票 状态 0草稿 1审核中 2通过 3驳回 4完成 5撤销 2是流程走完但是还停留在财务退票,4才是完全走完流程
  107. * @return
  108. */
  109. public String changeProcessStatusConstant(String url,Integer processStatus,Integer status){
  110. boolean flag=false;
  111. //流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长 9 财务专员(非退单)
  112. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) ||
  113. TokenManager.hasRole(AFTConstants.CED) ){
  114. flag=true;
  115. }else{
  116. switch (processStatus) {
  117. case 0:
  118. if(TokenManager.hasRole(AFTConstants.SALESMAN)||TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){
  119. flag=true;
  120. }
  121. break;
  122. case 1:
  123. if(TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
  124. flag=true;
  125. }
  126. break;
  127. case 2:
  128. if(TokenManager.hasRole(AFTConstants.TECH)){
  129. flag=true;
  130. }
  131. break;
  132. case 3:
  133. if(TokenManager.hasRole(AFTConstants.TECH_MANAGER)){
  134. flag=true;
  135. }
  136. break;
  137. case 4:
  138. if(TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
  139. flag=true;
  140. }
  141. break;
  142. case 5:
  143. if(TokenManager.hasRole(AFTConstants.FINANCE)){
  144. flag=true;
  145. }
  146. break;
  147. case 6:
  148. if(TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)){
  149. flag=true;
  150. }
  151. break;
  152. case 7:
  153. if((TokenManager.hasRole(AFTConstants.CED)&&status!=2)||
  154. (TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){
  155. flag=true;
  156. }
  157. break;
  158. case 8:
  159. if((TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)&&status!=2)||
  160. (TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){
  161. flag=true;
  162. }
  163. break;
  164. case 9:
  165. if(TokenManager.hasRole(AFTConstants.FINANCE)){
  166. flag=true;
  167. }
  168. break;
  169. }
  170. }
  171. if (flag){
  172. return url;
  173. }else {
  174. return DEFAULTS_URL;
  175. }
  176. }
  177. }