From 4c6fbed61c8f82bfaea43f151123dd3d4118eb9a Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 20 Mar 2018 20:37:34 +0800 Subject: [PATCH] client --- .../core/impls/ManualSettleSupportImpl.java | 8 ++-- .../web/ClientManualSettleController.java | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/settlement/web/ClientManualSettleController.java diff --git a/src/main/java/au/com/royalpay/payment/manage/settlement/core/impls/ManualSettleSupportImpl.java b/src/main/java/au/com/royalpay/payment/manage/settlement/core/impls/ManualSettleSupportImpl.java index 1901358ad..dc9a51fe5 100644 --- a/src/main/java/au/com/royalpay/payment/manage/settlement/core/impls/ManualSettleSupportImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/settlement/core/impls/ManualSettleSupportImpl.java @@ -38,10 +38,6 @@ public class ManualSettleSupportImpl implements ManualSettleSupport { public JSONObject requestManualSettle(Date settleTo, String accountId) { JSONObject account = clientAccountMapper.findById(accountId); int clientId = account.getIntValue("client_id"); - JSONObject client = merchantInfoProvider.getClientInfo(clientId); - if (!client.getBooleanValue("manual_settle")) { - throw new ForbiddenException("Manual Settlement Not Enabled"); - } if (DateUtils.isSameDay(new Date(), settleTo)) { throw new BadRequestException("Cannot settle today's transactions"); } @@ -62,6 +58,10 @@ public class ManualSettleSupportImpl implements ManualSettleSupport { @Override public JSONObject findCurrentSettle(int clientId, boolean includingUnsettleData) { + JSONObject client = merchantInfoProvider.getClientInfo(clientId); + if (!client.getBooleanValue("manual_settle")) { + throw new ForbiddenException("Manual Settlement Not Enabled"); + } JSONObject todayTask = taskManualSettleMapper.findTodayTask(clientId); if (todayTask != null) { todayTask.put("settle_to", DateFormatUtils.format(todayTask.getDate("settle_to"), "yyyy-MM-dd")); diff --git a/src/main/java/au/com/royalpay/payment/manage/settlement/web/ClientManualSettleController.java b/src/main/java/au/com/royalpay/payment/manage/settlement/web/ClientManualSettleController.java new file mode 100644 index 000000000..c2e984976 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/settlement/web/ClientManualSettleController.java @@ -0,0 +1,43 @@ +package au.com.royalpay.payment.manage.settlement.web; + +import au.com.royalpay.payment.core.exceptions.ParamInvalidException; +import au.com.royalpay.payment.manage.permission.manager.PartnerMapping; +import au.com.royalpay.payment.manage.settlement.core.ManualSettleSupport; +import au.com.royalpay.payment.tools.CommonConsts; +import au.com.royalpay.payment.tools.permission.enums.PartnerRole; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.time.DateUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.text.ParseException; +import java.util.Date; + +/** + * Create by yixian at 2018-03-20 20:30 + */ +@RequestMapping("/client/manual_settle") +@RestController +public class ClientManualSettleController { + @Resource + private ManualSettleSupport manualSettleSupport; + + @PartnerMapping(value = "/today", method = RequestMethod.GET, roles = {PartnerRole.ADMIN}) + public JSONObject checkRequestInToday(@ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account) { + return manualSettleSupport.findCurrentSettle(account.getIntValue("client_id"), true); + } + + @PartnerMapping(value = "/today", method = RequestMethod.PUT, roles = {PartnerRole.ADMIN}) + public JSONObject requestManualSettle(@ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account, @RequestBody JSONObject data) { + String settleToStr = data.getString("settle_to"); + if (settleToStr == null) { + throw new ParamInvalidException("settle_to", "error.payment.valid.param_missing"); + } + try { + Date setteTo = DateUtils.parseDate(settleToStr, "yyyy-MM-dd"); + return manualSettleSupport.requestManualSettle(setteTo, account.getString("account_id")); + } catch (ParseException e) { + throw new ParamInvalidException("settle_to", "error.payment.valid.invalid_time"); + } + } +}