|  |  |  | 
|---|
|  |  |  | package com.matrix.system.shopXcx.mqTask; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.matrix.system.hive.service.SysVipInfoService; | 
|---|
|  |  |  | import com.matrix.core.tools.LogUtil; | 
|---|
|  |  |  | import com.matrix.core.tools.StringUtils; | 
|---|
|  |  |  | import com.matrix.system.common.bean.BusParameterSettings; | 
|---|
|  |  |  | import com.matrix.system.common.dao.BusParameterSettingsDao; | 
|---|
|  |  |  | import com.matrix.system.hive.bean.SysVipInfo; | 
|---|
|  |  |  | import com.matrix.system.hive.dao.SysVipInfoDao; | 
|---|
|  |  |  | import com.matrix.system.hive.service.SysVipInfoService; | 
|---|
|  |  |  | import com.matrix.system.score.constant.ScoreSettingConstant; | 
|---|
|  |  |  | import com.matrix.system.score.entity.ScoreVipDetail; | 
|---|
|  |  |  | import com.matrix.system.score.service.ScoreVipDetailService; | 
|---|
|  |  |  | 
|---|
|  |  |  | SysVipInfoService sysVipInfoService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | ScoreVipDetailService scoreVipDetailService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | BusParameterSettingsDao busParameterSettingsDao; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | SysVipInfoDao sysVipInfoDao; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void handle(String consumerTag, Delivery message) throws IOException { | 
|---|
|  |  |  | 
|---|
|  |  |  | List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); | 
|---|
|  |  |  | order.setDetails(orderDetails); | 
|---|
|  |  |  | //扣除积分 | 
|---|
|  |  |  | if(order.getScorePay()!=null&&order.getScorePay()>0){ | 
|---|
|  |  |  | scoreVipDetailService.deductionScore(order.getUserId(),null, | 
|---|
|  |  |  | Long.parseLong(order.getStoreId()+""),order.getScorePay(), | 
|---|
|  |  |  | Long.parseLong(order.getId()+""), ScoreVipDetail.SCORE_VIP_TYPE_CASH,"商城积分抵扣"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (order.getScorePay() != null && order.getScorePay() > 0) { | 
|---|
|  |  |  | scoreVipDetailService.deductionScore(order.getUserId(), null, | 
|---|
|  |  |  | Long.parseLong(order.getStoreId() + ""), order.getScorePay(), | 
|---|
|  |  |  | Long.parseLong(order.getId() + ""), ScoreVipDetail.SCORE_VIP_TYPE_CASH, "商城积分抵扣"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //消费获得积分 | 
|---|
|  |  |  | int addScore=0; | 
|---|
|  |  |  | int addScore = 0; | 
|---|
|  |  |  | BusParameterSettings cashConsumptionShop = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.CASH_CONSUMPTION_SHOP, order.getCompanyId()); | 
|---|
|  |  |  | for(ShopOrderDetails shopOrderDetail : orderDetails) { | 
|---|
|  |  |  | if(shopOrderDetail.getPayType()==ShopOrderDetails.PAYTYPE_MICRO){ | 
|---|
|  |  |  | Integer xfkdScore=  shopOrderDetail.getShopSku().getScore(); | 
|---|
|  |  |  | if(xfkdScore!=null && xfkdScore>0){ | 
|---|
|  |  |  | addScore+=xfkdScore; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(StringUtils.isNotBlank(cashConsumptionShop.getParamValue())){ | 
|---|
|  |  |  | addScore+= shopOrderDetail.getTotalPrice().divide(new BigDecimal(cashConsumptionShop.getParamValue())).intValue(); | 
|---|
|  |  |  | for (ShopOrderDetails shopOrderDetail : orderDetails) { | 
|---|
|  |  |  | if (shopOrderDetail.getPayType() == ShopOrderDetails.PAYTYPE_MICRO) { | 
|---|
|  |  |  | Integer xfkdScore = shopOrderDetail.getShopSku().getScore(); | 
|---|
|  |  |  | if (xfkdScore != null && xfkdScore > 0) { | 
|---|
|  |  |  | addScore += xfkdScore; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (StringUtils.isNotBlank(cashConsumptionShop.getParamValue())) { | 
|---|
|  |  |  | addScore += shopOrderDetail.getTotalPrice().divide(new BigDecimal(cashConsumptionShop.getParamValue())).intValue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(addScore>0){ | 
|---|
|  |  |  | if (addScore > 0) { | 
|---|
|  |  |  | //插入新的积分 | 
|---|
|  |  |  | scoreVipDetailService.addScore( | 
|---|
|  |  |  | order.getUserId(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | Long.parseLong(order.getStoreId()+""), | 
|---|
|  |  |  | Long.parseLong(order.getStoreId() + ""), | 
|---|
|  |  |  | addScore, | 
|---|
|  |  |  | Long.parseLong(orderId+""), | 
|---|
|  |  |  | Long.parseLong(orderId + ""), | 
|---|
|  |  |  | ScoreVipDetail.SCORE_VIP_TYPE_CASH, | 
|---|
|  |  |  | "微商城消费"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //插入上级积分 | 
|---|
|  |  |  | SysVipInfo vipInfo = sysVipInfoService.findById(order.getUserId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (vipInfo.getRecommendId() != null) { | 
|---|
|  |  |  | //推荐注册老带新积分奖励 | 
|---|
|  |  |  | SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId()); | 
|---|
|  |  |  | if (StringUtils.isNotBlank(cashConsumptionShop.getParamValue1())) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int parentScore = order.getOrderMoney().divide(new BigDecimal(cashConsumptionShop.getParamValue1())).intValue(); | 
|---|
|  |  |  | if (parentScore > 0) { | 
|---|
|  |  |  | scoreVipDetailService.addScore( | 
|---|
|  |  |  | referrerVip.getId(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | Long.parseLong(order.getStoreId() + ""), | 
|---|
|  |  |  | parentScore, | 
|---|
|  |  |  | Long.parseLong(order.getId() + ""), | 
|---|
|  |  |  | ScoreVipDetail.SCORE_VIP_TYPE_CASH, | 
|---|
|  |  |  | "推荐消费奖励" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //推荐注册二级带新积分奖励 | 
|---|
|  |  |  | if (referrerVip.getRecommendId() != null && StringUtils.isNotBlank(cashConsumptionShop.getParamValue2())) { | 
|---|
|  |  |  | SysVipInfo topVipInfo = sysVipInfoDao.selectById(referrerVip.getRecommendId()); | 
|---|
|  |  |  | int topParentScore = order.getOrderMoney().divide(new BigDecimal(cashConsumptionShop.getParamValue2())).intValue(); | 
|---|
|  |  |  | if (topParentScore > 0) { | 
|---|
|  |  |  | scoreVipDetailService.addScore( | 
|---|
|  |  |  | topVipInfo.getId(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | Long.parseLong(order.getStoreId() + ""), | 
|---|
|  |  |  | topParentScore, | 
|---|
|  |  |  | Long.parseLong(order.getId() + ""), | 
|---|
|  |  |  | ScoreVipDetail.SCORE_VIP_TYPE_CASH, | 
|---|
|  |  |  | "推荐消费奖励" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|