DownloadOrderImpl.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.fdkankan.ucenter.pay.strategy.impl;
  2. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.fdkankan.ucenter.entity.DownloadOrder;
  5. import com.fdkankan.ucenter.entity.ScenePlus;
  6. import com.fdkankan.ucenter.entity.ScenePro;
  7. import com.fdkankan.ucenter.entity.User;
  8. import com.fdkankan.ucenter.pay.strategy.OrderStrategy;
  9. import com.fdkankan.ucenter.service.IDownloadOrderService;
  10. import com.fdkankan.ucenter.service.IScenePlusService;
  11. import com.fdkankan.ucenter.service.ISceneProService;
  12. import com.fdkankan.ucenter.service.IUserService;
  13. import lombok.extern.log4j.Log4j2;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Component;
  17. @Log4j2
  18. @Component
  19. public class DownloadOrderImpl implements OrderStrategy {
  20. @Autowired
  21. private IDownloadOrderService downloadOrderService;
  22. @Autowired
  23. private IUserService userService;
  24. @Autowired
  25. private ISceneProService sceneProService;
  26. @Autowired
  27. private IScenePlusService scenePlusService;
  28. @Override
  29. public void handleOrder(String orderSn, String tradeNo, String openId, int paymentTypeName, Long spaceId) throws Exception {
  30. DownloadOrder downloadOrder = downloadOrderService.getByOrderSnNoPay(orderSn);
  31. if (downloadOrder == null) {
  32. log.error("找不到订单:" + orderSn);
  33. throw new Exception("找不到订单,out_trade_no错误");
  34. }
  35. // 更新场景下载订单
  36. boolean result = downloadOrderService.paySuccessDownloadOrder(orderSn, tradeNo, paymentTypeName);
  37. if (!result){
  38. log.error("更新增值权益订单失败");
  39. throw new Exception("更新增值权益订单失败");
  40. }
  41. //更新用户下载次数
  42. LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
  43. wrapper.eq(User::getId,downloadOrder.getUserId());
  44. if(StringUtils.isNotBlank(downloadOrder.getSceneNum())){
  45. Integer sceneSource = sceneProService.getSceneSourceByNum(downloadOrder.getSceneNum());
  46. if(sceneSource != null && sceneSource == 4){ //深时场景
  47. wrapper.setSql("ss_download_num_total = ss_download_num_total + " + downloadOrder.getCount());
  48. }else {
  49. wrapper.setSql("download_num_total = download_num_total + " + downloadOrder.getCount());
  50. }
  51. }else {
  52. wrapper.setSql("download_num_total = download_num_total + " + downloadOrder.getCount());
  53. }
  54. userService.update(wrapper);
  55. }
  56. @Override
  57. public String getType() {
  58. return "download";
  59. }
  60. }