package com.goafanti.order.service.impl; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.dao.AdminMapper; import com.goafanti.common.utils.StringUtils; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.order.enums.ProcessStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PushOrderService { public static String DEFAULTS_URL="/image/noPermission.jpg"; @Autowired private AdminMapper adminMapper; /** * 根据角色判断是否可以查看合同图片 * @param url 合同地址 * @param aid 营销id * @param approval 特批 * @param orderDep 订单编号 * @return */ public String ShiroConstant(String url,String aid,Integer approval,String orderDep){ if (StringUtils.isNotNull(url)) { //暂时开放营销管理员可以查看 if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) || TokenManager.hasRole(AFTConstants.CUSTOMER_SERVICE) || TokenManager.hasRole(AFTConstants.FINANCE_ADMIN) || TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)|| TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) { return url; } else if (TokenManager.hasRole(AFTConstants.CED)) { if (approval == 1) { return url; } else { return url; } } else if (TokenManager.hasRole(AFTConstants.FINANCE)) { List deps = adminMapper.getFinanceDep(TokenManager.getAdminId()); boolean flag = false; for (String dep : deps) { if (dep.equals(orderDep)) { flag = true; break; } } if (flag) { return url; } else { return DEFAULTS_URL; } } else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) { List deps = adminMapper.getLowerFinanceDep(TokenManager.getAdminId()); boolean flag = false; for (String dep : deps) { if (orderDep.equals(deps)) { flag = true; break; } } if (flag) { return url; } else { return DEFAULTS_URL; } } else if (TokenManager.hasRole(AFTConstants.SALESMAN)) { if (TokenManager.getAdminId().equals(aid)) { return url; } else { return DEFAULTS_URL; } } else { return DEFAULTS_URL; } } return null; } /** * 根据流程与角色判断是否可以查看订单合同 * @param url * @param aid * @param processStatus * @return */ public String processStatusConstant(String url,String aid,Integer processStatus){ //流程状态 0-已派营销员,1-已派营销员管理员,2-已派财务管理员,3-已派财务专员,4-已派咨询师管理员,5-已部分派咨询师经理,6-已部全部派咨询师经理 if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) || TokenManager.hasRole(AFTConstants.CED) ){ return url; }else if (((TokenManager.hasRole(AFTConstants.SALESMAN)||TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)))&& TokenManager.getAdminId().equals(aid)){ return url; }else if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)&&processStatus== ProcessStatus.YPYXGLY.getCode()){ return url; }else if (TokenManager.hasRole(AFTConstants.FINANCE)&&processStatus== ProcessStatus.YPCWZY.getCode()){ return url; }else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)&&processStatus== ProcessStatus.YPZXSGLY.getCode()){ return url; }else{ return DEFAULTS_URL; } } /** * 根据变更流程判断是否可以查看 * * @param url * @param processStatus * @param status 在流程走完则要财务退票 状态 0草稿 1审核中 2通过 3驳回 4完成 5撤销 2是流程走完但是还停留在财务退票,4才是完全走完流程 * @return */ public String changeProcessStatusConstant(String url,Integer processStatus,Integer status){ boolean flag=false; //流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长 9 财务专员(非退单) if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.APPROVAL_DECISION) || TokenManager.hasRole(AFTConstants.CED) ){ flag=true; }else{ switch (processStatus) { case 0: if(TokenManager.hasRole(AFTConstants.SALESMAN)||TokenManager.hasRole(AFTConstants.SALESMAN_MANAGER)){ flag=true; } break; case 1: if(TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){ flag=true; } break; case 2: if(TokenManager.hasRole(AFTConstants.TECH)){ flag=true; } break; case 3: if(TokenManager.hasRole(AFTConstants.TECH_MANAGER)){ flag=true; } break; case 4: if(TokenManager.hasRole(AFTConstants.TECH_ADMIN)){ flag=true; } break; case 5: if(TokenManager.hasRole(AFTConstants.FINANCE)){ flag=true; } break; case 6: if(TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)){ flag=true; } break; case 7: if((TokenManager.hasRole(AFTConstants.CED)&&status!=2)|| (TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){ flag=true; } break; case 8: if((TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)&&status!=2)|| (TokenManager.hasRole(AFTConstants.FINANCE)&&status==2)){ flag=true; } break; case 9: if(TokenManager.hasRole(AFTConstants.FINANCE)){ flag=true; } break; } } if (flag){ return url; }else { return DEFAULTS_URL; } } }