BuyService.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.bofeng.service;
  2. import com.baomidou.mybatisplus.toolkit.IdWorker;
  3. import com.bofeng.dao.BuyMapper;
  4. import com.bofeng.dao.JmTuangouDao;
  5. import com.bofeng.entity.Buy;
  6. import com.bofeng.entity.JmTuangou;
  7. import org.joda.time.DateTime;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Propagation;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. @Service
  15. @Transactional(readOnly = true)
  16. public class BuyService {
  17. @Autowired
  18. private BuyMapper buyMapper;
  19. @Autowired
  20. private JmTuangouDao jmTuangouDao;
  21. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  22. public int buyGroup(Buy buy) {
  23. Buy buy1 = buyMapper.selectBuyOne(buy.getUserId(), buy.getJmId());
  24. if (buy1 != null) {
  25. buy.setBuyId(buy1.getBuyId());
  26. return buyMapper.updateById(buy);
  27. }
  28. buy.setBuyId(IdWorker.getId());
  29. buy.setUserCreate(buy.getUserId());
  30. buy.setTimeCreate(new DateTime());
  31. buy.setBuyStatus(1);//在团
  32. return buyMapper.insert(buy);
  33. }
  34. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  35. public List<JmTuangou> group(Long userId) {
  36. updateStatus();
  37. return buyMapper.group(userId);
  38. }
  39. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  40. public List<Buy> MyGroup(Long userId) {
  41. updateStatus();
  42. return buyMapper.MyGroup(userId);
  43. }
  44. public Buy queryGroup(Long buyId) {
  45. return buyMapper.selectById(buyId);
  46. }
  47. public JmTuangou selectGroup(Long userId, Long jmId) {
  48. return buyMapper.selectGroup(userId, jmId);
  49. }
  50. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  51. public int buyBack(Buy buy) {
  52. //在该套餐截止日期之前 并且是在团状态的才能撤单
  53. JmTuangou jmTuangou = buyMapper.selectGroup(buy.getUserId(), buy.getJmId());
  54. if (jmTuangou.getTgEndTime().getTime() > new DateTime().getMillis() && jmTuangou.getTgStatus() == 1) {
  55. Buy buy1 = buyMapper.selectBuyOne(buy.getUserId(), buy.getJmId());
  56. buy.setBuyId(buy1.getBuyId());
  57. buy.setBuyStatus(2);//撤单
  58. return buyMapper.updateById(buy);
  59. }
  60. //不允许更改
  61. return 2;
  62. }
  63. public Buy status(Buy buy) {
  64. return buyMapper.status(buy.getJmId());
  65. }
  66. //截止日期状态的更改
  67. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  68. public int updateStatus() {
  69. List<JmTuangou> jmTuangous = jmTuangouDao.selectAll();
  70. if (jmTuangous != null && jmTuangous.size() > 0) {
  71. //已经到截止时间
  72. for (JmTuangou list : jmTuangous)
  73. if (list.getTgEndTime().getTime() < new DateTime().getMillis()) {
  74. // 团购数量 最小起订量
  75. List<Buy> buys = buyMapper.selectCountNum(list.getJmId());
  76. if (buys != null && buys.size() > 0) {
  77. for (Buy v : buys) { //最小起订量
  78. if (v.getCount().intValue() < list.getTgMinNum().intValue()) {
  79. jmTuangouDao.updateStatusByJmId(list.getJmId(), 4L);//取消
  80. } else {
  81. jmTuangouDao.updateStatusByJmId(list.getJmId(), 2L);//发货
  82. }
  83. }
  84. } else {
  85. jmTuangouDao.updateStatusByJmId(list.getJmId(), 4L);//取消
  86. }
  87. }
  88. }
  89. return 1;
  90. }
  91. }