From de7a193402e8923008e950c68512712630533347 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Wed, 3 Jan 2018 18:24:51 +0800 Subject: [PATCH 01/31] Jpush --- pom.xml | 15 ++ .../appclient/core/RetailAppService.java | 2 - .../core/impls/RetailAppServiceImp.java | 188 ++++++------------ .../core/impls/ClientManagerImpl.java | 12 +- .../manage/pushMessage/APNSMessageHelper.java | 46 +++++ .../pushMessage/JpushMessageHelper.java | 88 ++++++++ .../manage/pushMessage/bean/JpushMessage.java | 44 ++++ 7 files changed, 263 insertions(+), 132 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/pushMessage/APNSMessageHelper.java create mode 100644 src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java create mode 100644 src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/JpushMessage.java diff --git a/pom.xml b/pom.xml index 0973a0f03..689bc1b0e 100644 --- a/pom.xml +++ b/pom.xml @@ -132,6 +132,21 @@ com.alibaba druid + + + + cn.jpush.api + jpush-client + 3.3.3 + + + com.google.code.gson + gson + 2.2.4 + + + + diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/RetailAppService.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/RetailAppService.java index 108d09593..2029c8870 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/RetailAppService.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/RetailAppService.java @@ -32,8 +32,6 @@ public interface RetailAppService { void sign_out(JSONObject device); - void sendAppMessage(); - void sendOrderAppMessage(JSONObject order, int client_id); void sendRefundAppMessage(String refundAmount, JSONObject order); diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index f022a5aa3..219893af7 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -19,6 +19,7 @@ import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.manage.notice.beans.NoticeInfo; import au.com.royalpay.payment.manage.notice.core.NoticeManage; import au.com.royalpay.payment.manage.notice.core.NoticePartner; +import au.com.royalpay.payment.manage.pushMessage.APNSMessageHelper; import au.com.royalpay.payment.manage.signin.beans.ChangePwdBean; import au.com.royalpay.payment.manage.signin.core.SignInAccountService; import au.com.royalpay.payment.manage.signin.core.impls.SignInAccountServiceImpl; @@ -77,77 +78,55 @@ public class RetailAppServiceImp implements RetailAppService { private TransactionAnalysisMapper transactionAnalysisMapper; @Resource private TransactionMapper transactionMapper; - @Resource private ClientManager clientManager; - @Resource private NoticeManage noticeManage; - @Resource private NoticePartner noticePartner; - @Resource private CustomerAndOrdersStatisticsMapper customerAndOrdersStatisticsMapper; - @Resource private ClearingDetailMapper clearingDetailMapper; - @Resource private OrderMapper orderMapper; - @Resource private ClientAccountMapper clientAccountMapper; - @Resource private AppMessageLogMapper appMessageLogMapper; @Resource private SignInAccountService signInAccountService; - @Resource private CashbackService cashbackService; - @Resource private ClearingDetailAnalysisMapper clearingDetailAnalysisMapper; - @Resource private ClientSettleDelayConfMapper clientSettleDelayConfMapper; - @Resource private XPlanFundConfigServiceImpl xPlanFundConfigService; - @Resource private MerchantInfoProvider merchantInfoProvider; @Resource private RoyalPayCMSSupport royalPayCMSSupport; - @Resource private PaymentApi paymentApi; - @Resource private DeviceSupport deviceSupport; - @Resource private CustomerRelationAlipayMapper customerRelationAlipayMapper; @Resource private CustomerMapper customerMapper; - - @Value("classpath:apple_message_cert_dev.p12") - private org.springframework.core.io.Resource appleMessageFileDev; - @Value("classpath:apple_message_cert_product.p12") - private org.springframework.core.io.Resource appleMessageFileProduct; - @Value("${apple.message.apns.password}") - private String appleMessagePassword; + @Resource + private APNSMessageHelper apnsMessageHelper; @Resource private ClientDeviceTokenMapper clientDeviceTokenMapper; private ThreadPoolExecutor sendingAppleMsgPool = new ThreadPoolExecutor(10, 30, 5, TimeUnit.SECONDS, new LinkedBlockingQueue()); - @Resource private CouponValidateService couponVerificationService; - //若app未传client_ids,检测是否包含子商户,若包含查询全部 + // 若app未传client_ids,检测是否包含子商户,若包含查询全部 private void setAllClientIds(JSONObject params, int clientId) { if (params.containsKey("client_ids")) { return; @@ -175,10 +154,10 @@ public class RetailAppServiceImp implements RetailAppService { params.put("client_id", client_id); res.put("trade_amount", transactionAnalysisMapper.analysisTotalAmount(params)); res.put("trade_count", transactionAnalysisMapper.analysisTotalCount(params)); -// res.put("refund_amount", transactionAnalysisMapper.analysisRefundAmount(params)); + // res.put("refund_amount", transactionAnalysisMapper.analysisRefundAmount(params)); res.put("not_settled", transactionAnalysisMapper.analysisNotSettled(params)); res.put("old_customers", transactionAnalysisMapper.countOldCustomers(params)); - //微信小程序不查询汇率 + // 微信小程序不查询汇率 if (!StringUtils.equals(device.getString("client_type"), "wxapp")) { res.put("rate", paymentApi.channelApi("Wechat").queryExchangeRateDecimal(client_id)); } @@ -266,7 +245,6 @@ public class RetailAppServiceImp implements RetailAppService { } } - @Override public JSONObject getClientSettlementLog(JSONObject device, AppQueryBean appQueryBean) { String clientType = device.getString("client_type"); @@ -280,7 +258,8 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject params = appQueryBean.toParams(); setAllClientIds(params, client_id); params.put("client_id", client_id); - PageList logs = clearingDetailMapper.listClientSettlementLog(params, new PageBounds(appQueryBean.getPage(), appQueryBean.getLimit(), Order.formString("report_date.desc"))); + PageList logs = clearingDetailMapper.listClientSettlementLog(params, + new PageBounds(appQueryBean.getPage(), appQueryBean.getLimit(), Order.formString("report_date.desc"))); return PageListUtils.buildPageListResult(logs); } @@ -354,11 +333,13 @@ public class RetailAppServiceImp implements RetailAppService { params.put("dev_id", device.getString("dev_id")); } params.put("client_id", client_id); - PageList orders = orderMapper.listOrdersByClients(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); + PageList orders = orderMapper.listOrdersByClients(params, + new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); TimeZoneUtils.switchTimeZone(orders, query.getTimezone(), "create_time", "transaction_time", "confirm_time"); ArrayList date_contains = new ArrayList<>(); for (JSONObject order : orders) { -// Date tradeDate = order.getDate("confirm_time") == null ? (order.getDate("transaction_time") == null ? order.getDate("create_time") : order.getDate("transaction_time")) : order.getDate("confirm_time"); + // Date tradeDate = order.getDate("confirm_time") == null ? (order.getDate("transaction_time") == null ? + // order.getDate("create_time") : order.getDate("transaction_time")) : order.getDate("confirm_time"); Calendar calendar = (Calendar) order.get("create_time"); String trade_date = DateFormatUtils.format(calendar, "yyyy-MM-dd"); String trade_time = DateFormatUtils.format(calendar, "HH:mm:ss"); @@ -369,7 +350,7 @@ public class RetailAppServiceImp implements RetailAppService { TradeLogQuery date_query = new TradeLogQuery(); date_query.setDatefrom(re_date); date_query.setDateto(re_date); -// date_query.setStatus(OrderStatus.ALL); + // date_query.setStatus(OrderStatus.ALL); if (params.containsKey("client_ids")) { date_query.setClient_ids((String[]) params.get("client_ids")); } @@ -388,7 +369,7 @@ public class RetailAppServiceImp implements RetailAppService { query.setGateway_app("11"); String clientType = device.getString("client_type"); DeviceRegister register = deviceSupport.findRegister(clientType); - Assert.notNull(register,"Device is not registered"); + Assert.notNull(register, "Device is not registered"); int client_id = device.getIntValue("client_id"); JSONObject client = clientManager.getClientInfo(client_id); String timezone = client.getString("timezone"); @@ -455,31 +436,6 @@ public class RetailAppServiceImp implements RetailAppService { } - @Override - public void sendAppMessage() { - -// String p12Path = "D:/MbaikeDevCertificates.p12"; -// InputStream keyIns = appleMessageFile.getInputStream(); -// String password = "F1b5*ChJPp73"; - String pushToken = "719e4b7a7ed8b9000188440228437714d9dc67785f1791fae01234dae6a1570c"; - JSONObject order = new JSONObject(); - order.put("clearing_amount", 0.01); - order.put("client_id", 9); - order.put("client_moniker", "PINE"); - order.put("order_id", "9201704110348156694986"); - - try { - /**设置参数,发送数据**/ - InputStream keyIns = appleMessageFileProduct.getInputStream(); - ApnsService service = APNS.newService().withCert(keyIns, appleMessagePassword).withProductionDestination().build(); - String payload = APNS.newPayload().alertTitle("到账通知").alertBody("Hello,0.01AUD").badge(1).sound("default").customField("data", order).build(); - service.push(pushToken, payload); - System.out.println("推送信息已发送!"); - } catch (Exception e) { - logger.error("出错了:" + e.getMessage()); - } - } - @Override public void sendOrderAppMessage(final JSONObject order, int client_id) { logger.debug("sendOrderAppMessage-" + client_id + "-" + order.getString("order_id")); @@ -491,21 +447,23 @@ public class RetailAppServiceImp implements RetailAppService { return; } System.out.println("Device Token:" + token); - //todo 抽象发送信息接口,根据设备类型选择不同实现类 - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "payment", token, order.getString("order_id")); + // todo 抽象发送信息接口,根据设备类型选择不同实现类 + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "payment", token, + order.getString("order_id")); try { order.put("send_type", "payment"); JSONObject type = new JSONObject(); type.put("send_type", "payment"); type.put("id", order.getString("order_id")); - sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), - LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), token, order, type); + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), + LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), token, + order, type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); appMessageLogMapper.updateStatus(log.getString("send_id"), 1, e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } }; sendingAppleMsgPool.execute(task); @@ -536,14 +494,15 @@ public class RetailAppServiceImp implements RetailAppService { return; } System.out.println("Device Token:" + token); - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "refund", token, order.getString("order_id")); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "refund", token, + order.getString("order_id")); try { order.put("send_type", "refund"); JSONObject type = new JSONObject(); type.put("send_type", "refund"); type.put("id", order.getString("order_id")); - sendAppleMessage("Refund Message", - LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, token, order, type); + apnsMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, token, + order, type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -567,7 +526,8 @@ public class RetailAppServiceImp implements RetailAppService { if (token == null) { continue; } - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "notice", token, "notice_id:" + notice.getNotice_id()); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "notice", token, + "notice_id:" + notice.getNotice_id()); try { notice.setContent(null); JSONObject noticeObj = notice.toJson(); @@ -575,7 +535,8 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "notice"); type.put("id", notice.getNotice_id()); - sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, noticeObj, type); + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, noticeObj, + type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -600,19 +561,22 @@ public class RetailAppServiceImp implements RetailAppService { if (token == null) { return; } - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "cashback", token, order.getString("order_id") + "返现" + cashbackAmount); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "cashback", token, + order.getString("order_id") + "返现" + cashbackAmount); try { JSONObject type = new JSONObject(); type.put("send_type", "cashback"); type.put("id", order.getString("order_id")); - sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), - LocaleSupport.localeMessage("app.message.body.cashback") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + cashbackAmount, token, order, type); + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), + LocaleSupport.localeMessage("app.message.body.cashback") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + + cashbackAmount, + token, order, type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); appMessageLogMapper.updateStatus(log.getString("send_id"), 1, e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } } }); @@ -625,7 +589,8 @@ public class RetailAppServiceImp implements RetailAppService { String clearing_amount = log_clearing_detail.getBigDecimal("clearing_amount").setScale(2, BigDecimal.ROUND_HALF_DOWN).toString(); String settle_date_from = DateFormatUtils.format(log_clearing_detail.getDate("settle_date_from"), "MM/dd/yyyy"); String settle_date_to = DateFormatUtils.format(log_clearing_detail.getDate("settle_date_to"), "MM/dd/yyyy"); - logger.debug("sendCleanMessage-" + log_clearing_detail.getString("client_moniker") + "- " + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + "(" + settle_date_from + "-" + settle_date_to + ")"); + logger.debug("sendCleanMessage-" + log_clearing_detail.getString("client_moniker") + "- " + PlatformEnvironment.getEnv().getForeignCurrency() + " " + + clearing_amount + "(" + settle_date_from + "-" + settle_date_to + ")"); List tokens = clientDeviceTokenMapper.listTokensByClient_id(client_id); for (JSONObject devToken : tokens) { String token = devToken.getString("token"); @@ -633,24 +598,25 @@ public class RetailAppServiceImp implements RetailAppService { continue; } String log_clearing_detail_id = log_clearing_detail.getString("clear_detail_id"); - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "clean", token, "本次清算" + log_clearing_detail_id + ",$" + clearing_amount + "(" + settle_date_from + "-" + settle_date_to + ")"); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "clean", token, + "本次清算" + log_clearing_detail_id + ",$" + clearing_amount + "(" + settle_date_from + "-" + settle_date_to + ")"); try { JSONObject type = new JSONObject(); type.put("send_type", "clean"); type.put("id", log_clearing_detail_id); - sendAppleMessage(LocaleSupport.localeMessage("app.message.title.clean"), - LocaleSupport.localeMessage("app.message.body.clean") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + " (" + settle_date_from + "-" + settle_date_to + ")", token, log_clearing_detail, type); + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.clean"), LocaleSupport.localeMessage("app.message.body.clean") + + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + " (" + settle_date_from + "-" + settle_date_to + ")", + token, log_clearing_detail, type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); appMessageLogMapper.updateStatus(log.getString("send_id"), 1, e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } } } - @Override public void sendTransactionDailyMessage(JSONObject tradeInfo, int client_id) { String trade_date = tradeInfo.getString("trade_date"); @@ -663,50 +629,26 @@ public class RetailAppServiceImp implements RetailAppService { if (token == null) { continue; } - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "daily_notice", token, "Trade Date:" + trade_date); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "daily_notice", token, + "Trade Date:" + trade_date); try { JSONObject type = new JSONObject(); type.put("send_type", "daily_notice"); type.put("id", trade_date); - sendAppleMessageDetail(LocaleSupport.localeMessage("app.message.title.daily_notice"), - trade_date + ": 总交易额 " + PlatformEnvironment.getEnv().getForeignCurrency() + total_amount + ", 订单数:" + total_orders + ", 付款人数:" + customers, token, tradeInfo, type); + apnsMessageHelper.sendAppleMessageDetail( + LocaleSupport.localeMessage("app.message.title.daily_notice"), trade_date + ": 总交易额 " + + PlatformEnvironment.getEnv().getForeignCurrency() + total_amount + ", 订单数:" + total_orders + ", 付款人数:" + customers, + token, tradeInfo, type); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); appMessageLogMapper.updateStatus(log.getString("send_id"), 1, e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } } } - private void sendAppleMessage(String title, String body, String token, JSONObject data, JSONObject type) throws IOException { - /**设置参数,发送数据**/ - InputStream keyIns = appleMessageFileProduct.getInputStream(); - ApnsService service = APNS.newService().withCert(keyIns, appleMessagePassword).withProductionDestination().build(); - String payload = APNS.newPayload().alertTitle(title).alertBody(body).badge(1).sound("default").customField("data", data).customField("type", type).build(); - service.push(token, payload); - System.out.println("推送信息已发送!"); - } - - /** - * 可显示详情 - * - * @param title - * @param body - * @param token - * @param data - * @param type - * @throws IOException - */ - private void sendAppleMessageDetail(String title, String body, String token, JSONObject data, JSONObject type) throws IOException { - /**设置参数,发送数据**/ - InputStream keyIns = appleMessageFileProduct.getInputStream(); - ApnsService service = APNS.newService().withCert(keyIns, appleMessagePassword).withProductionDestination().build(); - String payload = APNS.newPayload().alertTitle(title).alertBody(body).category("myNotificationCategory").badge(1).sound("default").customField("data", data).customField("type", type).build(); - service.push(token, payload); - System.out.println("推送信息已发送!"); - } @Override public void updateReadStatus(JSONObject device, String noticeId) { @@ -747,7 +689,7 @@ public class RetailAppServiceImp implements RetailAppService { Document doc = Jsoup.parse(res.getString("content")); String father = "
"; String html = doc.body().children().wrap(father).html(); -// logger.debug("wrapped html---->"+html); + // logger.debug("wrapped html---->"+html); res.put("content", doc.html()); return res; } @@ -756,7 +698,7 @@ public class RetailAppServiceImp implements RetailAppService { public void changeAccountPassword(JSONObject device, ChangePwdBean change, String account_id) { String clientType = device.getString("client_type"); deviceSupport.findRegister(clientType); - //JSONObject client = signInAccountService.getClient(account_id); + // JSONObject client = signInAccountService.getClient(account_id); if (!account_id.equals(device.getString("account_id"))) { throw new ForbiddenException("You have no permission"); } @@ -779,7 +721,7 @@ public class RetailAppServiceImp implements RetailAppService { Date now = new Date(); JSONObject res = merchantInfoProvider.clientCurrentRate(clientId, now, "Wechat"); JSONObject client = clientManager.getClientInfo(clientId); - Assert.notNull(client,"Client is null"); + Assert.notNull(client, "Client is null"); JSONObject[] channels = new JSONObject[3]; @@ -804,7 +746,7 @@ public class RetailAppServiceImp implements RetailAppService { Date now = new Date(); JSONObject res = merchantInfoProvider.clientCurrentRate(clientId, now, "Wechat"); JSONObject client = clientManager.getClientInfo(clientId); - Assert.notNull(client,"Client is null"); + Assert.notNull(client, "Client is null"); ArrayList channels = new ArrayList<>(); if (client.getBigDecimal("customer_surcharge_rate") != null) { @@ -889,7 +831,7 @@ public class RetailAppServiceImp implements RetailAppService { } res.put("data", new_acts); } - //手续费返还活动 + // 手续费返还活动 List acts = (List) res.get("data"); for (JSONObject act : acts) { if (StringUtils.isNotBlank(act.getString("page_keywords")) && act.getString("page_keywords").equalsIgnoreCase("native")) { @@ -923,7 +865,7 @@ public class RetailAppServiceImp implements RetailAppService { String newAppVersion = PlatformEnvironment.getEnv().getNewVersion(); Boolean isUpdate = PlatformEnvironment.getEnv().isAppUpdate(); String updateContent = PlatformEnvironment.getEnv().getAppUpdateContent(); - int update_type = 0;//0:不更新 1:更新 2:强制更新 + int update_type = 0;// 0:不更新 1:更新 2:强制更新 if (newAppVersion.compareToIgnoreCase(version) > 0) { update_type = 1; if (isUpdate) { @@ -943,7 +885,6 @@ public class RetailAppServiceImp implements RetailAppService { return clientManager.listSubClients(device.getIntValue("client_id")); } - private JSONObject saveAppMessageLog(String dev_id, int client_id, String messageType, String dev_token, String remark) { JSONObject log = new JSONObject(); log.put("dev_id", dev_id); @@ -1078,7 +1019,7 @@ public class RetailAppServiceImp implements RetailAppService { if (clientRate.getIntValue("clean_days") == 1) { JSONObject config = clientSettleDelayConfMapper.findClientConf(device.getIntValue("client_id")); if (config == null) { -// res.put("show", true); + // res.put("show", true); res.put("interest_rate", xPlanFundConfigService.configuration().getInterestRate().setScale(2, BigDecimal.ROUND_DOWN)); } @@ -1086,7 +1027,6 @@ public class RetailAppServiceImp implements RetailAppService { return res; } - @Override public void sendMassageByCode(final JSONObject params) { try { @@ -1095,7 +1035,7 @@ public class RetailAppServiceImp implements RetailAppService { if (params.getString("type").equals("Merchant")) { for (String partner_code : codes) { JSONObject client = clientManager.getClientInfoByMoniker(partner_code); - Assert.notNull(client,"Client is null"); + Assert.notNull(client, "Client is null"); List tokens = clientDeviceTokenMapper.listTokensByClient_id(client.getInteger("client_id")); if (null != tokens && tokens.size() > 0) { for (final JSONObject devToken : tokens) { @@ -1103,7 +1043,8 @@ public class RetailAppServiceImp implements RetailAppService { sendingAppleMsgPool.execute(new Runnable() { @Override public void run() { - JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "dev", token, "Param:partner_code,自定义推送消息"); + JSONObject log = saveAppMessageLog(devToken.getString("dev_id"), devToken.getIntValue("client_id"), "dev", token, + "Param:partner_code,自定义推送消息"); sending(token, params, log); } }); @@ -1129,7 +1070,7 @@ public class RetailAppServiceImp implements RetailAppService { throw new ServerErrorException(s.getMessage()); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } } @@ -1137,17 +1078,16 @@ public class RetailAppServiceImp implements RetailAppService { public void sending(String devToken, JSONObject params, JSONObject log) { try { - sendAppleMessage(params.getString("title"), params.getString("content"), devToken, new JSONObject(), new JSONObject()); + apnsMessageHelper.sendAppleMessage(params.getString("title"), params.getString("content"), devToken, new JSONObject(), new JSONObject()); log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); appMessageLogMapper.updateStatus(log.getString("send_id"), 1, e.getMessage()); - throw new ServerErrorException("Send App Message Failed", e); + throw new ServerErrorException("Send App JpushMessage Failed", e); } } - @Override public JSONObject getCoupons(JSONObject device, int page, int limit) { String clientType = device.getString("client_type"); 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 62364635e..2b3dc8825 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 @@ -2774,7 +2774,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid MpWechatApi paymentApi = mpWechatApiProvider.getNewPaymentApi(); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,绿色通道开通完成" + e.getMessage()); + logger.error("Wechat JpushMessage Error,绿色通道开通完成" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,绿色通道开通完成,openid=" + wxopenid)); } } @@ -2793,7 +2793,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "制作合同申请", "BD申请制作" + short_name + "的合同"); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,open_status=1" + e.getMessage()); + logger.error("Wechat JpushMessage Error,open_status=1" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=1,openid=" + wxopenid)); } } @@ -2811,7 +2811,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid "Compliance", "合规材料", "上传完整合规材料,商户:" + short_name); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,open_status=3" + e.getMessage()); + logger.error("Wechat JpushMessage Error,open_status=3" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=3,openid=" + wxopenid)); } @@ -2831,7 +2831,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "审核材料", "BD已提交合规材料,等待审核"); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,open_status=1" + e.getMessage()); + logger.error("Wechat JpushMessage Error,open_status=1" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=1,openid=" + wxopenid)); } } @@ -2848,7 +2848,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid MpWechatApi paymentApi = mpWechatApiProvider.getNewPaymentApi(); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,open_status=5" + e.getMessage()); + logger.error("Wechat JpushMessage Error,open_status=5" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=5,openid=" + wxopenid)); } } @@ -2867,7 +2867,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "绿色通道申请", "BD已提交绿色通道申请,商户:" + short_name); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat Message Error,open_status=10"); + logger.error("Wechat JpushMessage Error,open_status=10"); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=10,openid=" + wxopenid)); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/APNSMessageHelper.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/APNSMessageHelper.java new file mode 100644 index 000000000..3dffffcd3 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/APNSMessageHelper.java @@ -0,0 +1,46 @@ +package au.com.royalpay.payment.manage.pushMessage; + +import com.alibaba.fastjson.JSONObject; +import com.notnoop.apns.APNS; +import com.notnoop.apns.ApnsService; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Created by wangning on 2018/1/3. + */ +@Service +public class APNSMessageHelper { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Value("classpath:apple_message_cert_dev.p12") + private org.springframework.core.io.Resource appleMessageFileDev; + @Value("classpath:apple_message_cert_product.p12") + private org.springframework.core.io.Resource appleMessageFileProduct; + @Value("${apple.message.apns.password}") + private String appleMessagePassword; + + public void sendAppleMessage(String title, String body, String token, JSONObject data, JSONObject type) throws IOException { + /**设置参数,发送数据**/ + InputStream keyIns = appleMessageFileProduct.getInputStream(); + ApnsService service = APNS.newService().withCert(keyIns, appleMessagePassword).withProductionDestination().build(); + String payload = APNS.newPayload().alertTitle(title).alertBody(body).badge(1).sound("default").customField("data", data).customField("type", type).build(); + service.push(token, payload); + logger.debug("推送信息已发送!"); + } + + public void sendAppleMessageDetail(String title, String body, String token, JSONObject data, JSONObject type) throws IOException { + /**设置参数,发送数据**/ + InputStream keyIns = appleMessageFileProduct.getInputStream(); + ApnsService service = APNS.newService().withCert(keyIns, appleMessagePassword).withProductionDestination().build(); + String payload = APNS.newPayload().alertTitle(title).alertBody(body).category("myNotificationCategory").badge(1).sound("default").customField("data", data).customField("type", type).build(); + service.push(token, payload); + logger.debug("推送信息已发送!"); + } +} diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java new file mode 100644 index 000000000..d27d4e998 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java @@ -0,0 +1,88 @@ +package au.com.royalpay.payment.manage.pushMessage; + +import au.com.royalpay.payment.manage.pushMessage.bean.JpushMessage; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +import cn.jpush.api.JPushClient; +import cn.jpush.api.push.model.Options; +import cn.jpush.api.push.model.Platform; +import cn.jpush.api.push.model.PushPayload; +import cn.jpush.api.push.model.audience.Audience; +import cn.jpush.api.push.model.notification.AndroidNotification; +import cn.jpush.api.push.model.notification.IosNotification; +import cn.jpush.api.push.model.notification.Notification; + +/** + * Created by wangning on 2018/1/3. + */ +@Service +public class JpushMessageHelper { + Logger logger = LoggerFactory.getLogger(getClass()); + + // 推送文本最大长度 + private final Integer NOTIFICATION_MAX_LENGTH = 54; + private static JPushClient client=null; + + public static JPushClient getPush() { + if (client == null) { + client = new JPushClient("c235e93f6b91abd72ca5d74e", "c235e93f6b91abd72ca5d74e"); + } + return client; + } + + public PushPayload makeSinglePayload(Set clientIds, JpushMessage pushMessage) { + Notification notify = getNotify(pushMessage); + return PushPayload.newBuilder() + .setPlatform(Platform.android_ios()) + .setAudience(Audience.registrationId(clientIds)) + .setNotification(notify) + // 设置离线时长 + .setOptions( + Options.newBuilder().setTimeToLive(600).build()).build(); + } + + private Notification getNotify(JpushMessage pushMessage) { + String alert = getText(pushMessage); + return Notification + .newBuilder() + .addPlatformNotification(IosNotification.newBuilder().setAlert(alert).setSound("default").addExtras(getExtra(pushMessage)).build()) + .addPlatformNotification(AndroidNotification.newBuilder().setTitle(pushMessage.getTitle()).setAlert(alert).addExtras(getExtra(pushMessage)).build()).build(); + } + + private String getText(JpushMessage pushMessage) { + String text = pushMessage.getText(); + int length = text.length(); + int trueLength = 0; + String cutString = ""; + for (int i = 0; i < length; i++) { + char c = text.charAt(i); + + if (c < 0 || c > 128) { + // 汉字 3个字符 + trueLength += 3; + } else { + // 英文等 1个字符 + trueLength++; + } + + cutString += c; + if (trueLength >= NOTIFICATION_MAX_LENGTH) { + cutString += "..."; + break; + } + } + return cutString; + } + + + private Map getExtra(JpushMessage message){ + Map map = message.getParams(); + return map; + } +} diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/JpushMessage.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/JpushMessage.java new file mode 100644 index 000000000..b74e8a993 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/JpushMessage.java @@ -0,0 +1,44 @@ +package au.com.royalpay.payment.manage.pushMessage.bean; + +import com.alibaba.fastjson.JSONObject; + +public class JpushMessage implements java.io.Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 消息标题 + */ + private String title; + + /** + * 消息内容 + */ + private String text; + + private JSONObject params; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public JSONObject getParams() { + return params; + } + + public void setParams(JSONObject params) { + this.params = params; + } +} From 633a128c81a259d6e4a7fff7e85b2543d6d2e18e Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Wed, 3 Jan 2018 18:58:48 +0800 Subject: [PATCH 02/31] fix~ --- .../manage/mappers/customers/CustomerMembershipMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/customers/CustomerMembershipMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/customers/CustomerMembershipMapper.xml index 28127795d..387f73791 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/customers/CustomerMembershipMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/customers/CustomerMembershipMapper.xml @@ -52,8 +52,8 @@ \ No newline at end of file From b7abc5b78fc49a677bdf8bb7785a06525775bfab Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Thu, 4 Jan 2018 15:03:51 +0800 Subject: [PATCH 03/31] =?UTF-8?q?=E5=95=86=E6=88=B7=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=87=8C=E5=A2=9E=E5=8A=A0Local=20Merchant=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/db/modify.sql | 5 ++++- .../web/PartnerManageController.java | 5 +++++ .../static/payment/partner/partner-manage.js | 20 ++++++++++++++++++- .../partner/templates/partner_detail.html | 7 +++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/db/modify.sql b/src/db/modify.sql index 246464dcc..3d0650c51 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -106,7 +106,7 @@ ALTER TABLE `sys_accounts` MODIFY COLUMN `creator` varchar(50) NOT NULL COMMENT '开户者'; ALTER TABLE `sys_clients_audit_process` - MODIFY COLUMN `operator_id` varchar(50) NOT NULL ; + MODIFY COLUMN `operator_id` tinyint(1) NOT NULL ; ALTER TABLE `pmt_refunds` MODIFY COLUMN `operator_id` varchar(50) DEFAULT NULL COMMENT '退款操作者账号'; @@ -117,5 +117,8 @@ ALTER TABLE `sys_clients_apply` ALTER TABLE `cashback_draw_deposits` MODIFY COLUMN `operator_id` varchar(50) NOT NULL ; + ALTER TABLE `sys_clients` + ADD COLUMN `local_merchant` tinyint(1) DEFAULT 0; + 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 35d9091c2..f9d090a2c 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 @@ -477,4 +477,9 @@ public class PartnerManageController { public void wechatCcompliancePermission(@PathVariable String clientMoniker, @RequestBody JSONObject pass, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { clientManager.switchPermission(manager, clientMoniker, "wechat_compliance", pass.getBooleanValue("allow")); } + + @ManagerMapping(value = "/{clientMoniker}/local_merchant_permission",method = RequestMethod.PUT,role = {ManagerRole.OPERATOR,ManagerRole.ADMIN}) + public void localMerchantPermission(@PathVariable String clientMoniker, @RequestBody JSONObject pass, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + clientManager.switchPermission(manager, clientMoniker, "local_merchant", pass.getBooleanValue("allow")); + } } diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 9324a9fd7..2d8a28884 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -378,7 +378,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter } }]); app.controller('partnerDetailCtrl', ['$scope', '$http', '$state', '$uibModal', '$rootScope', 'Upload', 'commonDialog', 'partner', function ($scope, $http, $state, $uibModal, $rootScope, Upload, commonDialog, partner) { - $scope.init = {wechatcompliance: false}; + $scope.init = {wechat_compliance: false,local_merchant:false}; $scope.partner = partner.data; $scope.showDBUsers = function () { $http.get('/sys/partners/' + $scope.partner.client_moniker + '/bd_user').then(function (resp) { @@ -730,6 +730,24 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter }) }) }; + $scope.changeLocalMerchant = function () { + if (!$scope.partner) { + return; + } + if (!$scope.init.local_merchant) { + $scope.init.local_merchant = true; + return; + } + $http.put('/sys/partners/' + $scope.partner.client_moniker + '/local_merchant_permission', {allow: $scope.partner.local_merchant}).then(function () { + + }, function (resp) { + commonDialog.alert({ + title: 'failed to change local_merchant permission status', + content: resp.data.message, + type: 'error' + }) + }) + }; }]); app.controller('partnerEditCtrl', ['$scope', '$http', '$state', 'Upload', 'commonDialog', 'timezone', 'partner', function ($scope, $http, $state, Upload, commonDialog, timezone, partner) { diff --git a/src/main/ui/static/payment/partner/templates/partner_detail.html b/src/main/ui/static/payment/partner/templates/partner_detail.html index 05bd827ee..bf258e9aa 100644 --- a/src/main/ui/static/payment/partner/templates/partner_detail.html +++ b/src/main/ui/static/payment/partner/templates/partner_detail.html @@ -357,6 +357,13 @@

+
+ +
+ +
+
From e4c8f7de62a4d9bc6b5105840e679565b0f5a3a2 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 13:37:42 +0800 Subject: [PATCH 04/31] update --- .../manage/pushMessage/JpushMessageHelper.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java index d27d4e998..d31cb2869 100644 --- a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java @@ -15,7 +15,6 @@ import cn.jpush.api.push.model.Platform; import cn.jpush.api.push.model.PushPayload; import cn.jpush.api.push.model.audience.Audience; import cn.jpush.api.push.model.notification.AndroidNotification; -import cn.jpush.api.push.model.notification.IosNotification; import cn.jpush.api.push.model.notification.Notification; /** @@ -36,22 +35,20 @@ public class JpushMessageHelper { return client; } - public PushPayload makeSinglePayload(Set clientIds, JpushMessage pushMessage) { + public PushPayload generateSinglePayload(Set alias, JpushMessage pushMessage) { Notification notify = getNotify(pushMessage); return PushPayload.newBuilder() - .setPlatform(Platform.android_ios()) - .setAudience(Audience.registrationId(clientIds)) + .setPlatform(Platform.android()) + .setAudience(Audience.alias(alias)) .setNotification(notify) // 设置离线时长 - .setOptions( - Options.newBuilder().setTimeToLive(600).build()).build(); + .setOptions(Options.newBuilder().setTimeToLive(60*60*4).build()).build(); } private Notification getNotify(JpushMessage pushMessage) { String alert = getText(pushMessage); return Notification .newBuilder() - .addPlatformNotification(IosNotification.newBuilder().setAlert(alert).setSound("default").addExtras(getExtra(pushMessage)).build()) .addPlatformNotification(AndroidNotification.newBuilder().setTitle(pushMessage.getTitle()).setAlert(alert).addExtras(getExtra(pushMessage)).build()).build(); } From 0327de0101ec1fa743a62e62950c3d337a744746 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 15:51:49 +0800 Subject: [PATCH 05/31] tmp --- .../core/impls/RetailAppServiceImp.java | 133 ++++++++++++------ .../pushMessage/JpushMessageHelper.java | 44 +++--- .../system/ClientDeviceTokenMapper.xml | 25 +++- 3 files changed, 144 insertions(+), 58 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index 219893af7..785c3f000 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -1,5 +1,39 @@ package au.com.royalpay.payment.manage.appclient.core.impls; +import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.TimeZone; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.annotation.Resource; + +import org.apache.commons.lang3.RandomUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.slf4j.LoggerFactory; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.github.miemiedev.mybatis.paginator.domain.Order; +import com.github.miemiedev.mybatis.paginator.domain.PageBounds; +import com.github.miemiedev.mybatis.paginator.domain.PageList; + import au.com.royalpay.payment.core.PaymentApi; import au.com.royalpay.payment.manage.analysis.mappers.CustomerAndOrdersStatisticsMapper; import au.com.royalpay.payment.manage.analysis.mappers.TransactionAnalysisMapper; @@ -14,12 +48,18 @@ import au.com.royalpay.payment.manage.mappers.log.ClearingDetailAnalysisMapper; import au.com.royalpay.payment.manage.mappers.log.ClearingDetailMapper; import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper; -import au.com.royalpay.payment.manage.mappers.system.*; +import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; +import au.com.royalpay.payment.manage.mappers.system.ClientDeviceTokenMapper; +import au.com.royalpay.payment.manage.mappers.system.ClientSettleDelayConfMapper; +import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; +import au.com.royalpay.payment.manage.mappers.system.CustomerRelationAlipayMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.manage.notice.beans.NoticeInfo; import au.com.royalpay.payment.manage.notice.core.NoticeManage; import au.com.royalpay.payment.manage.notice.core.NoticePartner; import au.com.royalpay.payment.manage.pushMessage.APNSMessageHelper; +import au.com.royalpay.payment.manage.pushMessage.JpushMessageHelper; +import au.com.royalpay.payment.manage.pushMessage.bean.JpushMessage; import au.com.royalpay.payment.manage.signin.beans.ChangePwdBean; import au.com.royalpay.payment.manage.signin.core.SignInAccountService; import au.com.royalpay.payment.manage.signin.core.impls.SignInAccountServiceImpl; @@ -36,37 +76,9 @@ import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider; import au.com.royalpay.payment.tools.permission.enums.PartnerRole; import au.com.royalpay.payment.tools.utils.PageListUtils; import au.com.royalpay.payment.tools.utils.TimeZoneUtils; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.github.miemiedev.mybatis.paginator.domain.Order; -import com.github.miemiedev.mybatis.paginator.domain.PageBounds; -import com.github.miemiedev.mybatis.paginator.domain.PageList; -import com.notnoop.apns.APNS; -import com.notnoop.apns.ApnsService; -import org.apache.commons.lang3.RandomUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateFormatUtils; -import org.apache.commons.lang3.time.DateUtils; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; -import javax.annotation.Resource; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigDecimal; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import cn.jpush.api.JPushClient; +import cn.jpush.api.push.model.PushPayload; /** * Created by yishuqian on 28/03/2017. @@ -120,6 +132,8 @@ public class RetailAppServiceImp implements RetailAppService { private APNSMessageHelper apnsMessageHelper; @Resource private ClientDeviceTokenMapper clientDeviceTokenMapper; + @Resource + private JpushMessageHelper jpushMessageHelper; private ThreadPoolExecutor sendingAppleMsgPool = new ThreadPoolExecutor(10, 30, 5, TimeUnit.SECONDS, new LinkedBlockingQueue()); @@ -455,10 +469,24 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "payment"); type.put("id", order.getString("order_id")); - apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), - LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), token, - order, type); - log.put("status", 2); + if("iphone".equals(devToken.getString("client_type"))) { + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), + LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), token, + order, type); + } + if("android".equals(devToken.getString("client_type"))) { + JPushClient jPushClient= JpushMessageHelper.getPush(); + JpushMessage jpushMessage = new JpushMessage(); + jpushMessage.setTitle(LocaleSupport.localeMessage("app.message.title.payment")); + jpushMessage.setText(LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount")); + JSONObject param = new JSONObject(); + param.put("data",order); + param.put("type",type); + jpushMessage.setParams(param); + PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); + jPushClient.sendPush(pushPayload); + } + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); @@ -501,9 +529,14 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "refund"); type.put("id", order.getString("order_id")); - apnsMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, token, - order, type); - log.put("status", 2); + if("iphone".equals(devToken.getString("client_type"))) { + apnsMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, token, + order, type); + } + if("android".equals(devToken.getString("client_type"))) { + sendAppleMessage + } + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); @@ -535,8 +568,23 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "notice"); type.put("id", notice.getNotice_id()); - apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, noticeObj, - type); + if("iphone".equals(devToken.getString("client_type"))){ + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, noticeObj, + type); + } + if("android".equals(devToken.getString("client_type"))){ + JPushClient jPushClient= JpushMessageHelper.getPush(); + JpushMessage jpushMessage = new JpushMessage(); + jpushMessage.setTitle(notice.getTitle()); + jpushMessage.setText(LocaleSupport.localeMessage("app.message.title.notice")); + JSONObject param = new JSONObject(); + param.put("data",noticeObj); + param.put("type",type); + jpushMessage.setParams(param); + PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); + jPushClient.sendPush(pushPayload); + } + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -1147,4 +1195,9 @@ public class RetailAppServiceImp implements RetailAppService { String regex = "[A-Za-z0-9]{8}"; return str.matches(regex); } + + private void sendJpush(int client_id,JpushMessage message){ + + + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java index d31cb2869..d30322181 100644 --- a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java @@ -2,13 +2,17 @@ package au.com.royalpay.payment.manage.pushMessage; import au.com.royalpay.payment.manage.pushMessage.bean.JpushMessage; +import com.alibaba.fastjson.JSONObject; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import java.io.IOException; import java.util.Map; -import java.util.Set; +import cn.jiguang.common.resp.APIConnectionException; +import cn.jiguang.common.resp.APIRequestException; import cn.jpush.api.JPushClient; import cn.jpush.api.push.model.Options; import cn.jpush.api.push.model.Platform; @@ -25,8 +29,8 @@ public class JpushMessageHelper { Logger logger = LoggerFactory.getLogger(getClass()); // 推送文本最大长度 - private final Integer NOTIFICATION_MAX_LENGTH = 54; - private static JPushClient client=null; + private static final Integer NOTIFICATION_MAX_LENGTH = 54; + private static JPushClient client = null; public static JPushClient getPush() { if (client == null) { @@ -35,24 +39,33 @@ public class JpushMessageHelper { return client; } - public PushPayload generateSinglePayload(Set alias, JpushMessage pushMessage) { + public void sendAppleMessage(String title, String body, String token, JSONObject data, JSONObject type) throws IOException, APIConnectionException, APIRequestException { + JPushClient jPushClient= JpushMessageHelper.getPush(); + JpushMessage jpushMessage = new JpushMessage(); + jpushMessage.setTitle(title); + jpushMessage.setText(body); + JSONObject param = new JSONObject(); + param.put("data",data); + param.put("type",type); + jpushMessage.setParams(param); + PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); + jPushClient.sendPush(pushPayload); + } + + public static PushPayload generateSinglePayload(String alias, JpushMessage pushMessage) { Notification notify = getNotify(pushMessage); - return PushPayload.newBuilder() - .setPlatform(Platform.android()) - .setAudience(Audience.alias(alias)) - .setNotification(notify) + return PushPayload.newBuilder().setPlatform(Platform.android()).setAudience(Audience.alias(alias)).setNotification(notify) // 设置离线时长 - .setOptions(Options.newBuilder().setTimeToLive(60*60*4).build()).build(); + .setOptions(Options.newBuilder().setTimeToLive(60 * 60 * 4).build()).build(); } - private Notification getNotify(JpushMessage pushMessage) { + private static Notification getNotify(JpushMessage pushMessage) { String alert = getText(pushMessage); - return Notification - .newBuilder() - .addPlatformNotification(AndroidNotification.newBuilder().setTitle(pushMessage.getTitle()).setAlert(alert).addExtras(getExtra(pushMessage)).build()).build(); + return Notification.newBuilder().addPlatformNotification( + AndroidNotification.newBuilder().setTitle(pushMessage.getTitle()).setAlert(alert).addExtras(getExtra(pushMessage)).build()).build(); } - private String getText(JpushMessage pushMessage) { + private static String getText(JpushMessage pushMessage) { String text = pushMessage.getText(); int length = text.length(); int trueLength = 0; @@ -77,8 +90,7 @@ public class JpushMessageHelper { return cutString; } - - private Map getExtra(JpushMessage message){ + private static Map getExtra(JpushMessage message) { Map map = message.getParams(); return map; } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientDeviceTokenMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientDeviceTokenMapper.xml index 3551b3c64..66996e519 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientDeviceTokenMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientDeviceTokenMapper.xml @@ -1,10 +1,31 @@ - + + From 835246c24ae586ddcbeba00eb187a31be1e49c5b Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 16:20:32 +0800 Subject: [PATCH 06/31] tmp --- .../core/impls/RetailAppServiceImp.java | 3 ++- .../manage/pushMessage/JpushMessageHelper.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index 785c3f000..93d7933f1 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -534,7 +534,8 @@ public class RetailAppServiceImp implements RetailAppService { order, type); } if("android".equals(devToken.getString("client_type"))) { - sendAppleMessage + jpushMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount,token, + order, type); } log.put("status", 2); appMessageLogMapper.update(log); diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java index d30322181..337233c8e 100644 --- a/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/JpushMessageHelper.java @@ -29,10 +29,10 @@ public class JpushMessageHelper { Logger logger = LoggerFactory.getLogger(getClass()); // 推送文本最大长度 - private static final Integer NOTIFICATION_MAX_LENGTH = 54; + private final Integer NOTIFICATION_MAX_LENGTH = 54; private static JPushClient client = null; - public static JPushClient getPush() { + private JPushClient getPush() { if (client == null) { client = new JPushClient("c235e93f6b91abd72ca5d74e", "c235e93f6b91abd72ca5d74e"); } @@ -40,7 +40,7 @@ public class JpushMessageHelper { } public void sendAppleMessage(String title, String body, String token, JSONObject data, JSONObject type) throws IOException, APIConnectionException, APIRequestException { - JPushClient jPushClient= JpushMessageHelper.getPush(); + JPushClient jPushClient= getPush(); JpushMessage jpushMessage = new JpushMessage(); jpushMessage.setTitle(title); jpushMessage.setText(body); @@ -48,24 +48,24 @@ public class JpushMessageHelper { param.put("data",data); param.put("type",type); jpushMessage.setParams(param); - PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); + PushPayload pushPayload = generateSinglePayload(token,jpushMessage); jPushClient.sendPush(pushPayload); } - public static PushPayload generateSinglePayload(String alias, JpushMessage pushMessage) { + private PushPayload generateSinglePayload(String alias, JpushMessage pushMessage) { Notification notify = getNotify(pushMessage); return PushPayload.newBuilder().setPlatform(Platform.android()).setAudience(Audience.alias(alias)).setNotification(notify) // 设置离线时长 .setOptions(Options.newBuilder().setTimeToLive(60 * 60 * 4).build()).build(); } - private static Notification getNotify(JpushMessage pushMessage) { + private Notification getNotify(JpushMessage pushMessage) { String alert = getText(pushMessage); return Notification.newBuilder().addPlatformNotification( AndroidNotification.newBuilder().setTitle(pushMessage.getTitle()).setAlert(alert).addExtras(getExtra(pushMessage)).build()).build(); } - private static String getText(JpushMessage pushMessage) { + private String getText(JpushMessage pushMessage) { String text = pushMessage.getText(); int length = text.length(); int trueLength = 0; @@ -90,7 +90,7 @@ public class JpushMessageHelper { return cutString; } - private static Map getExtra(JpushMessage message) { + private Map getExtra(JpushMessage message) { Map map = message.getParams(); return map; } From 2323459f31d1208b98f966e1e79cef0279b336ac Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 16:55:41 +0800 Subject: [PATCH 07/31] finish refactor the message --- .../core/impls/RetailAppServiceImp.java | 99 ++++++++++--------- .../ui/static/config/devtools/devtools.js | 1 + .../devtools/templates/send_message.html | 7 ++ 3 files changed, 61 insertions(+), 46 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index 93d7933f1..0c8713957 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -469,24 +469,17 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "payment"); type.put("id", order.getString("order_id")); - if("iphone".equals(devToken.getString("client_type"))) { + if ("iphone".equals(devToken.getString("client_type"))) { apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), - LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), token, - order, type); + LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), + token, order, type); } - if("android".equals(devToken.getString("client_type"))) { - JPushClient jPushClient= JpushMessageHelper.getPush(); - JpushMessage jpushMessage = new JpushMessage(); - jpushMessage.setTitle(LocaleSupport.localeMessage("app.message.title.payment")); - jpushMessage.setText(LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount")); - JSONObject param = new JSONObject(); - param.put("data",order); - param.put("type",type); - jpushMessage.setParams(param); - PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); - jPushClient.sendPush(pushPayload); + if ("android".equals(devToken.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.payment"), + LocaleSupport.localeMessage("app.message.body.payment") + order.getString("currency") + order.getDoubleValue("total_amount"), + token, order, type); } - log.put("status", 2); + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); @@ -529,15 +522,15 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "refund"); type.put("id", order.getString("order_id")); - if("iphone".equals(devToken.getString("client_type"))) { - apnsMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, token, - order, type); + if ("iphone".equals(devToken.getString("client_type"))) { + apnsMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, + token, order, type); } - if("android".equals(devToken.getString("client_type"))) { - jpushMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount,token, - order, type); + if ("android".equals(devToken.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage("Refund JpushMessage", LocaleSupport.localeMessage("app.message.body.refund") + refundAmount, + token, order, type); } - log.put("status", 2); + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { logger.error("出错了:" + e.getMessage()); @@ -569,21 +562,13 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "notice"); type.put("id", notice.getNotice_id()); - if("iphone".equals(devToken.getString("client_type"))){ + if ("iphone".equals(devToken.getString("client_type"))) { apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, noticeObj, type); } - if("android".equals(devToken.getString("client_type"))){ - JPushClient jPushClient= JpushMessageHelper.getPush(); - JpushMessage jpushMessage = new JpushMessage(); - jpushMessage.setTitle(notice.getTitle()); - jpushMessage.setText(LocaleSupport.localeMessage("app.message.title.notice")); - JSONObject param = new JSONObject(); - param.put("data",noticeObj); - param.put("type",type); - jpushMessage.setParams(param); - PushPayload pushPayload =JpushMessageHelper.generateSinglePayload(token,jpushMessage); - jPushClient.sendPush(pushPayload); + if ("android".equals(devToken.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), notice.getTitle(), token, + noticeObj, type); } log.put("status", 2); @@ -616,10 +601,19 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "cashback"); type.put("id", order.getString("order_id")); - apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), - LocaleSupport.localeMessage("app.message.body.cashback") + PlatformEnvironment.getEnv().getForeignCurrency() + " " - + cashbackAmount, - token, order, type); + if ("iphone".equals(devToken.getString("client_type"))) { + + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), + LocaleSupport.localeMessage("app.message.body.cashback") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + + cashbackAmount, + token, order, type); + } + if ("android".equals(devToken.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.notice"), + LocaleSupport.localeMessage("app.message.body.cashback") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + + cashbackAmount, + token, order, type); + } log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -653,9 +647,20 @@ public class RetailAppServiceImp implements RetailAppService { JSONObject type = new JSONObject(); type.put("send_type", "clean"); type.put("id", log_clearing_detail_id); - apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.clean"), LocaleSupport.localeMessage("app.message.body.clean") - + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + " (" + settle_date_from + "-" + settle_date_to + ")", - token, log_clearing_detail, type); + if ("iphone".equals(devToken.getString("client_type"))) { + + apnsMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.clean"), + LocaleSupport.localeMessage("app.message.body.clean") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + + " (" + settle_date_from + "-" + settle_date_to + ")", + token, log_clearing_detail, type); + } + + if ("android".equals(devToken.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage(LocaleSupport.localeMessage("app.message.title.clean"), + LocaleSupport.localeMessage("app.message.body.clean") + PlatformEnvironment.getEnv().getForeignCurrency() + " " + clearing_amount + + " (" + settle_date_from + "-" + settle_date_to + ")", + token, log_clearing_detail, type); + } log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -698,7 +703,6 @@ public class RetailAppServiceImp implements RetailAppService { } } - @Override public void updateReadStatus(JSONObject device, String noticeId) { String clientType = device.getString("client_type"); @@ -1125,9 +1129,13 @@ public class RetailAppServiceImp implements RetailAppService { } public void sending(String devToken, JSONObject params, JSONObject log) { - try { - apnsMessageHelper.sendAppleMessage(params.getString("title"), params.getString("content"), devToken, new JSONObject(), new JSONObject()); + if ("iphone".equals(params.getString("client_type"))) { + apnsMessageHelper.sendAppleMessage(params.getString("title"), params.getString("content"), devToken, new JSONObject(), new JSONObject()); + } + if ("android".equals(params.getString("client_type"))) { + jpushMessageHelper.sendAppleMessage(params.getString("title"), params.getString("content"), devToken, new JSONObject(), new JSONObject()); + } log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { @@ -1197,8 +1205,7 @@ public class RetailAppServiceImp implements RetailAppService { return str.matches(regex); } - private void sendJpush(int client_id,JpushMessage message){ - + private void sendJpush(int client_id, JpushMessage message) { } } diff --git a/src/main/ui/static/config/devtools/devtools.js b/src/main/ui/static/config/devtools/devtools.js index cd653273d..709fc4f53 100644 --- a/src/main/ui/static/config/devtools/devtools.js +++ b/src/main/ui/static/config/devtools/devtools.js @@ -216,6 +216,7 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { app.controller('devSendMessageCtrl', ['$scope', '$http', '$filter', function ($scope, $http, $filter) { $scope.params = {type:'Merchant'}; + alert($scope.params.client_type); $scope.sendMessage = function () { var params = angular.copy($scope.params); $http.put('/dev/send_message',params).then(function (resp) { diff --git a/src/main/ui/static/config/devtools/templates/send_message.html b/src/main/ui/static/config/devtools/templates/send_message.html index 378f1bbcb..dc37ff46a 100644 --- a/src/main/ui/static/config/devtools/templates/send_message.html +++ b/src/main/ui/static/config/devtools/templates/send_message.html @@ -31,6 +31,13 @@
+
+ + +
From 9b8b9639c0a31337afd7a1585605e8e77858268b Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 18:03:01 +0800 Subject: [PATCH 08/31] update --- .../com/royalpay/payment/manage/dev/bean/Message.java | 10 +++++++++- src/main/ui/static/config/devtools/devtools.js | 1 - .../static/config/devtools/templates/send_message.html | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/bean/Message.java b/src/main/java/au/com/royalpay/payment/manage/dev/bean/Message.java index 2ded3cb61..b4d3ce22c 100644 --- a/src/main/java/au/com/royalpay/payment/manage/dev/bean/Message.java +++ b/src/main/java/au/com/royalpay/payment/manage/dev/bean/Message.java @@ -16,7 +16,7 @@ public class Message { public String title; @NotEmpty(message = "content can not be null") public String content; - + public String client_type; public JSONObject insertObject() { JSONObject res = (JSONObject) JSON.toJSON(this); return res; @@ -53,4 +53,12 @@ public class Message { public void setContent(String content) { this.content = content; } + + public String getClient_type() { + return client_type; + } + + public void setClient_type(String client_type) { + this.client_type = client_type; + } } diff --git a/src/main/ui/static/config/devtools/devtools.js b/src/main/ui/static/config/devtools/devtools.js index 709fc4f53..cd653273d 100644 --- a/src/main/ui/static/config/devtools/devtools.js +++ b/src/main/ui/static/config/devtools/devtools.js @@ -216,7 +216,6 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { app.controller('devSendMessageCtrl', ['$scope', '$http', '$filter', function ($scope, $http, $filter) { $scope.params = {type:'Merchant'}; - alert($scope.params.client_type); $scope.sendMessage = function () { var params = angular.copy($scope.params); $http.put('/dev/send_message',params).then(function (resp) { diff --git a/src/main/ui/static/config/devtools/templates/send_message.html b/src/main/ui/static/config/devtools/templates/send_message.html index dc37ff46a..84aa5393b 100644 --- a/src/main/ui/static/config/devtools/templates/send_message.html +++ b/src/main/ui/static/config/devtools/templates/send_message.html @@ -34,8 +34,8 @@
From 4644f30cad81bd155fe168d80c6773f36d3162e4 Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Fri, 5 Jan 2018 18:10:00 +0800 Subject: [PATCH 09/31] fix --- .../java/au/com/royalpay/payment/manage/package-info.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/test/java/au/com/royalpay/payment/manage/package-info.java diff --git a/src/test/java/au/com/royalpay/payment/manage/package-info.java b/src/test/java/au/com/royalpay/payment/manage/package-info.java new file mode 100644 index 000000000..8035e9d82 --- /dev/null +++ b/src/test/java/au/com/royalpay/payment/manage/package-info.java @@ -0,0 +1,4 @@ +/** + * Created by yishuqian on 05/01/2018. + */ +package au.com.royalpay.payment.manage; \ No newline at end of file From 4eec126f95e36f98857c6bad8eddab74848463f5 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 18:16:16 +0800 Subject: [PATCH 10/31] test --- .../impls/CustomerImpressionImplTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java diff --git a/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java b/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java new file mode 100644 index 000000000..dcb24d4f8 --- /dev/null +++ b/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java @@ -0,0 +1,27 @@ +package au.com.royalpay.payment.manage.apps.core.impls; + +import au.com.royalpay.payment.manage.apps.core.CustomerImpression; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.annotation.Resource; + +/** + * Created by wangning on 05/01/2018. + */ +@SpringBootTest +@ActiveProfiles({"proxy","alipay","wechat","jd","bestpay"}) +@RunWith(SpringRunner.class) +public class CustomerImpressionImplTest { + @Resource + private CustomerImpression customerImpression; + @Test + public void generate() throws Exception { + customerImpression.generate(9); + } + +} \ No newline at end of file From f41e4c2ab799988f7beb85efd7eb4ef93a7e75c4 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 5 Jan 2018 18:19:16 +0800 Subject: [PATCH 11/31] update --- src/db/modify.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/db/modify.sql b/src/db/modify.sql index 3d0650c51..b5502c9fc 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -120,5 +120,22 @@ ALTER TABLE `cashback_draw_deposits` ALTER TABLE `sys_clients` ADD COLUMN `local_merchant` tinyint(1) DEFAULT 0; +--用户画像 + +ALTER TABLE sys_clients_customers ADD COLUMN headimg VARCHAR(200) DEFAULT NULL COMMENT '头像地址'; + +ALTER TABLE sys_clients_customers ADD COLUMN nick_name VARCHAR(80) DEFAULT NULL COMMENT '昵称'; + +ALTER TABLE sys_clients_customers ADD COLUMN tag VARCHAR(100) DEFAULT NULL COMMENT '标签'; + +ALTER TABLE sys_clients_customers ADD COLUMN payment_times INT DEFAULT 1 COMMENT '消费次数'; + +ALTER TABLE sys_clients_customers ADD COLUMN total_amount decimal(10 , 2) DEFAULT NULL COMMENT '消费总金额'; + +ALTER TABLE sys_clients_customers ADD COLUMN update_time datetime default NULL COMMENT '创建时间'; + +ALTER TABLE sys_clients_customers ADD COLUMN channel varchar(15) not NULL ; + +ALTER TABLE sys_clients_customers ADD COLUMN last_payment_time datetime DEFAULT NULL COMMENT '最后一次付款时间'; From 66775e24c23317815b5216fdda1797058be42d20 Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Mon, 8 Jan 2018 16:31:41 +0800 Subject: [PATCH 12/31] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=8C=E7=BA=A7=E7=AD=9B=E9=80=89=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=EF=BC=8C=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/mappers/system/OrgMapper.java | 6 +- .../manage/merchants/beans/PartnerQuery.java | 12 +++ .../core/impls/ClientManagerImpl.java | 97 ++++++++++--------- .../manage/organizations/beans/OrgInfo.java | 32 +++++- .../manage/organizations/core/OrgManager.java | 6 +- .../core/impls/OrgManagerImpl.java | 50 +++++++++- .../web/OrgManageController.java | 22 +++-- .../core/impls/ManagerAccountServiceImpl.java | 26 ++++- .../core/impls/SignInAccountServiceImpl.java | 34 ++++++- .../signin/web/ManagerAccountsController.java | 8 +- .../manage/tradelog/beans/TradeLogQuery.java | 12 +++ .../core/impls/TradeLogServiceImpl.java | 25 ++++- .../manage/mappers/payment/OrderMapper.xml | 2 + .../manage/mappers/system/ClientMapper.xml | 2 + .../manage/mappers/system/OrgMapper.xml | 30 ++++++ .../config/organizations/organizations.js | 20 +++- .../organizations/templates/new_org.html | 5 +- .../organizations/templates/org_detail.html | 3 +- .../config/organizations/templates/orgs.html | 16 ++- .../static/payment/partner/partner-manage.js | 18 +++- .../payment/partner/templates/partners.html | 27 +++++- .../tradelog/templates/trade_logs.html | 10 ++ .../payment/tradelog/tradelog-manage.js | 10 +- 23 files changed, 382 insertions(+), 91 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java index 59cacde68..28bdac865 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java @@ -25,6 +25,10 @@ public interface OrgMapper { List listOrgs(@Param("type") int type, PageBounds order); + List listOrgsWithParent(JSONObject params); + + List listOrgsWithChid(JSONObject params); + @AutoSql(type = SqlType.INSERT) void saveOrg(JSONObject org); @@ -35,7 +39,7 @@ public interface OrgMapper { void updateOrg(JSONObject org); @AutoSql(type = SqlType.SELECT) - @AdvanceSelect(addonWhereClause = "is_valid=1") + @AdvanceSelect(addonWhereClause = "is_valid=1 and parent_org_id IS NULL") List listAllOrgs(); JSONObject findOrgByBDId(@Param("bd_id") int bd_id); diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/PartnerQuery.java b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/PartnerQuery.java index d89677a80..44643a4bc 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/PartnerQuery.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/PartnerQuery.java @@ -22,6 +22,7 @@ public class PartnerQuery { private String short_name; private String sub_merchant_id; private String org_id; + private String org_ids; private Integer bd; private String business_structure; private String industry; @@ -117,6 +118,9 @@ public class PartnerQuery { if (org_id != null) { param.put("org_id", org_id); } + if (org_ids != null) { + param.put("org_ids", org_ids); + } if (bd != null) { param.put("bd_user", bd); } @@ -440,4 +444,12 @@ public class PartnerQuery { public boolean isIs_valid() { return is_valid; } + + public String getOrg_ids() { + return org_ids; + } + + public void setOrg_ids(String org_ids) { + this.org_ids = org_ids; + } } 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 62364635e..008a48d03 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 @@ -10,25 +10,8 @@ import au.com.royalpay.payment.manage.analysis.mappers.TransactionAnalysisMapper import au.com.royalpay.payment.manage.appclient.beans.AppClientBean; import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper; import au.com.royalpay.payment.manage.mappers.redpack.ActClientInvitationCodeMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientApplyMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientAuditProcessMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientBDMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientBankAccountMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientDeviceMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientFilesMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientRateMapper; -import au.com.royalpay.payment.manage.mappers.system.CommoditiesMapper; -import au.com.royalpay.payment.manage.mappers.system.ManagerMapper; -import au.com.royalpay.payment.manage.mappers.system.OrgMapper; -import au.com.royalpay.payment.manage.merchants.beans.ActivityPosterBuilder; -import au.com.royalpay.payment.manage.merchants.beans.BankAccountInfo; -import au.com.royalpay.payment.manage.merchants.beans.ClientAuthFilesInfo; -import au.com.royalpay.payment.manage.merchants.beans.ClientRateConfig; -import au.com.royalpay.payment.manage.merchants.beans.ClientRegisterInfo; -import au.com.royalpay.payment.manage.merchants.beans.NewAccountBean; -import au.com.royalpay.payment.manage.merchants.beans.PartnerQuery; +import au.com.royalpay.payment.manage.mappers.system.*; +import au.com.royalpay.payment.manage.merchants.beans.*; import au.com.royalpay.payment.manage.merchants.core.ClientComplyValidator; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.manage.notice.core.MailService; @@ -56,22 +39,16 @@ import au.com.royalpay.payment.tools.merchants.qrboard.QRBoard; import au.com.royalpay.payment.tools.merchants.qrboard.QRBoardProvider; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.permission.enums.PartnerRole; -import au.com.royalpay.payment.tools.utils.ImageUtils; -import au.com.royalpay.payment.tools.utils.PageListUtils; -import au.com.royalpay.payment.tools.utils.PasswordUtils; -import au.com.royalpay.payment.tools.utils.PdfUtils; -import au.com.royalpay.payment.tools.utils.QRCodeUtils; -import au.com.royalpay.payment.tools.utils.TimeZoneUtils; +import au.com.royalpay.payment.tools.utils.*; import au.com.royalpay.payment.tools.websocket.notify.PartnerPageEvent; - +import cn.yixblog.platform.http.HttpRequestGenerator; +import cn.yixblog.platform.http.HttpRequestResult; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; -import com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException; - import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; @@ -93,34 +70,22 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.thymeleaf.context.Context; import org.thymeleaf.spring4.SpringTemplateEngine; +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.math.BigDecimal; import java.net.URISyntaxException; import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; +import java.util.*; import java.util.List; -import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.annotation.Resource; -import javax.imageio.ImageIO; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; - -import cn.yixblog.platform.http.HttpRequestGenerator; -import cn.yixblog.platform.http.HttpRequestResult; - import static au.com.royalpay.payment.manage.permission.utils.OrgCheckUtils.checkOrgPermission; /** @@ -327,8 +292,18 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid params.put("bd_user", manager.getString("manager_id")); } } + + if(params.getString("org_id") != null){ + if(params.getString("org_ids") == null){ + orgIds(params,Integer.parseInt(params.getString("org_id"))); + }else { + params.put("org_id",params.getString("org_ids")); + params.remove("org_ids"); + } + } + JSONObject org = null; if (params.getString("org_id") != null) { - JSONObject org = orgMapper.findOne(params.getIntValue("org_id")); + org = orgMapper.findOne(params.getIntValue("org_id")); if (org.getIntValue("type") == 1) { params.put("referrer_id", org.getString("org_id")); params.remove("org_id"); @@ -336,7 +311,18 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } int orgId = manager.getIntValue("org_id"); if (orgId > 0) { - params.put("org_id", orgId); + if(params.getString("org_ids") == null){ + JSONObject org2 = orgMapper.findOne(orgId); + if(org2.getString("parent_org_id") != null){ + params.put("org_id",orgId); + }else { + params.put("org_id",orgId); + orgIds(params,orgId); + } + }else { + params.put("org_id", params.getIntValue("org_ids")); + params.remove("org_ids"); + } } String tempSubMchId = sysConfigManager.getSysConfig().getString("temp_sub_mch_id"); String tempSubMchSource = sysConfigManager.getSysConfig().getString("temp_sub_mch_id_source"); @@ -361,6 +347,21 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } return PageListUtils.buildPageListResult(partners); } + private void orgIds(JSONObject params,int orgId){ + JSONObject param = new JSONObject(); + param.put("parent_org_id",params.getString("org_id")); + param.put("type",0); + List orgIds = new ArrayList<>(); + List childOrgs = orgMapper.listOrgsWithChid(param); + if(childOrgs.size() > 0){ + for(JSONObject object : childOrgs ){ + orgIds.add(object.getIntValue("org_id")); + } + orgIds.add(orgId); + params.put("org_ids",orgIds); + params.remove("org_id"); + } + } @Override public List listPartners(JSONObject manager, PartnerQuery query) { diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java b/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java index 86be29bc4..3eda2a10d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java @@ -10,7 +10,7 @@ import org.hibernate.validator.constraints.NotEmpty; public class OrgInfo { @NotEmpty private String name; - private int type = 0; + private String type; private String logo; @NotEmpty private String location; @@ -32,6 +32,8 @@ public class OrgInfo { private String search_text; private int page = 1; private int limit = 10; + private String parent_org_id; + private String org_id; public JSONObject toJsonParam() { JSONObject param = new JSONObject(); @@ -44,9 +46,15 @@ public class OrgInfo { if (StringUtils.isNotBlank(search_text)) { param.put("search_text", search_text); } - if (StringUtils.isNotBlank(String.valueOf(type))){ + if (type != null){ param.put("type", type); } + if (StringUtils.isNotBlank(parent_org_id)){ + param.put("parent_org_id", parent_org_id); + } + if (StringUtils.isNotBlank(org_id)){ + param.put("org_id", org_id); + } return param; } @@ -126,11 +134,11 @@ public class OrgInfo { this.rate_value = rate_value; } - public int getType() { + public String getType() { return type; } - public void setType(int type) { + public void setType(String type) { this.type = type; } @@ -205,4 +213,20 @@ public class OrgInfo { public void setLimit(int limit) { this.limit = limit; } + + public String getParent_org_id() { + return parent_org_id; + } + + public void setParent_org_id(String parent_org_id) { + this.parent_org_id = parent_org_id; + } + + public String getOrg_id() { + return org_id; + } + + public void setOrg_id(String org_id) { + this.org_id = org_id; + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java b/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java index 006eb8acc..c682aee4f 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java @@ -11,9 +11,11 @@ import java.util.List; public interface OrgManager { List listOrgs(boolean detail); - JSONObject listAllOrgs(OrgInfo orgInfo); + List listOrgsWithChid(JSONObject manager,OrgInfo orgInfo); - JSONObject getOrgDetail(int orgId); + JSONObject listAllOrgs(OrgInfo orgInfo,JSONObject manager); + + JSONObject getOrgDetail(int orgId,JSONObject manager); JSONObject saveNewOrg(OrgInfo org); diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java index 11cda86db..76ece5f19 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java @@ -3,7 +3,10 @@ package au.com.royalpay.payment.manage.organizations.core.impls; import au.com.royalpay.payment.manage.mappers.system.OrgMapper; import au.com.royalpay.payment.manage.organizations.beans.OrgInfo; import au.com.royalpay.payment.manage.organizations.core.OrgManager; +import au.com.royalpay.payment.tools.exceptions.BadRequestException; +import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.utils.PageListUtils; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; @@ -11,6 +14,7 @@ import com.github.miemiedev.mybatis.paginator.domain.PageList; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -29,16 +33,47 @@ public class OrgManagerImpl implements OrgManager { } @Override - public JSONObject listAllOrgs(OrgInfo orgInfo) { + public List listOrgsWithChid(JSONObject manager,OrgInfo orgInfo) { + JSONObject params = new JSONObject(); + params.put("type",0); + List listOrgsByChild = orgMapper.listOrgsWithChid(params); + if(orgInfo.getOrg_id() != null){ + params.put("org_id", orgInfo.getOrg_id()); + }else { + if (manager.getInteger("org_id") != null) { + params.put("org_id", manager.getIntValue("org_id")); + } + } + List listOrgs = orgMapper.listOrgsWithParent(params); + List orgs = new ArrayList<>(); + for(JSONObject org : listOrgs){ + org.put("type",org.getString("name")); + orgs.add(org); + for(JSONObject orgChild : listOrgsByChild){ + if(org.getIntValue("org_id") == orgChild.getIntValue("parent_org_id")){ + orgChild.put("type",org.getString("name")); + orgs.add(orgChild); + } + } + } + return orgs; + } + + + + @Override + public JSONObject listAllOrgs(OrgInfo orgInfo,JSONObject manager) { /* PageBounds sort = new PageBounds(Order.formString("sort_no.asc")); return orgMapper.listsOrgWithDetail(sort);*/ + checkBdRole(manager); JSONObject params = orgInfo.toJsonParam(); PageList listOrg = orgMapper.listOrgWithPages(params,new PageBounds(orgInfo.getPage(),orgInfo.getLimit(),Order.formString("sort_no.asc"))); return PageListUtils.buildPageListResult(listOrg); } @Override - public JSONObject getOrgDetail(int orgId) { + public JSONObject getOrgDetail(int orgId,JSONObject manager) { + checkBdRole(manager); return orgMapper.findOne(orgId); } @@ -86,4 +121,15 @@ public class OrgManagerImpl implements OrgManager { return listAllOrgs; } + private void checkBdRole(JSONObject manager){ + if(ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))){ + if(manager.getString("org_id") != null){ + JSONObject org = orgMapper.findOne(manager.getIntValue("org_id")); + if(org != null && org.getIntValue("type") == 0 && org.getString("parent_org_id") != null){ + throw new BadRequestException("Invalid Role"); + } + } + } + } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java b/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java index 3f0b7faa3..28f4698bd 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java @@ -3,9 +3,11 @@ package au.com.royalpay.payment.manage.organizations.web; import au.com.royalpay.payment.manage.organizations.beans.OrgInfo; import au.com.royalpay.payment.manage.organizations.core.OrgManager; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; +import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.manage.permission.manager.RequireManager; import au.com.royalpay.payment.tools.http.HttpUtils; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.*; @@ -29,10 +31,16 @@ public class OrgManageController { return orgManager.listOrgs(detail); } + @RequestMapping(value = "/orgChild",method = RequestMethod.GET) + @RequireManager + public List listOrgsWithChid(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager,OrgInfo orgInfo) { + return orgManager.listOrgsWithChid(manager,orgInfo); + } + @RequestMapping(value = "/listsOrg", method = RequestMethod.GET) @RequireManager - public JSONObject listsOrg(OrgInfo orgInfo) { - return orgManager.listAllOrgs(orgInfo); + public JSONObject listsOrg(OrgInfo orgInfo,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + return orgManager.listAllOrgs(orgInfo,manager); } @RequestMapping(value = "/list_all_Org", method = RequestMethod.GET) @@ -41,15 +49,15 @@ public class OrgManageController { return orgManager.listAllOrg(); } - @ManagerMapping(method = RequestMethod.POST, role = ManagerRole.ADMIN) + @ManagerMapping(method = RequestMethod.POST, role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) public JSONObject saveOrg(@RequestBody @Valid OrgInfo org, Errors errors) { HttpUtils.handleValidErrors(errors); return orgManager.saveNewOrg(org); } - @ManagerMapping(value = "/{orgId}", method = RequestMethod.GET, role = ManagerRole.ADMIN) - public JSONObject getOrgDetail(@PathVariable int orgId) { - return orgManager.getOrgDetail(orgId); + @ManagerMapping(value = "/{orgId}", method = RequestMethod.GET, role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) + public JSONObject getOrgDetail(@PathVariable int orgId,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + return orgManager.getOrgDetail(orgId,manager); } @ManagerMapping(value = "/{orgId}", method = RequestMethod.PUT) @@ -58,7 +66,7 @@ public class OrgManageController { orgManager.updateOrg(orgId, org); } - @ManagerMapping(value = "/{orgId}/enable_change_rate",method = RequestMethod.PUT,role = {ManagerRole.ADMIN}) + @ManagerMapping(value = "/{orgId}/enable_change_rate",method = RequestMethod.PUT,role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) public void switchEnableChangeRate(@PathVariable int orgId, @RequestBody JSONObject enable){ boolean enabled = enable.getBooleanValue("enabled"); orgManager.switchPermission(orgId,"rate_editable",enabled); 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 4598f9434..a8a4ef3f9 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 @@ -2,6 +2,7 @@ package au.com.royalpay.payment.manage.signin.core.impls; import au.com.royalpay.payment.manage.mappers.financial.FinancialBDConfigMapper; import au.com.royalpay.payment.manage.mappers.system.ManagerMapper; +import au.com.royalpay.payment.manage.mappers.system.OrgMapper; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.manage.signin.beans.ManagerInfo; import au.com.royalpay.payment.manage.signin.core.ManagerAccountsService; @@ -22,11 +23,15 @@ import java.util.List; public class ManagerAccountServiceImpl implements ManagerAccountsService { @Resource private ManagerMapper managerMapper; + + @Resource + private OrgMapper orgMapper; @Resource private FinancialBDConfigMapper financialBDConfigMapper; @Override public List listManagers(JSONObject loginManager) { + checkBdRole(loginManager); JSONObject params = new JSONObject(); if (loginManager.getInteger("org_id") != null) { params.put("org_id", loginManager.getIntValue("org_id")); @@ -52,7 +57,8 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void saveManager(ManagerInfo manager, JSONObject loginManager) { - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))) { + checkBdRole(loginManager); + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))) { if (manager.isAdmin() || manager.isFinacial() || manager.isOperator() || manager.isServant() || manager.isSitemanager() || manager.isDeveloper()) { throw new BadRequestException("Invalid Role"); } @@ -67,12 +73,13 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void modify(String userId, ManagerInfo manager, JSONObject loginManager) { + checkBdRole(loginManager); JSONObject managerFromDb = managerMapper.findById(userId); if (managerFromDb == null) { throw new NotFoundException("manager not exists or invalid"); } JSONObject obj = manager.accountJson(false); - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))) { + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))) { if (managerFromDb.getIntValue("org_id") != loginManager.getIntValue("org_id")) { throw new BadRequestException("You cannot modify accounts belong to other organizations"); } @@ -87,8 +94,9 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void disable(String userId, JSONObject loginManager) { + checkBdRole(loginManager); JSONObject manager = managerMapper.findById(userId); - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))) { + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))){ if (manager.getIntValue("org_id") != loginManager.getIntValue("org_id")) { throw new BadRequestException("You cannot disable accounts belong to other organizations"); } @@ -117,4 +125,16 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { public JSONObject getBDConfig(String bd_id){ return financialBDConfigMapper.getBdConfig(bd_id); } + + private void checkBdRole(JSONObject loginManager){ + if(ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))){ + JSONObject manager = managerMapper.findById(loginManager.getString("manager_id")); + if(manager.getString("org_id") != null){ + JSONObject org = orgMapper.findOne(manager.getIntValue("org_id")); + if(org != null && org.getIntValue("type") == 0 && org.getString("parent_org_id") != null){ + throw new BadRequestException("Invalid Role"); + } + } + } + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java index 042a1149d..4d20ee720 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java @@ -32,10 +32,7 @@ import org.thymeleaf.context.Context; import org.thymeleaf.spring4.SpringTemplateEngine; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * account service for sign in @@ -67,11 +64,14 @@ public class SignInAccountServiceImpl implements SignInAccountService, Applicati @Cacheable(value = ":login:managers:", key = "''+#accountId") public JSONObject getManager(String accountId) { JSONObject manager = managerMapper.findById(accountId); + JSONObject org = null; if (manager == null) { throw new ForbiddenException("用户不存在或已禁用"); } if (manager.getInteger("org_id") != null) { - manager.put("org", orgMapper.findOne(manager.getIntValue("org_id"))); + org = orgMapper.findOne(manager.getIntValue("org_id")); + manager.put("org", org); + manager.put("parent_org_id",org.getIntValue("parent_org_id")); } List funcs = permissionManager.listUserFunctions(manager.getIntValue("role")); List funcIds = new ArrayList<>(); @@ -90,12 +90,36 @@ public class SignInAccountServiceImpl implements SignInAccountService, Applicati modules.put(module, mod); } } + if(org != null && org.getIntValue("type")==0 && org.getString("parent_org_id") != null){ + if(modules.containsKey("org")){ + deleteOrgModule(modules,"org"); + } + if(modules.containsKey("manager_accounts")){ + deleteOrgModule(modules,"manager_accounts"); + } + } + if(org != null && org.getIntValue("type")==0 && org.getString("parent_org_id") == null){ + if(modules.containsKey("manager_accounts")){ + deleteOrgModule(modules,"manager_accounts"); + } + } + manager.put("available_func_ids", funcIds); manager.put("available_func_names", funcNames); manager.put("modules", modules.values()); manager.put("module_names", modules.keySet()); return manager; } + private void deleteOrgModule(Map modules,String module){ + Iterator iterator = modules.keySet().iterator(); + while (iterator.hasNext()) { + String key = (String) iterator.next(); + if (module.equals(key)) { + iterator.remove(); + modules.remove(key); + } + } + } @Override @Cacheable(value = ":login:clients:", key = "''+#accountId") diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java index 2d0aad18b..7e539b1a4 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java @@ -33,14 +33,14 @@ public class ManagerAccountsController { // } @RequestMapping(method = RequestMethod.GET) - @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) + @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) public List listManagerss(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager, @RequestParam Map map) { loginManager.putAll(map); return managerAccountsService.listManagers(loginManager); } @RequestMapping(method = RequestMethod.POST) - @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) + @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) public void saveManager(@RequestBody @Valid ManagerInfo manager, Errors errors, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { HttpUtils.handleValidErrors(errors); managerAccountsService.saveManager(manager, loginManager); @@ -55,12 +55,12 @@ public class ManagerAccountsController { return managerAccountsService.listBDUsers((JSONObject) JSON.toJSON(map)); } - @ManagerMapping(value = "/{userId}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) + @ManagerMapping(value = "/{userId}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) public void modify(@PathVariable String userId, @RequestBody ManagerInfo manager, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { managerAccountsService.modify(userId, manager, loginManager); } - @ManagerMapping(value = "/{userId}", method = RequestMethod.DELETE, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) + @ManagerMapping(value = "/{userId}", method = RequestMethod.DELETE, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) public void disableUser(@PathVariable String userId, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { managerAccountsService.disable(userId, loginManager); } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java index 6773cbb08..d21fded04 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/beans/TradeLogQuery.java @@ -36,6 +36,7 @@ public class TradeLogQuery { private int trans_type; private boolean onlyGroup = false; private int group_bd; + private String org_id; public JSONObject toParams(String timezone) { JSONObject params = new JSONObject(); @@ -91,6 +92,9 @@ public class TradeLogQuery { if (getDev_id() != null) { params.put("dev_id", getDev_id()); } + if (org_id != null && org_id != "ALL") { + params.put("org_id", org_id); + } return params; } @@ -214,4 +218,12 @@ public class TradeLogQuery { public void setChannel(PayChannel channel) { this.channel = channel; } + + public String getOrg_id() { + return org_id; + } + + public void setOrg_id(String org_id) { + this.org_id = org_id; + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index 6848bd064..fe9ed3449 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -18,6 +18,7 @@ import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper; import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; import au.com.royalpay.payment.manage.mappers.system.CustomerRelationAlipayMapper; +import au.com.royalpay.payment.manage.mappers.system.OrgMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.manage.tradelog.beans.PreRefundQueryBean; import au.com.royalpay.payment.manage.tradelog.beans.TradeLogQuery; @@ -119,6 +120,9 @@ public class TradeLogServiceImpl implements TradeLogService { @Resource private ClientCustomersMapper clientCustomersMapper; + @Resource + private OrgMapper orgMapper; + // @Value("classpath:/jasper/trans_flow.jasper") // @Value("classpath:/jasper/trans_flow_new.jasper") @Value("classpath:/jasper/partner_invoice.jasper") @@ -176,7 +180,26 @@ public class TradeLogServiceImpl implements TradeLogService { } } if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); + if(params.getString("org_id") == null) { + JSONObject org = orgMapper.findOne(manager.getInteger("org_id")); + if(org.getString("parent_org_id") != null){ + params.put("org_id",manager.getInteger("org_id")); + }else { + JSONObject param = new JSONObject(); + param.put("parent_org_id", manager.getIntValue("org_id")); + param.put("type", 0); + List orgIds = new ArrayList<>(); + List childOrgs = orgMapper.listOrgsWithChid(param); + if(childOrgs.size()>0){ + for (JSONObject object : childOrgs) { + orgIds.add(object.getIntValue("org_id")); + } + orgIds.add(manager.getIntValue("org_id")); + params.put("org_ids", orgIds); + } + } + + } } PageList logs = orderMapper.listOrders(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); JSONObject result = PageListUtils.buildPageListResult(logs); diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml index d9476cdbf..c9893b8d6 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml @@ -172,6 +172,8 @@ and o.order_id=#{order_id} + and p.org_id in + #{org_id} and o.gateway in #{gateway} 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 77c69f77f..59fce38fe 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 @@ -150,6 +150,8 @@ and c.org_id=#{org_id} + and c.org_id in + #{org_id} and c.referrer_id=#{referrer_id} and c.is_valid=1 diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml index 7c5036341..fd1772188 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml @@ -8,6 +8,29 @@ + + + + @@ -37,6 +60,13 @@ and org.name=#{name} + + and org.parent_org_id=#{parent_org_id} + + + and (org.org_id=#{org_id} or org.parent_org_id=#{org_id}) + + \ No newline at end of file diff --git a/src/main/ui/static/config/organizations/organizations.js b/src/main/ui/static/config/organizations/organizations.js index c1ee8557a..ee9c14165 100644 --- a/src/main/ui/static/config/organizations/organizations.js +++ b/src/main/ui/static/config/organizations/organizations.js @@ -33,17 +33,26 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { }) }]); app.controller('orgsCtrl', ['$scope', '$http','commonDialog', function ($scope, $http,commonDialog ) { - $scope.params = {type:0}; + $scope.params = {}; + if($scope.currentUser.org_id !=null && !angular.equals({}, $scope.currentUser.org_id)) { + $scope.params.org_id = $scope.currentUser.org_id; + } $scope.pagination = {}; $scope.types = angular.copy(types); $scope.listOrgs = function (page) { var params = angular.copy( $scope.params); params.page = page || $scope.pagination.page || 1; $http.get('/sys/orgs/listsOrg',{params:params}).then(function (resp) { - $scope.orgs = resp.data.data; + $scope.orgs_detail = resp.data.data; $scope.pagination = resp.data.pagination; }) }; + if (($scope.currentUser.role & parseInt('1000011', 2)) > 0 && !$scope.currentUser.org_id) { + $scope.showOrg = 'Organization'; + $http.get('/sys/orgs/list_all_Org', {params: {}}).then(function (resp) { + $scope.orgs = resp.data; + }); + } $scope.disableOrg = function (org) { $scope.org =angular.copy(org); $scope.org.is_valid = 0; @@ -63,6 +72,9 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { app.controller('orgDetailCtrl', ['$scope', '$http', '$state', 'Upload', '$uibModal','commonDialog', 'org', function ($scope, $http, $state, Upload,$uibModal,commonDialog, org) { $scope.types = angular.copy(types); $scope.org = angular.copy(org.data); + if ($scope.currentUser.org_id != null) { + $scope.org.type = 0; + } $scope.uploadLogo = function (file) { if (file == null) { return; @@ -183,6 +195,10 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { }); return; } + if($scope.currentUser.org_id !=null && !angular.equals({}, $scope.currentUser.org_id)) { + $scope.org.parent_org_id = angular.copy($scope.currentUser.org.org_id); + $scope.org.type = '0'; + } $http.post('/sys/orgs', $scope.org).then(function (resp) { commonDialog.alert({ title: 'Succeed', diff --git a/src/main/ui/static/config/organizations/templates/new_org.html b/src/main/ui/static/config/organizations/templates/new_org.html index 8b9348340..0682ae4c9 100644 --- a/src/main/ui/static/config/organizations/templates/new_org.html +++ b/src/main/ui/static/config/organizations/templates/new_org.html @@ -64,7 +64,8 @@ required>
-
+
@@ -88,7 +89,7 @@
-
+
diff --git a/src/main/ui/static/config/organizations/templates/org_detail.html b/src/main/ui/static/config/organizations/templates/org_detail.html index dbba42c13..cd634a020 100644 --- a/src/main/ui/static/config/organizations/templates/org_detail.html +++ b/src/main/ui/static/config/organizations/templates/org_detail.html @@ -50,7 +50,8 @@
-
+
diff --git a/src/main/ui/static/config/organizations/templates/orgs.html b/src/main/ui/static/config/organizations/templates/orgs.html index 3a1d1a023..e614bb18e 100644 --- a/src/main/ui/static/config/organizations/templates/orgs.html +++ b/src/main/ui/static/config/organizations/templates/orgs.html @@ -86,15 +86,22 @@
-
+ + <!––> +
--> +
+
- @@ -144,7 +151,8 @@ - {{org.name}} + {{org.name}} {{org.location}} {{org.contact_person}} {{org.contact_phone}} diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 2d8a28884..cf7b65814 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -122,7 +122,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter if ($scope.currentUser.org_id == 1 || $scope.currentUser.org_id == null) { $scope.analysisClients(); } - $scope.pagination = {}; $scope.industries = industryMap.configs(); $scope.states = stateMap.configs(); @@ -131,7 +130,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter $scope.business_structures = businessStructuresMap.configs(); $scope.clean_days = angular.copy(clean_days_map); $scope.bd_citys = angular.copy(bd_city_map); - $scope.params = {textType: 'all'}; + $scope.params = {textType: 'all',org_name:'ALL'}; $scope.loadPartners = function (page) { var params = angular.copy($scope.params); @@ -165,6 +164,21 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter }); } + $scope.loadOrgs = function () { + var params = angular.copy($scope.params); + $http.get('/sys/orgs/orgChild',{params: params}).then(function (resp) { + $scope.orgs_child = resp.data; + }) + }; + $scope.loadOrgs(); + + + /* $scope.onOrgsSelect = function (selectedItem) { + $scope.params.org_id = selectedItem.org_id; + $scope.params.org_name = selectedItem.label; + $scope.loadPartners(); + }; +*/ /* $scope.chooseOrg = function (org) { if (org == 'all') { delete $scope.params.org_id; diff --git a/src/main/ui/static/payment/partner/templates/partners.html b/src/main/ui/static/payment/partner/templates/partners.html index 1a326ce7a..f23122fdb 100644 --- a/src/main/ui/static/payment/partner/templates/partners.html +++ b/src/main/ui/static/payment/partner/templates/partners.html @@ -142,11 +142,34 @@
+ +
+ + +
+ +
+
+ -
+
diff --git a/src/main/ui/static/payment/tradelog/templates/trade_logs.html b/src/main/ui/static/payment/tradelog/templates/trade_logs.html index a631b9a9e..b5b7cc556 100644 --- a/src/main/ui/static/payment/tradelog/templates/trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/trade_logs.html @@ -56,6 +56,16 @@
+
+ +
+ +
+
diff --git a/src/main/ui/static/payment/tradelog/tradelog-manage.js b/src/main/ui/static/payment/tradelog/tradelog-manage.js index fb124fd19..7bac63aa5 100644 --- a/src/main/ui/static/payment/tradelog/tradelog-manage.js +++ b/src/main/ui/static/payment/tradelog/tradelog-manage.js @@ -17,7 +17,7 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { }]); app.controller('globalTradeLogCtrl', ['$scope', '$http', '$filter', 'commonDialog', 'refunder', 'orderService', function ($scope, $http, $filter, commonDialog, refunder, orderService) { - $scope.params = {status: 'PAID',channel:'ALL', textType: 'all', datefrom: new Date(), dateto: new Date()}; + $scope.params = {status: 'PAID',channel:'ALL', textType: 'all', datefrom: new Date(), dateto: new Date(),org_name:'ALL'}; $scope.pagination = {}; $scope.today = new Date(); @@ -76,6 +76,14 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) { $scope.params.datefrom = monthBegin; $scope.loadTradeLogs(1); }; + + $scope.loadOrgs = function () { + $http.get('/sys/orgs/orgChild').then(function (resp) { + $scope.orgs = resp.data; + }) + }; + $scope.loadOrgs(); + $scope.loadTradeLogs = function (page) { var params = angular.copy($scope.params); if (params.datefrom) { From 5597444015aea2a43d02f0c84540661ffcbfa9b8 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Mon, 8 Jan 2018 16:37:36 +0800 Subject: [PATCH 13/31] update --- .../manage/apps/core/impls/CustomerImpressionImplTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java b/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java index dcb24d4f8..f0631ed79 100644 --- a/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java +++ b/src/test/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionImplTest.java @@ -1,6 +1,6 @@ package au.com.royalpay.payment.manage.apps.core.impls; -import au.com.royalpay.payment.manage.apps.core.CustomerImpression; +import au.com.royalpay.payment.manage.apps.core.CustomerImpressionService; import org.junit.Test; import org.junit.runner.RunWith; @@ -18,7 +18,7 @@ import javax.annotation.Resource; @RunWith(SpringRunner.class) public class CustomerImpressionImplTest { @Resource - private CustomerImpression customerImpression; + private CustomerImpressionService customerImpression; @Test public void generate() throws Exception { customerImpression.generate(9); From d8041ca3ce34f629394ffe687995d8fa7f50c251 Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Mon, 8 Jan 2018 17:51:40 +0800 Subject: [PATCH 14/31] fix~ --- .../royalpay/payment/manage/mappers/system/OrgMapper.java | 2 +- src/main/ui/static/config/managers/manager.js | 4 ++-- .../ui/static/config/managers/templates/managers.html | 8 +++++++- .../ui/static/config/organizations/templates/orgs.html | 2 +- .../ui/static/payment/partner/templates/partners.html | 4 ++-- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java index 28bdac865..968557be4 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java @@ -39,7 +39,7 @@ public interface OrgMapper { void updateOrg(JSONObject org); @AutoSql(type = SqlType.SELECT) - @AdvanceSelect(addonWhereClause = "is_valid=1 and parent_org_id IS NULL") + @AdvanceSelect(addonWhereClause = "is_valid=1") List listAllOrgs(); JSONObject findOrgByBDId(@Param("bd_id") int bd_id); diff --git a/src/main/ui/static/config/managers/manager.js b/src/main/ui/static/config/managers/manager.js index b749ab7a8..adf9fee30 100644 --- a/src/main/ui/static/config/managers/manager.js +++ b/src/main/ui/static/config/managers/manager.js @@ -20,9 +20,9 @@ define(['angular', 'uiRouter', 'uiBootstrap'], function (angular) { }; if($filter('withRole')('1')){ $scope.listOrgs = function () { - $http.get('/sys/orgs',{params:{detail:true}}).then(function (resp) { + $http.get('/sys/orgs/list_all_Org', {params: {}}).then(function (resp) { $scope.orgs = resp.data; - }) + }); }; $scope.listOrgs(); } diff --git a/src/main/ui/static/config/managers/templates/managers.html b/src/main/ui/static/config/managers/templates/managers.html index 688282066..36fa9f08d 100644 --- a/src/main/ui/static/config/managers/templates/managers.html +++ b/src/main/ui/static/config/managers/templates/managers.html @@ -36,11 +36,17 @@
+ +
+
diff --git a/src/main/ui/static/payment/partner/templates/partners.html b/src/main/ui/static/payment/partner/templates/partners.html index f23122fdb..aa99dceb1 100644 --- a/src/main/ui/static/payment/partner/templates/partners.html +++ b/src/main/ui/static/payment/partner/templates/partners.html @@ -148,8 +148,8 @@
-
- +
+
-
+

+

+ +
+
+
+
+ + +
+
+
+ +
+ +
+
+
+ +
+

+ + + +

+
+
+
+ +
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + % +
+
+
+
+
+ +
+ + % +
+
+ +
+ +
+ + % +
+
+ +
+ +
+ + % +
+
+ +
+ +
+ + % +
+
+ +
+ +
+ + % +
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + Back +
+ +
+
+ +
+
+
+ +
\ No newline at end of file diff --git a/src/main/ui/static/config/organizations/templates/orgs.html b/src/main/ui/static/config/organizations/templates/orgs.html index d71f939a3..5ed4c54e7 100644 --- a/src/main/ui/static/config/organizations/templates/orgs.html +++ b/src/main/ui/static/config/organizations/templates/orgs.html @@ -161,11 +161,15 @@
Edit - | + ui-sref=".detail({orgId:org.org_id})" ng-if="(currentUser.org_id == null) || (org.parent_org_id == currentUser.org_id)"> Edit | + + Disable + ng-click="disableOrg(org)" ng-if="(currentUser.org_id == null)||(org.parent_org_id == currentUser.org_id)">Disable + + Detail
From 0cbefe6558de507b72ea0fc2e7d4334dbcbd754f Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Mon, 8 Jan 2018 19:47:06 +0800 Subject: [PATCH 17/31] fix~ --- src/main/ui/static/config/organizations/templates/orgs.html | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/ui/static/config/organizations/templates/orgs.html b/src/main/ui/static/config/organizations/templates/orgs.html index 5ed4c54e7..a763ce5f0 100644 --- a/src/main/ui/static/config/organizations/templates/orgs.html +++ b/src/main/ui/static/config/organizations/templates/orgs.html @@ -164,7 +164,6 @@ ui-sref=".detail({orgId:org.org_id})" ng-if="(currentUser.org_id == null) || (org.parent_org_id == currentUser.org_id)"> Edit | - Disable From ae5a21fc3c2d7b191819a93f8ed4a71d658d8148 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Mon, 8 Jan 2018 20:05:38 +0800 Subject: [PATCH 18/31] update --- .../manage/pushMessage/bean/AppManagerMessageBuilder.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/AppManagerMessageBuilder.java b/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/AppManagerMessageBuilder.java index 8e862ed67..f008f7d6d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/AppManagerMessageBuilder.java +++ b/src/main/java/au/com/royalpay/payment/manage/pushMessage/bean/AppManagerMessageBuilder.java @@ -5,12 +5,9 @@ import au.com.royalpay.payment.tools.device.message.AppMessageBuilder; import com.alibaba.fastjson.JSONObject; -import org.springframework.stereotype.Service; - /** * Created by wangning on 08/01/2018. */ -@Service public class AppManagerMessageBuilder implements AppMessageBuilder { private JSONObject managerMsg; From bace0e420eabafdcbebb3e803474fa38d37dccd9 Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 10:35:25 +0800 Subject: [PATCH 19/31] fix --- .../manage/mappers/system/OrgMapper.java | 2 ++ .../manage/organizations/core/OrgManager.java | 1 + .../core/impls/OrgManagerImpl.java | 29 +++++++++++++++++++ .../core/impls/TradeLogServiceImpl.java | 28 ++++-------------- .../manage/mappers/payment/OrderMapper.xml | 2 +- .../manage/mappers/system/OrgMapper.xml | 4 +++ .../managers/templates/new_manager.html | 6 ++-- 7 files changed, 45 insertions(+), 27 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java index 968557be4..04ae18528 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/OrgMapper.java @@ -45,4 +45,6 @@ public interface OrgMapper { JSONObject findOrgByBDId(@Param("bd_id") int bd_id); PageList listOrgWithPages(JSONObject paraams, PageBounds order); + + List listOrgAndChild(@Param("org_id") int org_id); } diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java b/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java index c682aee4f..d3f35d221 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/core/OrgManager.java @@ -27,4 +27,5 @@ public interface OrgManager { List listAllOrg(); + JSONObject checkOrg(JSONObject manager, JSONObject params); } diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java index 76ece5f19..90ddc9abd 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java @@ -4,6 +4,7 @@ import au.com.royalpay.payment.manage.mappers.system.OrgMapper; import au.com.royalpay.payment.manage.organizations.beans.OrgInfo; import au.com.royalpay.payment.manage.organizations.core.OrgManager; import au.com.royalpay.payment.tools.exceptions.BadRequestException; +import au.com.royalpay.payment.tools.exceptions.ForbiddenException; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.utils.PageListUtils; import com.alibaba.fastjson.JSONArray; @@ -11,12 +12,14 @@ import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * Created by yixian on 2016-10-18. @@ -132,4 +135,30 @@ public class OrgManagerImpl implements OrgManager { } } + @Override + public JSONObject checkOrg(JSONObject manager, JSONObject params){ + if (params.getString("org_id")==null){ + if (manager.getInteger("org_id")!=null){ + List orgs = orgMapper.listOrgAndChild(manager.getIntValue("org_id")); + if (orgs.size()>1){ + List orgIds = orgs.stream().map(org->org.getIntValue("org_id")).collect(Collectors.toList()); + params.put("org_ids",orgIds); + }else { + params.put("org_id",manager.getIntValue("org_id")); + } + } + }else { + if (manager.getInteger("org_id")!=null){ + List orgs = orgMapper.listOrgAndChild(manager.getIntValue("org_id")); + List orgIds = orgs.stream().map(org->org.getIntValue("org_id")).collect(Collectors.toList()); + if (!orgIds.contains(params.getString("org_id"))){ + throw new ForbiddenException("You have no permission to query the org"); + } + + } + + } + return params; + } + } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index fe9ed3449..4f2ab89ab 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -20,6 +20,7 @@ import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; import au.com.royalpay.payment.manage.mappers.system.CustomerRelationAlipayMapper; import au.com.royalpay.payment.manage.mappers.system.OrgMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; +import au.com.royalpay.payment.manage.organizations.core.OrgManager; import au.com.royalpay.payment.manage.tradelog.beans.PreRefundQueryBean; import au.com.royalpay.payment.manage.tradelog.beans.TradeLogQuery; import au.com.royalpay.payment.manage.tradelog.core.TradeLogService; @@ -121,7 +122,7 @@ public class TradeLogServiceImpl implements TradeLogService { private ClientCustomersMapper clientCustomersMapper; @Resource - private OrgMapper orgMapper; + private OrgManager orgManager; // @Value("classpath:/jasper/trans_flow.jasper") // @Value("classpath:/jasper/trans_flow_new.jasper") @@ -179,28 +180,7 @@ public class TradeLogServiceImpl implements TradeLogService { params.put("bd_group_bd", query.getGroup_bd()); } } - if (manager.getInteger("org_id") != null) { - if(params.getString("org_id") == null) { - JSONObject org = orgMapper.findOne(manager.getInteger("org_id")); - if(org.getString("parent_org_id") != null){ - params.put("org_id",manager.getInteger("org_id")); - }else { - JSONObject param = new JSONObject(); - param.put("parent_org_id", manager.getIntValue("org_id")); - param.put("type", 0); - List orgIds = new ArrayList<>(); - List childOrgs = orgMapper.listOrgsWithChid(param); - if(childOrgs.size()>0){ - for (JSONObject object : childOrgs) { - orgIds.add(object.getIntValue("org_id")); - } - orgIds.add(manager.getIntValue("org_id")); - params.put("org_ids", orgIds); - } - } - - } - } + orgManager.checkOrg(manager,params); PageList logs = orderMapper.listOrders(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc"))); JSONObject result = PageListUtils.buildPageListResult(logs); JSONObject analysis = orderMapper.analysisOrders(params); @@ -208,6 +188,8 @@ public class TradeLogServiceImpl implements TradeLogService { return result; } + + @Override public List listOrderRefunds(String orderId, String timezone) { List refunds = refundMapper.listOrderRefunds(orderId, new PageBounds(Order.formString("create_time.desc"))); diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml index c9893b8d6..15377e695 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml @@ -177,7 +177,7 @@ and o.gateway in #{gateway} - and p.org_id=#{org_id} + and p.org_id=#{org_id} and o.create_time >= #{from} and o.create_time < #{to} and date(o.create_time)=date(#{date}) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml index fd1772188..c1a62ca1c 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/OrgMapper.xml @@ -31,6 +31,10 @@ + + diff --git a/src/main/ui/static/config/managers/templates/new_manager.html b/src/main/ui/static/config/managers/templates/new_manager.html index 96a455d20..1fa60ccb9 100644 --- a/src/main/ui/static/config/managers/templates/new_manager.html +++ b/src/main/ui/static/config/managers/templates/new_manager.html @@ -36,17 +36,17 @@
-
+
-
+
-
+
From 322c4ea227ed4f361379cc71c1c64c302b3a2f07 Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 14:40:47 +0800 Subject: [PATCH 20/31] fix --- .../analysis/web/DashboardController.java | 47 ++++++------------- .../signin/web/ManagerAccountsController.java | 12 +++-- .../analysis/mappers/ClientAnalysisMapper.xml | 28 ++++++++--- 3 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/web/DashboardController.java b/src/main/java/au/com/royalpay/payment/manage/analysis/web/DashboardController.java index 856030e6c..ec3eaccfa 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/web/DashboardController.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/web/DashboardController.java @@ -2,6 +2,7 @@ package au.com.royalpay.payment.manage.analysis.web; import au.com.royalpay.payment.manage.analysis.beans.AnalysisBean; import au.com.royalpay.payment.manage.analysis.core.DashboardService; +import au.com.royalpay.payment.manage.organizations.core.OrgManager; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.manage.permission.manager.RequirePartner; @@ -20,32 +21,28 @@ import java.util.List; public class DashboardController { @Resource private DashboardService dashboardService; + @Resource + private OrgManager orgManager; @ManagerMapping("/common_analysis_1") public JSONObject commonAnalysis1(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getCommonAnalysis1(params); } @ManagerMapping("/common_analysis_2") public JSONObject commonAnalysis2(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getCommonAnalysis2(params); } @ManagerMapping("/trade_in_types") public List tradeInTypes(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getTradeInTypes(params); } @@ -53,18 +50,14 @@ public class DashboardController { public List topTradePartners(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @RequestParam(defaultValue = "10") int limit) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getTopTradePartners(params, limit); } @ManagerMapping("/rank_trade_partners") public List rankTradePartners(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); if (analysis.isOnlyGroup() && ManagerRole.BD_LEADER.hasRole(manager.getIntValue("role"))) { params.put("bd_group", manager.getString("manager_id")); if (analysis.getGroup_bd()>0){ @@ -77,9 +70,7 @@ public class DashboardController { @ManagerMapping("/trade_in_hours") public List tradeInHours(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); if (analysis.isOnlyGroup() && ManagerRole.BD_LEADER.hasRole(manager.getIntValue("role"))) { params.put("bd_group", manager.getString("manager_id")); if (analysis.getGroup_bd()>0){ @@ -92,18 +83,14 @@ public class DashboardController { @ManagerMapping("/fee_analysis") public List tradeInDays(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getTradeAnalysisInDays(params); } @ManagerMapping("/partners_in_types") public List partnersInTypes(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); if (analysis.isOnlyGroup() && ManagerRole.BD_LEADER.hasRole(manager.getIntValue("role"))) { params.put("bd_group", manager.getString("manager_id")); if (analysis.getGroup_bd()>0){ @@ -118,9 +105,7 @@ public class DashboardController { @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); params.put("trade_type", trade_type); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); if (analysis.isOnlyGroup() && ManagerRole.BD_LEADER.hasRole(manager.getIntValue("role"))) { params.put("bd_group", manager.getString("manager_id")); if (analysis.getGroup_bd()>0){ @@ -134,9 +119,7 @@ public class DashboardController { @ManagerMapping("/trade_in_time") public List tradeInTime(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getTradeAnalysisInTime(params); } @@ -154,9 +137,7 @@ public class DashboardController { @ManagerMapping("/Total_platform_amount") public JSONObject getPlatformAmount(AnalysisBean analysis, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ JSONObject params = analysis.toParams(null); - if (manager.getInteger("org_id") != null) { - params.put("org_id", manager.getIntValue("org_id")); - } + orgManager.checkOrg(manager,params); return dashboardService.getPlatformAmount(params); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java index 7e539b1a4..b93a106bf 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java @@ -1,5 +1,6 @@ package au.com.royalpay.payment.manage.signin.web; +import au.com.royalpay.payment.manage.organizations.core.OrgManager; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.manage.permission.manager.RequireManager; @@ -25,6 +26,8 @@ import java.util.Map; public class ManagerAccountsController { @Resource private ManagerAccountsService managerAccountsService; + @Resource + private OrgManager orgManager; // @RequestMapping(method = RequestMethod.GET) // @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) @@ -48,11 +51,14 @@ public class ManagerAccountsController { @ManagerMapping(value = "/roles/bd_user", method = RequestMethod.GET) public List listBDUsers(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { - return managerAccountsService.listBDUsers(loginManager); + JSONObject params = new JSONObject(); + orgManager.checkOrg(loginManager,params); + return managerAccountsService.listBDUsers(params); } @ManagerMapping(value = "/roles/org_bd_user", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR, ManagerRole.ACCOUNT_MANAGER}) - public List listOrgBDUsers(@RequestParam Map map) { - return managerAccountsService.listBDUsers((JSONObject) JSON.toJSON(map)); + public List listOrgBDUsers(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager,@RequestParam Map map) { + JSONObject params = (JSONObject) JSON.toJSON(map); + return managerAccountsService.listBDUsers(params); } @ManagerMapping(value = "/{userId}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml index be9fe3d69..4f33ecef3 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml @@ -8,7 +8,9 @@ WHERE create_time >= #{begin} AND create_time <= #{end} and is_valid=1 and (approve_result is null or approve_result !=0) ]]> - and org_id=#{org_id} + and org_id=#{org_id} + and org_id in + #{org_id} GUEST:观察员
+
+ +
diff --git a/src/main/ui/static/config/managers/templates/managers.html b/src/main/ui/static/config/managers/templates/managers.html index 36fa9f08d..7908d970b 100644 --- a/src/main/ui/static/config/managers/templates/managers.html +++ b/src/main/ui/static/config/managers/templates/managers.html @@ -95,6 +95,7 @@ + Modify diff --git a/src/main/ui/static/config/managers/templates/modify.html b/src/main/ui/static/config/managers/templates/modify.html index cf678293b..5faa653ac 100644 --- a/src/main/ui/static/config/managers/templates/modify.html +++ b/src/main/ui/static/config/managers/templates/modify.html @@ -81,6 +81,9 @@ +

diff --git a/src/main/ui/static/config/managers/templates/new_manager.html b/src/main/ui/static/config/managers/templates/new_manager.html index 1fa60ccb9..da4e5fd2d 100644 --- a/src/main/ui/static/config/managers/templates/new_manager.html +++ b/src/main/ui/static/config/managers/templates/new_manager.html @@ -90,6 +90,9 @@ +

From c53ea04d2e807672cf35602906a5f37e8698ff2c Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Tue, 9 Jan 2018 16:19:41 +0800 Subject: [PATCH 22/31] fix~ --- .../manage/mappers/payment/OrderMapper.xml | 4 ++- .../manage/mappers/system/ManagerMapper.xml | 2 +- .../config/organizations/templates/orgs.html | 3 ++- .../static/payment/partner/partner-manage.js | 27 +++++++++++++++++++ .../payment/partner/templates/partners.html | 4 +-- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml index 15377e695..1fa582785 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml @@ -359,11 +359,13 @@ and t.system_transaction_id =#{search_text} + and p.org_id in + #{org_id} and o.order_id=#{order_id} and o.gateway in #{gateway} - and p.org_id=#{org_id} + and p.org_id=#{org_id} and o.create_time >= #{from} and o.create_time < #{to} and date(o.create_time)=date(#{date}) diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ManagerMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ManagerMapper.xml index 434d24c25..2ebe604e3 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ManagerMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ManagerMapper.xml @@ -3,7 +3,7 @@ + ng-options="bd.manager_id as bd.display_name group by bd.org_name for bd in bdUserSource | bdOrgSelect:params">
From a9e1d653aad4255e365be36f0c7d00210631363f Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 16:20:26 +0800 Subject: [PATCH 23/31] fix --- .../core/impls/SignInAccountServiceImpl.java | 34 +++---------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java index 4d20ee720..042a1149d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/core/impls/SignInAccountServiceImpl.java @@ -32,7 +32,10 @@ import org.thymeleaf.context.Context; import org.thymeleaf.spring4.SpringTemplateEngine; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * account service for sign in @@ -64,14 +67,11 @@ public class SignInAccountServiceImpl implements SignInAccountService, Applicati @Cacheable(value = ":login:managers:", key = "''+#accountId") public JSONObject getManager(String accountId) { JSONObject manager = managerMapper.findById(accountId); - JSONObject org = null; if (manager == null) { throw new ForbiddenException("用户不存在或已禁用"); } if (manager.getInteger("org_id") != null) { - org = orgMapper.findOne(manager.getIntValue("org_id")); - manager.put("org", org); - manager.put("parent_org_id",org.getIntValue("parent_org_id")); + manager.put("org", orgMapper.findOne(manager.getIntValue("org_id"))); } List funcs = permissionManager.listUserFunctions(manager.getIntValue("role")); List funcIds = new ArrayList<>(); @@ -90,36 +90,12 @@ public class SignInAccountServiceImpl implements SignInAccountService, Applicati modules.put(module, mod); } } - if(org != null && org.getIntValue("type")==0 && org.getString("parent_org_id") != null){ - if(modules.containsKey("org")){ - deleteOrgModule(modules,"org"); - } - if(modules.containsKey("manager_accounts")){ - deleteOrgModule(modules,"manager_accounts"); - } - } - if(org != null && org.getIntValue("type")==0 && org.getString("parent_org_id") == null){ - if(modules.containsKey("manager_accounts")){ - deleteOrgModule(modules,"manager_accounts"); - } - } - manager.put("available_func_ids", funcIds); manager.put("available_func_names", funcNames); manager.put("modules", modules.values()); manager.put("module_names", modules.keySet()); return manager; } - private void deleteOrgModule(Map modules,String module){ - Iterator iterator = modules.keySet().iterator(); - while (iterator.hasNext()) { - String key = (String) iterator.next(); - if (module.equals(key)) { - iterator.remove(); - modules.remove(key); - } - } - } @Override @Cacheable(value = ":login:clients:", key = "''+#accountId") From 49609d0f2c3147a5473be1ac46a2f4472359829b Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 16:28:59 +0800 Subject: [PATCH 24/31] fix --- src/main/ui/static/config/managers/templates/managers.html | 1 + .../static/config/sysconfigs/templates/permission_config.html | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/main/ui/static/config/managers/templates/managers.html b/src/main/ui/static/config/managers/templates/managers.html index 7908d970b..0f6de078a 100644 --- a/src/main/ui/static/config/managers/templates/managers.html +++ b/src/main/ui/static/config/managers/templates/managers.html @@ -33,6 +33,7 @@ +
diff --git a/src/main/ui/static/config/sysconfigs/templates/permission_config.html b/src/main/ui/static/config/sysconfigs/templates/permission_config.html index 8bff132a6..e4dfa6819 100644 --- a/src/main/ui/static/config/sysconfigs/templates/permission_config.html +++ b/src/main/ui/static/config/sysconfigs/templates/permission_config.html @@ -67,6 +67,10 @@ GUEST + + + Org Manager +
From c964f9364964a5c0e3f68c3624650dbe20583b6e Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Tue, 9 Jan 2018 17:45:06 +0800 Subject: [PATCH 25/31] fix~ --- src/db/modify.sql | 1 + .../organizations/core/impls/OrgManagerImpl.java | 13 ------------- .../organizations/web/OrgManageController.java | 6 +++--- .../core/impls/ManagerAccountServiceImpl.java | 15 --------------- .../signin/web/ManagerAccountsController.java | 8 ++++---- .../organizations/templates/org_detail.html | 2 ++ .../payment/partner/templates/partners.html | 2 +- 7 files changed, 11 insertions(+), 36 deletions(-) diff --git a/src/db/modify.sql b/src/db/modify.sql index b5502c9fc..1eb8d6787 100644 --- a/src/db/modify.sql +++ b/src/db/modify.sql @@ -138,4 +138,5 @@ ALTER TABLE sys_clients_customers ADD COLUMN channel varchar(15) not NULL ; ALTER TABLE sys_clients_customers ADD COLUMN last_payment_time datetime DEFAULT NULL COMMENT '最后一次付款时间'; +ALTER TABLE sys_org ADD COLUMN parent_org_id int(11) DEFAULT NULL; diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java index 90ddc9abd..658f5f7fa 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/core/impls/OrgManagerImpl.java @@ -68,7 +68,6 @@ public class OrgManagerImpl implements OrgManager { public JSONObject listAllOrgs(OrgInfo orgInfo,JSONObject manager) { /* PageBounds sort = new PageBounds(Order.formString("sort_no.asc")); return orgMapper.listsOrgWithDetail(sort);*/ - checkBdRole(manager); JSONObject params = orgInfo.toJsonParam(); PageList listOrg = orgMapper.listOrgWithPages(params,new PageBounds(orgInfo.getPage(),orgInfo.getLimit(),Order.formString("sort_no.asc"))); return PageListUtils.buildPageListResult(listOrg); @@ -76,7 +75,6 @@ public class OrgManagerImpl implements OrgManager { @Override public JSONObject getOrgDetail(int orgId,JSONObject manager) { - checkBdRole(manager); return orgMapper.findOne(orgId); } @@ -124,17 +122,6 @@ public class OrgManagerImpl implements OrgManager { return listAllOrgs; } - private void checkBdRole(JSONObject manager){ - if(ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))){ - if(manager.getString("org_id") != null){ - JSONObject org = orgMapper.findOne(manager.getIntValue("org_id")); - if(org != null && org.getIntValue("type") == 0 && org.getString("parent_org_id") != null){ - throw new BadRequestException("Invalid Role"); - } - } - } - } - @Override public JSONObject checkOrg(JSONObject manager, JSONObject params){ if (params.getString("org_id")==null){ diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java b/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java index 28f4698bd..f86ff0da7 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/web/OrgManageController.java @@ -49,13 +49,13 @@ public class OrgManageController { return orgManager.listAllOrg(); } - @ManagerMapping(method = RequestMethod.POST, role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) + @ManagerMapping(method = RequestMethod.POST, role = {ManagerRole.ADMIN}) public JSONObject saveOrg(@RequestBody @Valid OrgInfo org, Errors errors) { HttpUtils.handleValidErrors(errors); return orgManager.saveNewOrg(org); } - @ManagerMapping(value = "/{orgId}", method = RequestMethod.GET, role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) + @ManagerMapping(value = "/{orgId}", method = RequestMethod.GET, role = {ManagerRole.ADMIN}) public JSONObject getOrgDetail(@PathVariable int orgId,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { return orgManager.getOrgDetail(orgId,manager); } @@ -66,7 +66,7 @@ public class OrgManageController { orgManager.updateOrg(orgId, org); } - @ManagerMapping(value = "/{orgId}/enable_change_rate",method = RequestMethod.PUT,role = {ManagerRole.ADMIN,ManagerRole.BD_USER}) + @ManagerMapping(value = "/{orgId}/enable_change_rate",method = RequestMethod.PUT,role = {ManagerRole.ADMIN}) public void switchEnableChangeRate(@PathVariable int orgId, @RequestBody JSONObject enable){ boolean enabled = enable.getBooleanValue("enabled"); orgManager.switchPermission(orgId,"rate_editable",enabled); 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 82413d448..adf5d191f 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 @@ -31,7 +31,6 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public List listManagers(JSONObject loginManager) { - checkBdRole(loginManager); JSONObject params = new JSONObject(); if (loginManager.getInteger("org_id") != null) { params.put("org_id", loginManager.getIntValue("org_id")); @@ -58,7 +57,6 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void saveManager(ManagerInfo manager, JSONObject loginManager) { - checkBdRole(loginManager); if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))) { if (manager.isAdmin() || manager.isFinacial() || manager.isOperator() || manager.isServant() || manager.isSitemanager() || manager.isDeveloper()) { throw new BadRequestException("Invalid Role"); @@ -74,7 +72,6 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void modify(String userId, ManagerInfo manager, JSONObject loginManager) { - checkBdRole(loginManager); JSONObject managerFromDb = managerMapper.findById(userId); if (managerFromDb == null) { throw new NotFoundException("manager not exists or invalid"); @@ -95,7 +92,6 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void disable(String userId, JSONObject loginManager) { - checkBdRole(loginManager); JSONObject manager = managerMapper.findById(userId); if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))){ if (manager.getIntValue("org_id") != loginManager.getIntValue("org_id")) { @@ -127,15 +123,4 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { return financialBDConfigMapper.getBdConfig(bd_id); } - private void checkBdRole(JSONObject loginManager){ - if(ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))){ - JSONObject manager = managerMapper.findById(loginManager.getString("manager_id")); - if(manager.getString("org_id") != null){ - JSONObject org = orgMapper.findOne(manager.getIntValue("org_id")); - if(org != null && org.getIntValue("type") == 0 && org.getString("parent_org_id") != null){ - throw new BadRequestException("Invalid Role"); - } - } - } - } } diff --git a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java index b93a106bf..06c607702 100644 --- a/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java +++ b/src/main/java/au/com/royalpay/payment/manage/signin/web/ManagerAccountsController.java @@ -36,14 +36,14 @@ public class ManagerAccountsController { // } @RequestMapping(method = RequestMethod.GET) - @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) + @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) public List listManagerss(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager, @RequestParam Map map) { loginManager.putAll(map); return managerAccountsService.listManagers(loginManager); } @RequestMapping(method = RequestMethod.POST) - @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) + @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) public void saveManager(@RequestBody @Valid ManagerInfo manager, Errors errors, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { HttpUtils.handleValidErrors(errors); managerAccountsService.saveManager(manager, loginManager); @@ -61,12 +61,12 @@ public class ManagerAccountsController { return managerAccountsService.listBDUsers(params); } - @ManagerMapping(value = "/{userId}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) + @ManagerMapping(value = "/{userId}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) public void modify(@PathVariable String userId, @RequestBody ManagerInfo manager, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { managerAccountsService.modify(userId, manager, loginManager); } - @ManagerMapping(value = "/{userId}", method = RequestMethod.DELETE, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER,ManagerRole.BD_USER}) + @ManagerMapping(value = "/{userId}", method = RequestMethod.DELETE, role = {ManagerRole.ADMIN, ManagerRole.ACCOUNT_MANAGER}) public void disableUser(@PathVariable String userId, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject loginManager) { managerAccountsService.disable(userId, loginManager); } diff --git a/src/main/ui/static/config/organizations/templates/org_detail.html b/src/main/ui/static/config/organizations/templates/org_detail.html index cd634a020..c23704ac5 100644 --- a/src/main/ui/static/config/organizations/templates/org_detail.html +++ b/src/main/ui/static/config/organizations/templates/org_detail.html @@ -192,6 +192,7 @@ +
@@ -237,6 +238,7 @@ + Modify diff --git a/src/main/ui/static/payment/partner/templates/partners.html b/src/main/ui/static/payment/partner/templates/partners.html index 4b38b57b2..6be647567 100644 --- a/src/main/ui/static/payment/partner/templates/partners.html +++ b/src/main/ui/static/payment/partner/templates/partners.html @@ -148,7 +148,7 @@
-
+
From bf1770d55238d1f5b833a2981797054ab00f30bf Mon Sep 17 00:00:00 2001 From: yuan <1551130722@qq.com> Date: Tue, 9 Jan 2018 18:03:42 +0800 Subject: [PATCH 26/31] fix~ --- .../manage/signin/core/impls/ManagerAccountServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 adf5d191f..9708e6b27 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 @@ -57,7 +57,7 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void saveManager(ManagerInfo manager, JSONObject loginManager) { - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))) { + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))) { if (manager.isAdmin() || manager.isFinacial() || manager.isOperator() || manager.isServant() || manager.isSitemanager() || manager.isDeveloper()) { throw new BadRequestException("Invalid Role"); } @@ -77,7 +77,7 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { throw new NotFoundException("manager not exists or invalid"); } JSONObject obj = manager.accountJson(false); - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))) { + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))) { if (managerFromDb.getIntValue("org_id") != loginManager.getIntValue("org_id")) { throw new BadRequestException("You cannot modify accounts belong to other organizations"); } @@ -93,7 +93,7 @@ public class ManagerAccountServiceImpl implements ManagerAccountsService { @Override public void disable(String userId, JSONObject loginManager) { JSONObject manager = managerMapper.findById(userId); - if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role")) && !ManagerRole.BD_USER.hasRole(loginManager.getIntValue("role"))){ + if (!ManagerRole.ADMIN.hasRole(loginManager.getIntValue("role"))){ if (manager.getIntValue("org_id") != loginManager.getIntValue("org_id")) { throw new BadRequestException("You cannot disable accounts belong to other organizations"); } From fc63e8428b6f716d077ce5116d1d5fb4aa01923d Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 19:19:05 +0800 Subject: [PATCH 27/31] fix --- .../merchants/core/impls/ClientManagerImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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 008a48d03..a0051133a 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 @@ -214,7 +214,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (client == null) { throw new InvalidShortIdException(); } - checkOrgPermission(manager, client); + checkClientOrg(manager, client); client.put("show_all_permission", true); int role = manager != null ? manager.getIntValue("role") : 0; if (manager != null) { @@ -274,6 +274,19 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return client; } + private void checkClientOrg(JSONObject manager, JSONObject client) { + if (manager.getInteger("org_id")!=null){ + JSONObject org = orgMapper.findOne(client.getIntValue("org_id")); + if (org.getInteger("parent_org_id")!=null){ + if (org.getIntValue("parent_org_id")!=manager.getIntValue("org_id")){ + throw new ForbiddenException("The org of client is not belong to you"); + } + }else { + checkOrgPermission(manager, client); + } + } + } + @Override public JSONObject getClientDetailById(int clientId) { JSONObject client = getClientInfo(clientId); @@ -1388,7 +1401,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (client == null) { throw new InvalidShortIdException(); } - checkOrgPermission(manager, client); + checkClientOrg(manager,client); JSONObject params = new JSONObject(); params.put("client_id", client.getIntValue("client_id")); params.put("is_valid", "1"); From ef828b55e565d43bf97e16756857d10a790aa741 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 9 Jan 2018 19:38:30 +0800 Subject: [PATCH 28/31] jpush app key --- src/main/resources/application.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 548187901..492fa23b0 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -93,4 +93,7 @@ app.foreign-currency=AUD app.ofei.md5-key=Khjx6wejblaJzmG0JBWFlPFKAUxhFIXQ app.ofei.pwd=aomi@8888 -app.ofei.sp-code=A1407200 \ No newline at end of file +app.ofei.sp-code=A1407200 + +android.message.secret=2b96d9bc6169c9554218aab1 +android.message.appkey=3f33a10d0a7d4ac94d8f2431 \ No newline at end of file From f99cacdf7faf8b195395c968a943ace765465bdd Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 9 Jan 2018 19:45:09 +0800 Subject: [PATCH 29/31] update --- .../core/impls/RetailAppServiceImp.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java index 657809ef0..810aaa685 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailAppServiceImp.java @@ -715,6 +715,23 @@ public class RetailAppServiceImp implements RetailAppService { LocaleSupport.localeMessage("app.message.title.daily_notice"), trade_date + ": 总交易额 " + PlatformEnvironment.getEnv().getForeignCurrency() + total_amount + ", 订单数:" + total_orders + ", 付款人数:" + customers, token, tradeInfo, type); + AppMsgSender sender = senderMap.get(devToken.getString("client_type")); + if (token == null || sender == null) { + return; + } + JSONObject managerMsg = new JSONObject(); + managerMsg.put("title", LocaleSupport.localeMessage("app.message.title.daily_notice")); + managerMsg.put("body", trade_date + ": 总交易额 " + + PlatformEnvironment.getEnv().getForeignCurrency() + total_amount + ", 订单数:" + total_orders + ", 付款人数:" + customers); + managerMsg.put("type", type); + managerMsg.put("data", tradeInfo); + managerMsg.put("msgType", "daily_notice"); + AppMessage appMessage = new AppManagerMessageBuilder(managerMsg).buildMessage(); + sender.sendMessage(appMessage, devToken); + + + + log.put("status", 2); appMessageLogMapper.update(log); } catch (Exception e) { From ec85f30c98abbdd97c0a839aa78d149e58bc8798 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Tue, 9 Jan 2018 19:50:34 +0800 Subject: [PATCH 30/31] update log --- .../merchants/core/impls/ClientManagerImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 b43fe4fd2..a0051133a 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 @@ -2788,7 +2788,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid MpWechatApi paymentApi = mpWechatApiProvider.getNewPaymentApi(); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,绿色通道开通完成" + e.getMessage()); + logger.error("Wechat Message Error,绿色通道开通完成" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,绿色通道开通完成,openid=" + wxopenid)); } } @@ -2807,7 +2807,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "制作合同申请", "BD申请制作" + short_name + "的合同"); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,open_status=1" + e.getMessage()); + logger.error("Wechat Message Error,open_status=1" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=1,openid=" + wxopenid)); } } @@ -2825,7 +2825,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid "Compliance", "合规材料", "上传完整合规材料,商户:" + short_name); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,open_status=3" + e.getMessage()); + logger.error("Wechat Message Error,open_status=3" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=3,openid=" + wxopenid)); } @@ -2845,7 +2845,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "审核材料", "BD已提交合规材料,等待审核"); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,open_status=1" + e.getMessage()); + logger.error("Wechat Message Error,open_status=1" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=1,openid=" + wxopenid)); } } @@ -2862,7 +2862,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid MpWechatApi paymentApi = mpWechatApiProvider.getNewPaymentApi(); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,open_status=5" + e.getMessage()); + logger.error("Wechat Message Error,open_status=5" + e.getMessage()); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=5,openid=" + wxopenid)); } } @@ -2881,7 +2881,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid bd_user_name, "绿色通道申请", "BD已提交绿色通道申请,商户:" + short_name); paymentApi.sendTemplateMessage(msg); } catch (WechatException e) { - logger.error("Wechat JpushMessage Error,open_status=10"); + logger.error("Wechat Message Error,open_status=10"); publisher.publishEvent(new WechatExceptionEvent(this, e, "Audit,open_status=10,openid=" + wxopenid)); } } From 8850543d3074382593fe0f7a1cb3679f055e0497 Mon Sep 17 00:00:00 2001 From: "eason.qian" Date: Tue, 9 Jan 2018 19:51:47 +0800 Subject: [PATCH 31/31] fix --- src/main/resources/application.properties | 2 +- .../analysis/monitoring/templates/analysis_monitoring.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8a565185e..40af310fa 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -77,7 +77,7 @@ app.settlement.email-cc=leo.huang@royalpay.com.au app.mpsupport.appid=royalpay app.mpsupport.auth_code=W3xucYnbmbE6rZDmA2V9BsKmagTrVIny -app.run-tasks=true +app.run-tasks=false app.allow-clearing-generation=false app.mail.appid=1 diff --git a/src/main/ui/static/analysis/monitoring/templates/analysis_monitoring.html b/src/main/ui/static/analysis/monitoring/templates/analysis_monitoring.html index 508155397..84efe7cf9 100644 --- a/src/main/ui/static/analysis/monitoring/templates/analysis_monitoring.html +++ b/src/main/ui/static/analysis/monitoring/templates/analysis_monitoring.html @@ -8,7 +8,7 @@
  • 交易监控|Trade Monitor
  • -
  • +
  • 警告监控|Risk Monitor
  • @@ -16,7 +16,7 @@ 风控配置|Cheat Monitor -
  • +
  • 欠款|Pre Refund