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 39aaaa78c..8b946e3b1 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 @@ -53,6 +53,7 @@ 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.commons.lang3.ArrayUtils; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -1339,15 +1340,33 @@ public class RetailAppServiceImp implements RetailAppService { @Override public JSONObject getCheckClientInfo(JSONObject device) { JSONObject result = clientContractService.getClientContractExpire(device.getIntValue("client_id")); - JSONObject account = clientAccountMapper.findById(device.getString("account_id")); - if(PartnerRole.getRole(account.getIntValue("role")) == PartnerRole.CASHIER){ - result.put("is_ordinary",true); + JSONObject config = sysConfigManager.getSysConfig(); + boolean expire = result.getBoolean("rate_expire"); + boolean waring = result.getBoolean("rate_waring"); + if (PartnerRole.getRole(device.getIntValue("role")) == PartnerRole.CASHIER) { + result.put("is_ordinary", true); + if (!expire && waring) { + String[] key = { result.getString("expire_days") }; + result.put("contract_info", editContractOrdinaryWaring(key, config.getString("sys_contract_ordinary_waring"))); + } + if (expire) { + result.put("contract_info", config.getString("sys_contract_ordinary_info")); + } + return result; + } else { + result.put("contract_info", config.getString("sys_contract_info")); + result.put("is_ordinary", false); + if (!expire && waring) { + String[] key = { result.getString("expire_days") }; + result.put("contract_info", editContractOrdinaryWaring(key, config.getString("sys_contract_waring"))); + } + if (expire) { + result.put("contract_info", config.getString("sys_contract_info")); + } + JSONObject file = clientContractService.getOrGenerateSourceAgreement(device.getIntValue("client_id")); + result.put("file_url", file.getString("file_value")); return result; } - JSONObject file = clientContractService.getOrGenerateSourceAgreement(device.getIntValue("client_id")); - result.put("file_url", file.getString("file_value")); - result.put("contract_info",sysConfigManager.getSysConfig().getString("sys_contract_info")); - return result; } private static boolean mathchLetterorNum(String str) { @@ -1355,4 +1374,13 @@ public class RetailAppServiceImp implements RetailAppService { return str.matches(regex); } + private String editContractOrdinaryWaring(String[] key, String sourceStr) { + if (StringUtils.isEmpty(sourceStr) || ArrayUtils.isEmpty(key)) { + return ""; + } + for (int i = 0; i < key.length; i++) { + sourceStr = sourceStr.replace("{" + i + "}", key[i]); + } + return sourceStr; + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/system/core/impl/ClientContractServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/ClientContractServiceImpl.java index 41ab4124c..e4a59299d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/system/core/impl/ClientContractServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/system/core/impl/ClientContractServiceImpl.java @@ -47,14 +47,9 @@ public class ClientContractServiceImpl implements ClientContractService { throw new NotFoundException("merchant not found"); } JSONObject expireInfo = getClientContractExpire(client_id); - if(expireInfo.getBoolean("rate_waring")){ - List files = clientFilesMapper.findFileByClientAndType(client_id, "source_agree_file"); - return files.get(0); - } - JSONObject contract = clientsContractMapper.findByClientId(client_id); Date now = new Date(); - if (contract == null || now.compareTo(contract.getDate("expiry_date")) > 0 ) { + if (contract == null || now.compareTo(contract.getDate("expiry_date")) > 0) { try { clientManager.getAggregateAgreeFile(client.getString("client_moniker"), null); } catch (Exception e) { @@ -90,6 +85,10 @@ public class ClientContractServiceImpl implements ClientContractService { @Override @Transactional public void confirmSourceAgreement(int client_id) { + JSONObject client = clientManager.getClientInfo(client_id); + if (client == null) { + throw new NotFoundException("merchant not found"); + } JSONObject rateExpire = getClientContractExpire(client_id); boolean expire = rateExpire.getBoolean("rate_expire"); boolean waring = rateExpire.getBoolean("rate_waring"); @@ -109,6 +108,7 @@ public class ClientContractServiceImpl implements ClientContractService { p.remove("client_rate_id"); p.put("create_time",now); p.put("active_time",now); + p.put("update_time",now); p.put("expiry_time",DateUtils.addYears(now,1)); clientRateMapper.saveRate(p); }); @@ -117,12 +117,13 @@ public class ClientContractServiceImpl implements ClientContractService { rateInfo.forEach((p)->{ p.remove("client_rate_id"); p.put("create_time",now); + p.put("update_time",now); p.put("active_time",DateUtils.addDays(p.getDate("active_time"),1)); - p.put("expiry_time",DateUtils.addYears(p.getDate("active_time"),1)); + p.put("expiry_time",DateUtils.addYears(p.getDate("expiry_time"),1)); clientRateMapper.saveRate(p); }); } - + clientManager.setClientTaxInSurcharge(client.getString("client_moniker"),true); } @Override