diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/web/RetailAppController.java b/src/main/java/au/com/royalpay/payment/manage/appclient/web/RetailAppController.java index 5e1541f9d..0cc1def19 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/web/RetailAppController.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/web/RetailAppController.java @@ -300,8 +300,11 @@ public class RetailAppController { return billService.queryBills(device.getIntValue("client_id"),queryBillBean); } @RequestMapping(value = "/bills",method = RequestMethod.PUT) - public void addBill(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device,@RequestBody NewBillBean newBillBean){ - billService.save(device.getIntValue("client_id"),newBillBean); + public JSONObject addBill(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device,@RequestBody NewBillBean newBillBean){ + device.put("client_id",9); + JSONObject result = billService.save(device.getIntValue("client_id"),newBillBean); + result.remove("bill"); + return result; } @RequestMapping(value = "/bills/{bill_id}/close",method = RequestMethod.POST) public void closeBill(@PathVariable("bill_id")String bill_id,@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device){ diff --git a/src/main/java/au/com/royalpay/payment/manage/bill/bean/NewBillBean.java b/src/main/java/au/com/royalpay/payment/manage/bill/bean/NewBillBean.java index 6479be9a9..cdec27ee2 100644 --- a/src/main/java/au/com/royalpay/payment/manage/bill/bean/NewBillBean.java +++ b/src/main/java/au/com/royalpay/payment/manage/bill/bean/NewBillBean.java @@ -7,21 +7,20 @@ import java.math.BigDecimal; */ public class NewBillBean { - private BigDecimal price; + private BigDecimal amount; private String currency; private String remark; - private int ineffective_hour; + private String expire; - - public String getRemark() { - return remark; + public BigDecimal getAmount() { + return amount; } - public void setRemark(String remark) { - this.remark = remark; + public void setAmount(BigDecimal amount) { + this.amount = amount; } public String getCurrency() { @@ -32,19 +31,19 @@ public class NewBillBean { this.currency = currency; } - public BigDecimal getPrice() { - return price; + public String getRemark() { + return remark; } - public void setPrice(BigDecimal price) { - this.price = price; + public void setRemark(String remark) { + this.remark = remark; } - public int getIneffective_hour() { - return ineffective_hour; + public String getExpire() { + return expire; } - public void setIneffective_hour(int ineffective_hour) { - this.ineffective_hour = ineffective_hour; + public void setExpire(String expire) { + this.expire = expire; } } diff --git a/src/main/java/au/com/royalpay/payment/manage/bill/core/BillService.java b/src/main/java/au/com/royalpay/payment/manage/bill/core/BillService.java index 45e684416..7cd60a836 100644 --- a/src/main/java/au/com/royalpay/payment/manage/bill/core/BillService.java +++ b/src/main/java/au/com/royalpay/payment/manage/bill/core/BillService.java @@ -16,7 +16,7 @@ public interface BillService { void removeBill(String billId); - void save(int client_id,NewBillBean newBillBean); + JSONObject save(int client_id,NewBillBean newBillBean); JSONObject queryBills(int client_id, QueryBillBean queryBillBean); diff --git a/src/main/java/au/com/royalpay/payment/manage/bill/core/impl/BillServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/bill/core/impl/BillServiceImpl.java index 8a9320b56..528eea653 100644 --- a/src/main/java/au/com/royalpay/payment/manage/bill/core/impl/BillServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/bill/core/impl/BillServiceImpl.java @@ -15,7 +15,11 @@ import au.com.royalpay.payment.manage.bill.bean.NewBillBean; import au.com.royalpay.payment.manage.bill.bean.QueryBillBean; import au.com.royalpay.payment.manage.bill.core.BillService; import au.com.royalpay.payment.manage.mappers.bill.BillMapper; +import au.com.royalpay.payment.manage.merchants.core.ClientManager; +import au.com.royalpay.payment.tools.env.PlatformEnvironment; import au.com.royalpay.payment.tools.exceptions.BadRequestException; +import au.com.royalpay.payment.tools.exceptions.NotFoundException; +import au.com.royalpay.payment.tools.exceptions.ServerErrorException; import au.com.royalpay.payment.tools.utils.PageListUtils; /** @@ -25,24 +29,39 @@ import au.com.royalpay.payment.tools.utils.PageListUtils; public class BillServiceImpl implements BillService { @Resource private BillMapper billMapper; + @Resource + private ClientManager clientManager; @Override - public void save(int client_id,NewBillBean newBillBean) { + public JSONObject save(int client_id, NewBillBean newBillBean) { + JSONObject client = clientManager.getClientInfo(client_id); +// if(client==null){ +// throw new NotFoundException("client info not found"); +// } Date now = new Date(); JSONObject record = new JSONObject(); - record.put("client_id",client_id); - record.put("price",newBillBean.getPrice()); - record.put("currency",newBillBean.getCurrency()); - record.put("remark",newBillBean.getRemark()); + record.put("client_id", client_id); + record.put("price", newBillBean.getAmount()); + record.put("currency", newBillBean.getCurrency()); + record.put("remark", newBillBean.getRemark()); record.put("create_time", now); - record.put("cancle_time",DateUtils.addHours(now,newBillBean.getIneffective_hour())); + record.put("cancle_time", addExpire(now, newBillBean.getExpire())); record.put("status", 1); billMapper.save(record); + JSONObject result = new JSONObject(); + result.put("partner_name",client.getString("short_name")); + result.put("partner_code",client.getString("client_moniker")); + result.put("full_name",client.getString("company_name")); + result.put("code_url", PlatformEnvironment.getEnv().concatUrl("/bills/payment/orders/"+record.getString("blll_id"))); + result.put("bill",record); + return result; } @Override public JSONObject queryBills(int client_id, QueryBillBean queryBillBean) { - PageList list = billMapper.listWithOrderAnalysis(queryBillBean.toParams(), new PageBounds(queryBillBean.getPage(), queryBillBean.getLimit())); + JSONObject params = queryBillBean.toParams(); + params.put("client_id", client_id); + PageList list = billMapper.listWithOrderAnalysis(params, new PageBounds(queryBillBean.getPage(), queryBillBean.getLimit())); return PageListUtils.buildPageListResult(list); } @@ -56,7 +75,7 @@ public class BillServiceImpl implements BillService { } @Override - public void updateBillStatus(String billId, String status,int client_id) { + public void updateBillStatus(String billId, String status, int client_id) { JSONObject bill = billMapper.findOne(billId); if (bill.getIntValue("client_id") != client_id) { throw new BadRequestException("You have no right to check this bill"); @@ -71,4 +90,20 @@ public class BillServiceImpl implements BillService { public void removeBill(String billId) { billMapper.delete(billId); } + + private Date addExpire(Date now, String expire) { + if (Integer.valueOf(expire.substring(0, expire.length() - 1)) == 0) { + return null; + } + String unit = expire.substring(expire.length() - 1, expire.length()); + switch (unit) { + case "s": + return DateUtils.addSeconds(now, Integer.valueOf(expire.substring(0, expire.length() - 1))); + case "h": + return DateUtils.addHours(now, Integer.valueOf(expire.substring(0, expire.length() - 1))); + case "d": + return DateUtils.addDays(now, Integer.valueOf(expire.substring(0, expire.length() - 1))); + } + throw new ServerErrorException("日期单位不正确"); + } } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/bill/BillMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/bill/BillMapper.xml index 18d31e691..efa7dd02d 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/bill/BillMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/bill/BillMapper.xml @@ -3,10 +3,12 @@