036dc5b83c93fe18125642daefcfd91646e025e2.svn-base 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.chinacreator.process.service;
  2. import java.util.Date;
  3. import java.util.List;
  4. import org.apache.commons.lang.StringUtils;
  5. import org.apache.commons.lang.math.NumberUtils;
  6. import org.apache.commons.lang.time.DateFormatUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Component;
  9. import com.chinacreator.common.exception.BusinessException;
  10. import com.chinacreator.process.bean.ActivityConfigBean;
  11. import com.chinacreator.process.bean.NetOrderBean;
  12. import com.chinacreator.process.bean.OrderBean;
  13. import com.chinacreator.process.dao.ActivityConfigDao;
  14. import com.chinacreator.process.dao.AqiyActiveDao;
  15. @Component
  16. public class AqiyMonthOrderService {
  17. @Autowired
  18. private AqiyActiveDao aqiyActiveDao;
  19. @Autowired
  20. private ActivityConfigDao activityConfigDao;
  21. @Autowired
  22. private AqiyOrderService aqiyOrderService;
  23. public void handle(OrderBean orderBean) throws Exception {
  24. int i =0;
  25. orderBean = getOrder(orderBean);
  26. ActivityConfigBean activityConfigBean = activityConfigDao.findByCallerheadtype(orderBean.getCpid(),orderBean.getSpid(), orderBean.getProvince(),orderBean.getActiveType()+"");
  27. if(NumberUtils.toLong(orderBean.getOrdertime())>=NumberUtils.toLong(activityConfigBean.getBegintime()) &&
  28. NumberUtils.toLong(orderBean.getOrdertime())<=NumberUtils.toLong(activityConfigBean.getEndtime())){
  29. OrderBean activityOrderBean = aqiyActiveDao.existUser(orderBean.getUserid(), orderBean.getCpid(),orderBean.getSpid(), orderBean.getActiveType() + "");
  30. OrderBean otherActivityOrderBean = aqiyActiveDao.existUser(orderBean.getUserid(), orderBean.getCpid(),orderBean.getSpid(), "9");
  31. if (otherActivityOrderBean != null) {
  32. if ((otherActivityOrderBean.getVipstatus().equals("0") && (NumberUtils
  33. .toLong(otherActivityOrderBean.getViptime().substring(0, 6)) == NumberUtils.toLong("201809")))
  34. || (StringUtils.isNotEmpty(otherActivityOrderBean.getVipconstatus())
  35. && NumberUtils.toLong(otherActivityOrderBean.getVipcontime().substring(0, 6)) == NumberUtils
  36. .toLong("201809"))) {
  37. orderBean.setActiveType(9);
  38. aqiyOrderService.handle(orderBean);
  39. i =1;
  40. }
  41. }
  42. if(i ==0){
  43. if (activityOrderBean == null) {// 活动表无数据
  44. aqiyActiveDao.insertBeans(orderBean);
  45. if (otherActivityOrderBean != null && otherActivityOrderBean.getVipstatus().equals("2")) {// 用户自己未领取
  46. aqiyActiveDao.updatestatus(otherActivityOrderBean.getId());
  47. }
  48. }else{
  49. OrderBean vipOrderBean = getVipInfo(activityOrderBean);
  50. orderBean.setVipstatus(vipOrderBean.getVipstatus());
  51. orderBean.setViptime(vipOrderBean.getViptime());
  52. orderBean.setId(activityOrderBean.getId());
  53. aqiyActiveDao.update(orderBean);
  54. }
  55. }
  56. }else{
  57. orderBean.setActiveType(9);
  58. aqiyOrderService.handle(orderBean);
  59. }
  60. }
  61. public OrderBean getOrder(OrderBean orderBean) throws Exception{
  62. List<NetOrderBean> list = aqiyActiveDao.findOrder(orderBean.getCpid(), orderBean.getUserid(),
  63. orderBean.getSpid());
  64. if(list != null && list.size()>0){
  65. NetOrderBean NetOrderBean = list.get(0);
  66. orderBean.setEndtime(NetOrderBean.getEndtimestr());
  67. orderBean.setCanceltime(NetOrderBean.getCanceltimestr());
  68. orderBean.setOrderstatus(NetOrderBean.getStatus()+"");
  69. orderBean.setOrdertime(NetOrderBean.getOrdertimestr());
  70. orderBean.setOrderchannel(NetOrderBean.getOrderchannel());
  71. orderBean.setCancelchannel(NetOrderBean.getCancelchannel());
  72. }
  73. return orderBean;
  74. }
  75. public OrderBean getVipInfo(OrderBean activityOrderBean) throws BusinessException {
  76. OrderBean orderBean = new OrderBean();
  77. String vipstatus = activityOrderBean.getVipstatus();
  78. String viptime = activityOrderBean.getViptime();
  79. if (StringUtils.isEmpty(viptime)) {
  80. vipstatus = activityOrderBean.getVipstatus();
  81. viptime = activityOrderBean.getViptime();
  82. } else {
  83. if (NumberUtils.toLong(viptime.substring(0, 6)) == NumberUtils
  84. .toLong(DateFormatUtils.format(new Date(), "yyyyMM"))) {//本月用户已领取会员
  85. if (activityOrderBean.getVipcontime() != null
  86. && NumberUtils.toLong(activityOrderBean.getVipcontime().substring(0, 6)) == NumberUtils
  87. .toLong(DateFormatUtils.format(new Date(), "yyyyMM"))) {//本月已续送会员
  88. vipstatus = "0";
  89. viptime = activityOrderBean.getVipcontime();
  90. } else {//本月未续送会员
  91. vipstatus = activityOrderBean.getVipstatus();
  92. viptime = activityOrderBean.getViptime();
  93. }
  94. } else if (NumberUtils.toLong(viptime.substring(0, 6)) < NumberUtils
  95. .toLong(DateFormatUtils.format(new Date(), "yyyyMM"))) {
  96. if (activityOrderBean.getActiveType() == 18) {
  97. vipstatus = activityOrderBean.getVipstatus();
  98. viptime = activityOrderBean.getViptime();
  99. } else {
  100. vipstatus = "2";
  101. viptime = "";
  102. }
  103. } else {
  104. throw new BusinessException("8010", "viptime数据异常");
  105. }
  106. }
  107. orderBean.setVipstatus(vipstatus);
  108. orderBean.setViptime(viptime);
  109. return orderBean;
  110. }
  111. }