diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/beans/FuncInfo.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/beans/FuncInfo.java index 29c221991..63d881c92 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/beans/FuncInfo.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/beans/FuncInfo.java @@ -1,5 +1,7 @@ package au.com.royalpay.payment.manage.management.sysconfig.beans; +import au.com.royalpay.payment.tools.permission.enums.ManagerRole; +import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; /** @@ -8,6 +10,21 @@ import org.apache.commons.lang3.StringUtils; public class FuncInfo { private String name; private String remark; + private boolean admin; + private boolean operator; + private boolean bd; + private boolean finacial; + private boolean servant; + private boolean accountmanager; + private boolean director; + private boolean sitemanager; + private boolean developer; + private boolean bdleader; + private boolean riskmanager; + private boolean guest; + private boolean orgmanager; + private boolean salesmanager; + private boolean datacontent; public String getName() { return StringUtils.isEmpty(name) ? null : name; @@ -24,4 +41,179 @@ public class FuncInfo { public void setRemark(String remark) { this.remark = remark; } + + public void setSalesmanager(boolean salesmanager) { + this.salesmanager = salesmanager; + } + + public boolean isAdmin() { + return admin; + } + + public boolean isBd() { + return bd; + } + + public boolean isFinacial() { + return finacial; + } + + public boolean isAccountmanager() { + return accountmanager; + } + + public boolean isOperator() { + return operator; + } + + public boolean isDeveloper() { + return developer; + } + + public boolean isDirector() { + return director; + } + + public boolean isServant() { + return servant; + } + + public void setAccountmanager(boolean accountmanager) { + this.accountmanager = accountmanager; + } + + public boolean isBdleader() { + return bdleader; + } + + public boolean isSitemanager() { + return sitemanager; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public void setBd(boolean bd) { + this.bd = bd; + } + + public boolean isGuest() { + return guest; + } + + public void setDeveloper(boolean developer) { + this.developer = developer; + } + + public boolean isRiskmanager() { + return riskmanager; + } + + public void setDirector(boolean director) { + this.director = director; + } + + public void setBdleader(boolean bdleader) { + this.bdleader = bdleader; + } + + public void setFinacial(boolean finacial) { + this.finacial = finacial; + } + + public void setOperator(boolean operator) { + this.operator = operator; + } + + public void setServant(boolean servant) { + this.servant = servant; + } + + public void setGuest(boolean guest) { + this.guest = guest; + } + + public void setRiskmanager(boolean riskmanager) { + this.riskmanager = riskmanager; + } + + public void setSitemanager(boolean sitemanager) { + this.sitemanager = sitemanager; + } + + public void setDatacontent(boolean datacontent) { + this.datacontent = datacontent; + } + + public boolean isSalesmanager() { + return salesmanager; + } + + public boolean isOrgmanager() { + return orgmanager; + } + + public boolean isDatacontent() { + return datacontent; + } + + public void setOrgmanager(boolean orgmanager) { + this.orgmanager = orgmanager; + } + + + public JSONObject initObject(JSONObject mod) { + mod.put("name", getName()); + mod.put("remark", getRemark()); + int role = 0; + if (admin) { + role |= ManagerRole.ADMIN.getMask(); + } + if (operator) { + role |= ManagerRole.OPERATOR.getMask(); + } + if (sitemanager) { + role |= ManagerRole.SITE_MANAGER.getMask(); + } + if (bd) { + role |= ManagerRole.BD_USER.getMask(); + } + if (finacial) { + role |= ManagerRole.FINANCIAL_STAFF.getMask(); + } + if (servant) { + role |= ManagerRole.SERVANT.getMask(); + } + if (accountmanager) { + role |= ManagerRole.ACCOUNT_MANAGER.getMask(); + } + if (director) { + role |= ManagerRole.DIRECTOR.getMask(); + } + if (developer) { + role |= ManagerRole.DEVELOPER.getMask(); + } + if (bdleader){ + role |= ManagerRole.BD_LEADER.getMask(); + } + if (riskmanager){ + role |= ManagerRole.RISK_MANAGER.getMask(); + } + if (guest){ + role |= ManagerRole.GUEST.getMask(); + } + if (orgmanager){ + role |= ManagerRole.ORG_MANAGER.getMask(); + } + if (salesmanager) { + role |= ManagerRole.SALES_MANAGER.getMask(); + } + if (datacontent) { + role |= ManagerRole.DATA_CONTENT.getMask(); + } + mod.put("role", role); + return mod; + } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/PermissionManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/PermissionManagerImpl.java index 2b2710c5d..821f9f5e9 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/PermissionManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/PermissionManagerImpl.java @@ -68,6 +68,23 @@ public class PermissionManagerImpl implements PermissionManager { Map> moduleMap = new TreeMap<>(); List noModule = new ArrayList<>(); for (JSONObject func : funcs) { + int role = func.getIntValue("role"); + func.put("admin", ManagerRole.ADMIN.hasRole(role)); + func.put("operator", ManagerRole.OPERATOR.hasRole(role)); + func.put("bd", ManagerRole.BD_USER.hasRole(role)); + func.put("finacial", ManagerRole.FINANCIAL_STAFF.hasRole(role)); + func.put("servant", ManagerRole.SERVANT.hasRole(role)); +// func.put("accountmanager", ManagerRole.ACCOUNT_MANAGER.hasRole(role)); + func.put("director", ManagerRole.DIRECTOR.hasRole(role)); + func.put("sitemanager", ManagerRole.SITE_MANAGER.hasRole(role)); + func.put("developer", ManagerRole.DEVELOPER.hasRole(role)); + func.put("bdleader", ManagerRole.BD_LEADER.hasRole(role)); + func.put("riskmanager", ManagerRole.RISK_MANAGER.hasRole(role)); + func.put("guest", ManagerRole.GUEST.hasRole(role)); +// manager.put("orgmanager", ManagerRole.ORG_MANAGER.hasRole(role)); + func.put("salesmanager", ManagerRole.SALES_MANAGER.hasRole(role)); +// manager.put("datacontent", ManagerRole.DATA_CONTENT.hasRole(role)); + String module = func.getString("module"); if (module == null) { noModule.add(func); @@ -128,9 +145,7 @@ public class PermissionManagerImpl implements PermissionManager { public void updateFuncInfo(String funcId, FuncInfo funcInfo) { JSONObject update = new JSONObject(); update.put("func_id", funcId); - update.put("name", funcInfo.getName()); - update.put("remark", funcInfo.getRemark()); - permissionFunctionMapper.update(update); + permissionFunctionMapper.update(funcInfo.initObject(update)); } @Override diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java index a1b6d4cb9..4ade2bd6a 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java @@ -38,6 +38,8 @@ public interface ClientMapper { PageList listPartners(JSONObject params, PageBounds pagination); + PageList comListPartners(JSONObject params, PageBounds pagination); + List listClientsIdAndMoniker(); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java index 9589510d6..f19d10018 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java @@ -349,4 +349,6 @@ public interface ClientManager { * @param clientId */ boolean postponeClientRate(int clientId, String clientMoniker,String nextYearExipryDate); + + JSONObject comListPartnerSelection(JSONObject manager, PartnerQuery query); } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java index fd3cd717d..0520f541e 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java @@ -387,7 +387,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid client.put("contact_email", "******"); } } else { - client.put("rate_editable", ManagerRole.ADMIN.hasRole(role) || ManagerRole.OPERATOR.hasRole(role)); + client.put("rate_editable",ManagerRole.OPERATOR.hasRole(role)); } } List children = clientMapper.listChildClients(client.getIntValue("client_id")); @@ -4047,6 +4047,33 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } } + @Override + public JSONObject comListPartnerSelection(JSONObject manager, PartnerQuery query) { + JSONObject params = query.toJsonParam(); + String tempSubMchId = sysConfigManager.getSysConfig().getString("temp_sub_mch_id"); + String tempSubMchSource = sysConfigManager.getSysConfig().getString("temp_sub_mch_id_source"); + tempSubMchSource = tempSubMchSource == null ? "" : tempSubMchSource; + if (query.isTempMchId()) { + params.put("temp_mch_id", tempSubMchId); + params.put("temp_mch_id_source", tempSubMchSource); + } + PageList partners = clientMapper.comListPartners(params, + new PageBounds(query.getPage(), query.getLimit(), Order.formString("is_valid.desc,-approve_time.asc,create_time.desc"))); + int authDays = PlatformEnvironment.getEnv().authDays();// 快速自助开通申请有效期 + for (JSONObject partner : partners) { + String subMerchantId = partner.getString("sub_merchant_id"); + if (subMerchantId != null && tempSubMchId != null && tempSubMchId.contains(subMerchantId) + && !tempSubMchSource.contains(partner.getString("client_moniker"))) { + partner.put("temp_sub_merchant", true); + } + if (partner.getIntValue("approve_result") == 2) { + partner.put("expiry_time", DateUtils.addDays(partner.getDate("approve_time"), authDays)); + partner.put("pass_timeout", DateUtils.addDays(partner.getDate("approve_time"), authDays).compareTo(new Date()) < 0); + } + } + return PageListUtils.buildPageListResult(partners); + } + private TemplateMessage initClientMessage(JSONObject client, String newExpiryDate, String wechatOpenid, String templateId) { TemplateMessage notice = new TemplateMessage(wechatOpenid, templateId, null); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java index 76edb9f5c..52d4c1681 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java @@ -585,4 +585,10 @@ public class PartnerManageController { clientManager.subRpayMerchantApplication(clientMoniker, merchantInfo,manager); } + @RequestMapping(value = "/compliance", method = RequestMethod.GET) + @RequireManager(role = { ManagerRole.OPERATOR}) + public JSONObject lisPartnersByCompliance(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, PartnerQuery query) { + return clientManager.comListPartnerSelection(manager, query); + } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/beans/ManagerInfo.java b/src/main/java/au/com/royalpay/payment/manage/signin/beans/ManagerInfo.java index 752a8aedc..fafd02ee3 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/beans/ManagerInfo.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/beans/ManagerInfo.java @@ -38,6 +38,8 @@ public class ManagerInfo { private boolean riskmanager; private boolean guest; private boolean orgmanager; + private boolean salesmanager; + private boolean datacontent; @JSONField(name = "org_id") private Integer orgId; @@ -105,6 +107,12 @@ public class ManagerInfo { if (orgmanager){ role |= ManagerRole.ORG_MANAGER.getMask(); } + if (salesmanager) { + role |= ManagerRole.SALES_MANAGER.getMask(); + } + if (datacontent) { + role |= ManagerRole.DATA_CONTENT.getMask(); + } account.put("role", role); if (insert) { account.put("username", getUsername()); @@ -273,4 +281,19 @@ public class ManagerInfo { this.orgmanager = orgmanager; } + public boolean isDatacontent() { + return datacontent; + } + + public boolean isSalesmanager() { + return salesmanager; + } + + public void setDatacontent(boolean datacontent) { + this.datacontent = datacontent; + } + + public void setSalesmanager(boolean salesmanager) { + this.salesmanager = salesmanager; + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/beans/QueryManagerBean.java b/src/main/java/au/com/royalpay/payment/manage/signin/beans/QueryManagerBean.java index da4529722..c9132aca2 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/beans/QueryManagerBean.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/beans/QueryManagerBean.java @@ -41,9 +41,9 @@ public class QueryManagerBean { if(role.equals("10000")){ mask = ManagerRole.SERVANT.getMask(); } - if(role.equals("100000")){ - mask = ManagerRole.ACCOUNT_MANAGER.getMask(); - } +// if(role.equals("100000")){ +// mask = ManagerRole.ACCOUNT_MANAGER.getMask(); +// } if(role.equals("1000000")){ mask = ManagerRole.DIRECTOR.getMask(); } @@ -62,9 +62,15 @@ public class QueryManagerBean { if(role.equals("100000000000")){ mask = ManagerRole.GUEST.getMask(); } - if(role.equals("1000000000000")){ - mask = ManagerRole.ORG_MANAGER.getMask(); +// if(role.equals("1000000000000")){ +// mask = ManagerRole.ORG_MANAGER.getMask(); +// } + if(role.equals("10000000000000")){ + mask = ManagerRole.SALES_MANAGER.getMask(); } +// if(role.equals("100000000000000")){ +// mask = ManagerRole.DATA_CONTENT.getMask(); +// } if(mask != 0){ params.put("mask",mask); } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/ManagerAccountServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/ManagerAccountServiceImpl.java index 0d58548cc..d99faacd6 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/ManagerAccountServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/ManagerAccountServiceImpl.java @@ -52,14 +52,17 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { manager.put("bd", ManagerRole.BD_USER.hasRole(role)); manager.put("finacial", ManagerRole.FINANCIAL_STAFF.hasRole(role)); manager.put("servant", ManagerRole.SERVANT.hasRole(role)); - manager.put("accountmanager", ManagerRole.ACCOUNT_MANAGER.hasRole(role)); +// manager.put("accountmanager", ManagerRole.ACCOUNT_MANAGER.hasRole(role)); manager.put("director", ManagerRole.DIRECTOR.hasRole(role)); manager.put("sitemanager", ManagerRole.SITE_MANAGER.hasRole(role)); manager.put("developer", ManagerRole.DEVELOPER.hasRole(role)); manager.put("bdleader", ManagerRole.BD_LEADER.hasRole(role)); manager.put("riskmanager", ManagerRole.RISK_MANAGER.hasRole(role)); manager.put("guest", ManagerRole.GUEST.hasRole(role)); - manager.put("orgmanager", ManagerRole.ORG_MANAGER.hasRole(role)); +// manager.put("orgmanager", ManagerRole.ORG_MANAGER.hasRole(role)); + manager.put("salesmanager", ManagerRole.SALES_MANAGER.hasRole(role)); +// manager.put("datacontent", ManagerRole.DATA_CONTENT.hasRole(role)); + } return managers; } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml index 815348b9d..f6e605d94 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml @@ -101,6 +101,75 @@ and c.suburb like #{suburb_pattern} + + + and c.state=#{state} + + + and c.merchant_id=#{merchant_id} + + + and locate(c.sub_merchant_id,#{temp_mch_id})>0 and cc.skip_clearing=0 and + locate(c.client_moniker,#{temp_mch_id_source})<=0 + + + + + and ((c.source=1 or c.source=2) and c.approve_result=2 and (c.open_status is null or c.open_status=3)) + + + + + + + + and (c.client_moniker=#{search_text} or c.short_name like #{name_pattern} or c.company_name like + #{name_pattern} or c.business_name like #{name_pattern} or c.remark like + #{name_pattern} or c.contact_email=#{search_text}) + + + and c.client_moniker=#{search_text} + + + and c.short_name like #{name_pattern} + + + and c.company_name like #{name_pattern} + + + and c.business_name like #{name_pattern} + + + and c.contact_email = #{search_text} + + + and c.remark like #{name_pattern} + + + and c.org_id=#{org_id} + and c.org_id in + #{org_id} + + and c.referrer_id=#{referrer_id} + and c.is_valid=1 + + + + + + @@ -222,79 +276,316 @@ margin-bottom: 10%;"/>