From a5ca5655a06127865607cf185f59bce7f307f8c7 Mon Sep 17 00:00:00 2001 From: wangning <164851225@qq.com> Date: Fri, 12 Jan 2018 10:45:14 +0800 Subject: [PATCH] update --- .../impls/CustomerImpressionServiceImpl.java | 93 ++++++++++--------- .../manage/mappers/payment/OrderMapper.xml | 6 -- .../impls/CustomerImpressionImplTest.java | 2 +- 3 files changed, 49 insertions(+), 52 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionServiceImpl.java index 6bcb524a6..a7dcc4f49 100644 --- a/src/main/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/apps/core/impls/CustomerImpressionServiceImpl.java @@ -24,6 +24,8 @@ import au.com.royalpay.payment.manage.apps.bean.CustomerImpressionQuery; import au.com.royalpay.payment.manage.apps.core.CustomerImpressionService; import au.com.royalpay.payment.manage.mappers.client.ClientCustomersMapper; import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; +import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; +import au.com.royalpay.payment.manage.mappers.system.CustomerRelationAlipayMapper; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.NotFoundException; import au.com.royalpay.payment.tools.utils.PageListUtils; @@ -39,6 +41,10 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService private OrderMapper orderMapper; @Resource private LookupService lookupService; + @Resource + private CustomerRelationAlipayMapper customerRelationAlipayMapper; + @Resource + private CustomerMapper customerMapper; @Override public JSONObject listPageble(CustomerImpressionQuery customerImpressionQuery) { @@ -50,20 +56,20 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService @Override public JSONObject findOne(int client_id, String customer_id) { JSONObject customer = clientCustomersMapper.getClientCustomerWithNull(client_id, customer_id); - if(customer==null){ + if (customer == null) { throw new BadRequestException("customer info not exist"); } JSONObject params = new JSONObject(); params.put("customer_id", customer_id); - params.put("include_success_status",4); - List paymentInfos = new ArrayList<>(); + params.put("include_success_status", 4); + List paymentInfos = new ArrayList<>(); PageList ordersLast = orderMapper.listOrderByCustomer(params, new PageBounds(1, 1, Order.formString("create_time.desc"))); if (!CollectionUtils.isEmpty(ordersLast)) { JSONObject order = ordersLast.get(0); JSONObject paymentInfo = new JSONObject(); paymentInfo.put("pay_time", DateFormatUtils.format(order.getDate("create_time"), "yyyy-MM-dd HH:mm:ss")); String city = lookupService.getLocation(order.getString("customer_ip")).city; - if(!StringUtils.isEmpty(city)){ + if (!StringUtils.isEmpty(city)) { paymentInfo.put("pay_location", city); } @@ -76,12 +82,12 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService JSONObject paymentInfo = new JSONObject(); paymentInfo.put("pay_time", DateFormatUtils.format(order.getDate("create_time"), "yyyy-MM-dd HH:mm:ss")); String city = lookupService.getLocation(order.getString("customer_ip")).city; - if(!StringUtils.isEmpty(city)){ + if (!StringUtils.isEmpty(city)) { paymentInfo.put("pay_location", city); } paymentInfos.add(paymentInfo); } - customer.put("payment_info",paymentInfos); + customer.put("payment_info", paymentInfos); return customer; } @@ -90,7 +96,7 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService public void generate(int client_id) { JSONObject params = new JSONObject(); params.put("client_id", client_id); - params.put("include_success_status",3); + params.put("include_success_status", 3); PageList lastRecord = clientCustomersMapper.listCustomerInfo(params, new PageBounds(1, 1, Order.formString("update_time.desc"))); if (!CollectionUtils.isEmpty(lastRecord)) { params.put("confirm_time", lastRecord.get(0).getDate("update_time")); @@ -98,75 +104,72 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService List orders = orderMapper.listAnalysisClientCustomer(params); Date now = new Date(); for (JSONObject order : orders) { - if(StringUtils.isEmpty(order.getString("channel"))){ + if (StringUtils.isEmpty(order.getString("channel"))) { continue; } + JSONObject userInfo = customerMapper.findCustomerByOpenId(order.getString("customer_id")); + if (userInfo == null) { + userInfo = customerRelationAlipayMapper.findCustomerByUserId(order.getString("customer_id")); + } + JSONObject clientCustomerInfo = clientCustomersMapper.getClientCustomerWithNull(client_id, order.getString("customer_id")); if (clientCustomerInfo == null) { JSONObject client_customer = new JSONObject(); client_customer.put("client_id", order.getIntValue("client_id")); client_customer.put("customer_id", order.getString("customer_id")); client_customer.put("channel", order.getString("channel")); - client_customer.put("tag","不活跃用户"); - if (order.getString("alipay_headimg") == null) { - client_customer.put("headimg", order.getString("wechat_headimg")); - client_customer.put("nick_name", order.getString("wechat_nickname")); - } else { - client_customer.put("headimg", order.getString("alipay_headimg")); - client_customer.put("nick_name", order.getString("alipay_nickname")); + client_customer.put("tag", "不活跃用户"); + if (userInfo != null) { + client_customer.put("headimg", userInfo.getString("headimg")); + client_customer.put("nick_name", userInfo.getString("nickname")); } client_customer.put("payment_times", order.getIntValue("payment_times")); client_customer.put("total_amount", order.getBigDecimal("total_amount")); client_customer.put("update_time", now); - client_customer.put("last_payment_time",order.getDate("confirm_time")); + client_customer.put("last_payment_time", order.getDate("confirm_time")); clientCustomersMapper.insert(client_customer); } else { clientCustomerInfo.put("payment_times", clientCustomerInfo.getIntValue("payment_times") + order.getIntValue("payment_times")); - BigDecimal total_amount = clientCustomerInfo.getBigDecimal("total_amount"); - if(total_amount!=null){ + BigDecimal total_amount = clientCustomerInfo.getBigDecimal("total_amount"); + if (total_amount != null) { clientCustomerInfo.put("total_amount", clientCustomerInfo.getBigDecimal("total_amount").add(order.getBigDecimal("total_amount"))); - }else { - clientCustomerInfo.put("total_amount",order.getBigDecimal("total_amount")); - } - - if (order.getString("alipay_headimg") == null) { - clientCustomerInfo.put("headimg", order.getString("wechat_headimg")); - clientCustomerInfo.put("nick_name", order.getString("wechat_nickname")); } else { - clientCustomerInfo.put("headimg", order.getString("alipay_headimg")); - clientCustomerInfo.put("nick_name", order.getString("alipay_nickname")); + clientCustomerInfo.put("total_amount", order.getBigDecimal("total_amount")); + } + if (userInfo != null) { + clientCustomerInfo.put("headimg", userInfo.getString("headimg")); + clientCustomerInfo.put("nick_name", userInfo.getString("nickname")); } clientCustomerInfo.put("channel", order.getString("channel")); - clientCustomerInfo.put("tag","不活跃用户"); - clientCustomerInfo.put("update_time",now); - clientCustomerInfo.put("last_payment_time",order.getDate("confirm_time")); + clientCustomerInfo.put("tag", "不活跃用户"); + clientCustomerInfo.put("update_time", now); + clientCustomerInfo.put("last_payment_time", order.getDate("confirm_time")); clientCustomersMapper.update(clientCustomerInfo); } } generateTag(client_id); } - - private void generateTag(int client_id){ + private void generateTag(int client_id) { JSONObject params = new JSONObject(); DateTime dt = new DateTime(); dt = dt.minusMonths(5); - params.put("confirm_time",dt.toDate()); - params.put("client_id",client_id); + params.put("confirm_time", dt.toDate()); + params.put("client_id", client_id); List orders = orderMapper.listAnalysisClientCustomer(params); for (JSONObject order : orders) { int payment_times = order.getInteger("payment_times"); JSONObject updateRecord = new JSONObject(); - updateRecord.put("client_id",order.getIntValue("client_id")); - updateRecord.put("customer_id",order.getString("customer_id")); - if(payment_times<2){ - updateRecord.put("tag","不活跃用户"); + updateRecord.put("client_id", order.getIntValue("client_id")); + updateRecord.put("customer_id", order.getString("customer_id")); + if (payment_times < 2) { + updateRecord.put("tag", "不活跃用户"); } - if(payment_times>=2 && payment_times<10){ - updateRecord.put("tag","潜力用户"); + if (payment_times >= 2 && payment_times < 10) { + updateRecord.put("tag", "潜力用户"); } - if(payment_times>=10){ - updateRecord.put("tag","忠实用户"); + if (payment_times >= 10) { + updateRecord.put("tag", "忠实用户"); } clientCustomersMapper.update(updateRecord); } @@ -175,11 +178,11 @@ public class CustomerImpressionServiceImpl implements CustomerImpressionService @Override public void modifyNameRemark(int client_id, String customer_id, String name_remark) { - JSONObject clientCustomerInfo = clientCustomersMapper.getClientCustomer(client_id,customer_id); - if(clientCustomerInfo==null){ + JSONObject clientCustomerInfo = clientCustomersMapper.getClientCustomer(client_id, customer_id); + if (clientCustomerInfo == null) { throw new NotFoundException("customer not found"); } - clientCustomerInfo.put("name_remak",name_remark); + clientCustomerInfo.put("name_remak", name_remark); clientCustomersMapper.update(clientCustomerInfo); } 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 755ed65dc..614a5341c 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 @@ -566,15 +566,9 @@ o.client_id client_id, o.customer_id customer_id, o.channel channel, - cra.headimg alipay_headimg, - cra.nickname alipay_nickname, - cr.nickname wechat_nickname, - cr.headimg wechat_headimg, max( o.confirm_time) confirm_time from pmt_orders o - left join sys_customer_relation cr on cr.wepay_openid = o.customer_id - left join sys_customer_relation_alipay cra on cra.alipay_uid = o.customer_id where o.customer_id is not null and o.channel is not null and client_id = #{client_id} 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 df64a02c2..6361a64ae 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 @@ -23,7 +23,7 @@ import au.com.royalpay.payment.manage.mappers.system.ClientMapper; * Created by wangning on 05/01/2018. */ @SpringBootTest -@ActiveProfiles({"production","alipay","wechat","jd","bestpay"}) +@ActiveProfiles({"local","alipay","wechat","jd","bestpay"}) @RunWith(SpringRunner.class) public class CustomerImpressionImplTest { @Resource