diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/core/EncourageService.java b/src/main/java/au/com/royalpay/payment/manage/customers/core/EncourageService.java index 5408473bf..a0aa8f94f 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/core/EncourageService.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/core/EncourageService.java @@ -30,4 +30,6 @@ public interface EncourageService { JSONObject listReceiveLogs(String eventId, ReceiveLogQueryBean query); JSONObject listUseLogs(String eventId, int page, int limit); + + void prepareUserInfo(JSONObject user, String user_id); } diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/EncourageUseProcessor.java b/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/EncourageUseProcessor.java index b092caf4a..13de70add 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/EncourageUseProcessor.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/core/impls/EncourageUseProcessor.java @@ -1,32 +1,7 @@ package au.com.royalpay.payment.manage.customers.core.impls; -import java.math.BigDecimal; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - import au.com.royalpay.payment.channels.wechat.config.WeChatPayConfig; import au.com.royalpay.payment.channels.wechat.config.WechatPayEnvironment; -import au.com.royalpay.payment.manage.mappers.system.ManagerCustomerRelationAlipayMapper; -import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApi; -import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApiProvider; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.RandomUtils; -import org.apache.commons.lang3.time.DateFormatUtils; -import org.apache.commons.lang3.time.DateUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.core.Ordered; -import org.springframework.stereotype.Service; - -import com.alibaba.fastjson.JSONObject; -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 au.com.royalpay.payment.core.TransactionService; import au.com.royalpay.payment.manage.customers.beans.EncourageEventParameters; import au.com.royalpay.payment.manage.customers.beans.ReceiveLogQueryBean; @@ -37,13 +12,38 @@ import au.com.royalpay.payment.manage.mappers.customers.CustomerEncourageMoneyUs 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.mappers.system.ManagerCustomerRelationAlipayMapper; import au.com.royalpay.payment.manage.mappers.system.ManagerMapper; import au.com.royalpay.payment.tools.CommonConsts; +import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApi; +import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApiProvider; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.NotFoundException; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.utils.PageListUtils; +import com.alibaba.fastjson.JSONObject; +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.RandomUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.core.Ordered; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + /** * 鼓励金 Created by yixian on 2017-04-24. */ @@ -114,13 +114,13 @@ public class EncourageUseProcessor implements Ordered, EncourageService { String merchantId = order.getString("merchant_id"); WeChatPayConfig.Merchant mch = WechatPayEnvironment.getEnv().getMerchantConfig(merchantId); MpWechatApi api = mpWechatApiProvider.getApi(mch.getMpId()); - if (!StringUtils.equals(wxUser.getString(api.getOpenIdKey()),openId)){ + if (!StringUtils.equals(wxUser.getString(api.getOpenIdKey()), openId)) { logger.debug("不是同一人"); return new JSONObject(); } } - if ("Alipay".equals(channel)){ - if (!StringUtils.equals(visitorOpenId,openId)){ + if ("Alipay".equals(channel)) { + if (!StringUtils.equals(visitorOpenId, openId)) { logger.debug("不是同一人"); return new JSONObject(); } @@ -132,7 +132,7 @@ public class EncourageUseProcessor implements Ordered, EncourageService { JSONObject member = customerMembershipMapper.findByPaymentOpenId(visitorOpenId); if (member == null) { member = new JSONObject(); - if ("Wechat".equals(channel)){ + if ("Wechat".equals(channel)) { JSONObject relation = customerMapper.findCustomerByOpenId(visitorOpenId); if (relation == null) { logger.debug("用户关系不存在"); @@ -146,7 +146,7 @@ public class EncourageUseProcessor implements Ordered, EncourageService { member.put("encourage_balance", 0); customerMembershipMapper.saveMember(member); } - if ("Alipay".equals(channel)){ + if ("Alipay".equals(channel)) { JSONObject relation = managerCustomerRelationAlipayMapper.findCustomerByUserId(openId); if (relation == null) { logger.debug("用户关系不存在"); @@ -168,8 +168,8 @@ public class EncourageUseProcessor implements Ordered, EncourageService { logger.debug("超出领取次数"); return new JSONObject(); } - int rand = RandomUtils - .nextInt(0,config.getBigDecimal("max_amount").subtract(config.getBigDecimal("min_amount")).multiply(CommonConsts.HUNDRED).intValue()); + int rand = RandomUtils.nextInt(0, + config.getBigDecimal("max_amount").subtract(config.getBigDecimal("min_amount")).multiply(CommonConsts.HUNDRED).intValue()); BigDecimal amount = config.getBigDecimal("min_amount").add(BigDecimal.valueOf(rand).divide(CommonConsts.HUNDRED, 2, BigDecimal.ROUND_DOWN)); customerMembershipMapper.addEncourage(memberId, amount); JSONObject customer = customerMembershipMapper.findByMemberId(memberId); @@ -209,8 +209,8 @@ public class EncourageUseProcessor implements Ordered, EncourageService { } if (log.getBigDecimal("factor").compareTo(BigDecimal.ONE) == 0) { int critRate = config.getIntValue("crit_rate"); - if (RandomUtils.nextInt(0,100) < critRate) { - int factorInt = RandomUtils.nextInt(0,config.getBigDecimal("max_crit").multiply(CommonConsts.HUNDRED).intValue() - 100); + if (RandomUtils.nextInt(0, 100) < critRate) { + int factorInt = RandomUtils.nextInt(0, config.getBigDecimal("max_crit").multiply(CommonConsts.HUNDRED).intValue() - 100); BigDecimal factor = BigDecimal.valueOf(factorInt + 100).divide(CommonConsts.HUNDRED, 2, BigDecimal.ROUND_DOWN); BigDecimal actural = log.getBigDecimal("access_amount").multiply(factor).setScale(2, BigDecimal.ROUND_DOWN); BigDecimal sub = actural.subtract(log.getBigDecimal("actural_amount")); @@ -329,4 +329,14 @@ public class EncourageUseProcessor implements Ordered, EncourageService { PageList receiveLogs = customerEncourageMoneyUseLogMapper.list(params, new PageBounds(page, limit, Order.formString("use_time.desc"))); return PageListUtils.buildPageListResult(receiveLogs); } + + @Override + public void prepareUserInfo(JSONObject user, String user_id) { + if ("wechat".equals(user.getString("channel"))) { + user.put("headimg", customerMapper.findCustomerByOpenId(user_id).getString("headimg")); + } + if ("alipay".equals(user.getString("channel"))) { + user.put("headimg", managerCustomerRelationAlipayMapper.findCustomerByUserId(user_id).getString("headimg")); + } + } } \ No newline at end of file diff --git a/src/main/java/au/com/royalpay/payment/manage/customers/web/EncourageMoneyController.java b/src/main/java/au/com/royalpay/payment/manage/customers/web/EncourageMoneyController.java index 325a68591..f94a5d7e1 100644 --- a/src/main/java/au/com/royalpay/payment/manage/customers/web/EncourageMoneyController.java +++ b/src/main/java/au/com/royalpay/payment/manage/customers/web/EncourageMoneyController.java @@ -2,6 +2,7 @@ package au.com.royalpay.payment.manage.customers.web; import au.com.royalpay.payment.manage.customers.core.EncourageService; import au.com.royalpay.payment.tools.CommonConsts; +import au.com.royalpay.payment.tools.permission.wechat.WechatMapping; import com.alibaba.fastjson.JSONObject; @@ -27,16 +28,18 @@ public class EncourageMoneyController { @Resource private EncourageService encourageService; + @RequestMapping(value = "/orders/{orderId}", method = RequestMethod.PUT) - public JSONObject takeEncourageMoney(@PathVariable String orderId,@ModelAttribute(CommonConsts.WECHATINFO) JSONObject wxUser,@ModelAttribute(CommonConsts.ALIUSER) JSONObject aliuser) { + public JSONObject takeEncourageMoney(@PathVariable String orderId, @ModelAttribute(CommonConsts.WECHATINFO) JSONObject wxUser, + @ModelAttribute(CommonConsts.ALIUSER) JSONObject aliuser) { String user_id = ""; - if(wxUser==null){ + if (wxUser == null) { user_id = aliuser.getString("user_id"); - }else { - logger.info("====wxUser=="+wxUser.toJSONString()); + } else { + logger.info("====wxUser==" + wxUser.toJSONString()); user_id = wxUser.getString("openid"); } - if(StringUtils.isEmpty(user_id)){ + if (StringUtils.isEmpty(user_id)) { return new JSONObject(); } return encourageService.takeEncourageMoney(orderId, user_id); @@ -47,28 +50,36 @@ public class EncourageMoneyController { return encourageService.doubleEncourageMoney(orderId); } - @RequestMapping(value = "/my", method = RequestMethod.GET) - public ModelAndView encourageLogs(@ModelAttribute(CommonConsts.WECHATINFO) JSONObject wxUser,@ModelAttribute(CommonConsts.ALIUSER) JSONObject aliuser) { + @WechatMapping(value = "/my", method = RequestMethod.GET) + public ModelAndView encourageLogs(@ModelAttribute(CommonConsts.WECHATINFO) JSONObject wxUser, @ModelAttribute(CommonConsts.ALIUSER) JSONObject aliuser) { ModelAndView mav = new ModelAndView("activity/encourage_money/my"); - mav.addObject("wxUser", wxUser); + JSONObject user = new JSONObject(); String user_id = ""; - if(wxUser==null){ + if (wxUser == null) { + user.put("headimg", aliuser.getString("avatar")); + user.put("channel","alipay"); user_id = aliuser.getString("user_id"); - }else { + } else { + user.put("headimg", wxUser.getString("headimgurl")); + user.put("channel","wechat"); user_id = wxUser.getString("openid"); } + if(StringUtils.isEmpty(user.getString("headimg"))) { + encourageService.prepareUserInfo(user, user_id); + } JSONObject balanceStatus = encourageService.getBalanceStatus(user_id); + mav.addObject("user", user); mav.addObject("balance_status", balanceStatus); return mav; } - @RequestMapping(value = "/desc",method = RequestMethod.GET) - public ModelAndView descPage(){ + @RequestMapping(value = "/desc", method = RequestMethod.GET) + public ModelAndView descPage() { return new ModelAndView("activity/encourage_money/desc"); } - @RequestMapping(value = "/merchants",method = RequestMethod.GET) - public ModelAndView merchantsPage(){ + @RequestMapping(value = "/merchants", method = RequestMethod.GET) + public ModelAndView merchantsPage() { return new ModelAndView("activity/encourage_money/merchants"); } } diff --git a/src/main/resources/templates/activity/encourage_money/desc.html b/src/main/resources/templates/activity/encourage_money/desc.html index e5822f21d..231e7e937 100644 --- a/src/main/resources/templates/activity/encourage_money/desc.html +++ b/src/main/resources/templates/activity/encourage_money/desc.html @@ -68,9 +68,9 @@ 鼓励金仅在活动期间有效,活动结束鼓励金自动清零。 - - 查看活动商家 - + + +
本活动的最终解释权归RoyalPay所有
diff --git a/src/main/resources/templates/activity/encourage_money/my.html b/src/main/resources/templates/activity/encourage_money/my.html index 9050764c4..00a97541e 100644 --- a/src/main/resources/templates/activity/encourage_money/my.html +++ b/src/main/resources/templates/activity/encourage_money/my.html @@ -1,5 +1,5 @@ - + @@ -19,6 +19,9 @@
+
活动期间任意消费满10澳币,获随机鼓励金