diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/core/CouponValidateService.java b/src/main/java/au/com/royalpay/payment/manage/customers/core/CouponValidateService.java index 12daea020..5756026df 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/core/CouponValidateService.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/core/CouponValidateService.java @@ -2,6 +2,8 @@ package au.com.royalpay.payment.manage.customers.core; import com.alibaba.fastjson.JSONObject; +import java.util.List; + /** * Created by yuan on 2017/10/10. */ @@ -21,4 +23,6 @@ public interface CouponValidateService { JSONObject ctripCouponInfo(String coupon_log_id,int client_id,boolean is_expiry); JSONObject ctripCouponLogNotice(String coupon_log_id,String order_id,String open_id,String status); + + JSONObject getHalloweenOrderInfo(String customerId, String transactionDate); } diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/CouponValidateServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/CouponValidateServiceImpl.java index 4de0054a5..4bd165c8f 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/CouponValidateServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/CouponValidateServiceImpl.java @@ -2,6 +2,8 @@ package au.com.royalpay.payment.manage.customers.core.impls; import au.com.royalpay.payment.manage.customers.core.CouponValidateService; import au.com.royalpay.payment.manage.mappers.customers.CustomerMembershipMapper; +import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; +import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.NotFoundException; @@ -51,6 +53,12 @@ public class CouponValidateServiceImpl implements CouponValidateService { @Resource private ClientManager clientManager; + @Resource + private OrderMapper orderMapper; + + @Resource + private CustomerMapper customerMapper; + @Override public JSONObject getCoupon(JSONObject partner,int page,int limit) { String timestamp = System.currentTimeMillis() + ""; @@ -217,6 +225,45 @@ public class CouponValidateServiceImpl implements CouponValidateService { return null; } + @Override + public JSONObject getHalloweenOrderInfo(String customerId, String transactionDate) { + + JSONObject param = new JSONObject(); + param.put("customer_id", customerId); + param.put("transaction_date", transactionDate); + param.put("status", 5); + List orderList = orderMapper.listHalloweenActOrder(param); + if (orderList != null && orderList.size() > 0) { + JSONObject result = new JSONObject(); + result.put("orderList", orderList); + for (JSONObject order : orderList) { + String redpackOpenId = getRedpackId(order); + if (redpackOpenId != null) { + result.put("redpackOpenId", redpackOpenId); + break; + } + } + } + return null; + } + + // 获取该笔订单的redpackOpenId + private String getRedpackId(JSONObject order) { + String redpackOpenId = null; + String channel = order.getString("channel"); + if ("Wechat".equals(channel)) { + JSONObject customerRelation = customerMapper.findCustomerByOpenId(order.getString("customer_id")); + if (customerRelation == null) { + customerRelation = customerMapper.findCustomerGlobalpayByOpenId(order.getString("customer_id")); + } + redpackOpenId = customerRelation.getString("redpack_openid"); + if (customerRelation.getString("kanga_openid") == null) { + redpackOpenId = null; + } + } + return redpackOpenId; + } + private String signUrl(UriComponentsBuilder uriComponentsBuilder) { String timestamp = System.currentTimeMillis() + ""; String base = CUSTOMER_APP_ID + timestamp + CUSTOMER_AUTH_CODE; diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/web/CouponValidateController.java b/src/main/java/au/com/royalpay/payment/manage/customers/web/CouponValidateController.java index d4eeece61..d3399b828 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/web/CouponValidateController.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/web/CouponValidateController.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * Created by yuan on 2017/10/10. @@ -40,4 +41,17 @@ public class CouponValidateController { throw new BadRequestException("卡券核销失败"); } } + + /** + * 万圣节活动当天订单信息 + * @param customerId + * @param actDate + * @return + */ + @GetMapping(value = "/payment/holloween") + @ResponseBody + public JSONObject getHalloweenActOrderInfo(@RequestParam("customer_id") String customerId, + @RequestParam("act_date") String actDate) { + return couponVerificationService.getHalloweenOrderInfo(customerId, actDate); + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java index 085df36ac..49ccef8e9 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java @@ -81,4 +81,7 @@ public interface OrderMapper { PageList listTransactionsForApp(JSONObject params, PageBounds pageBounds); JSONObject findOrderById(@Param("order_id") String orderId); + + @AutoSql(type = SqlType.SELECT) + List listHalloweenActOrder(JSONObject param); }