123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.bofeng.service;
- import com.baomidou.mybatisplus.toolkit.IdWorker;
- import com.bofeng.dao.BuyMapper;
- import com.bofeng.dao.JmTuangouDao;
- import com.bofeng.entity.Buy;
- import com.bofeng.entity.JmTuangou;
- import org.joda.time.DateTime;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- @Service
- @Transactional(readOnly = true)
- public class BuyService {
- @Autowired
- private BuyMapper buyMapper;
- @Autowired
- private JmTuangouDao jmTuangouDao;
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public int buyGroup(Buy buy) {
- Buy buy1 = buyMapper.selectBuyOne(buy.getUserId(), buy.getJmId());
- JmTuangou roleType = jmTuangouDao.getSelectOneRoleId(buy.getJmId());
- if (buy1 != null) {
- JmTuangou jmTuangou = jmTuangouDao.selectJmTuangouByJmId(buy1.getJmId());
- Buy buy2 = buyMapper.selectById(buy1.getBuyId());
- if (roleType.getRoleType() != 1) {
- if (jmTuangou.getTgMaxNum().intValue() >= jmTuangou.getCurrentNum().intValue() - buy2.getBuyCount().intValue() + buy.getBuyCount().intValue()) {
- //个人限额(指挥部的限额 和 管理员的限额)
- if (roleType.getTgItemNum().intValue() != 0 && roleType.getTgItemNum().intValue() < buy.getBuyCount().intValue()) {
- return 4;
- }
- buy.setBuyId(buy1.getBuyId());
- return buyMapper.updateById(buy);
- } else {
- return 3;//不允许更改团购数量
- }
- } else {
- //指挥部的更改
- //个人限额(指挥部的限额 和 管理员的限额)
- if (roleType.getTgItemNum().intValue() != 0 && roleType.getTgItemNum().intValue() < buy.getBuyCount().intValue()) {
- return 4;
- }
- buy.setBuyId(buy1.getBuyId());
- return buyMapper.updateById(buy);
- }
- }
- //1 是指挥部
- if (roleType.getRoleType() != 1) {
- //第一次购买团购数量大于最大上限数量不允许
- JmTuangou jmTuangou = jmTuangouDao.selectJmTuangouByJmId(buy.getJmId());
- if (jmTuangou.getTgMaxNum().intValue() < jmTuangou.getCurrentNum().intValue() + buy.getBuyCount().intValue()) {
- return 3;
- }
- }
- //个人限额(指挥部的限额 和 管理员的限额)
- if (roleType.getTgItemNum().intValue() != 0 && roleType.getTgItemNum().intValue() < buy.getBuyCount().intValue()) {
- return 4;
- }
- buy.setBuyId(IdWorker.getId());
- buy.setUserCreate(buy.getUserId());
- buy.setTimeCreate(new DateTime());
- buy.setBuyStatus(1);//在团
- return buyMapper.insert(buy);
- }
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public List<JmTuangou> group(Long userId) {
- updateStatus();
- return buyMapper.group(userId);
- }
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public List<Buy> MyGroup(Long userId) {
- updateStatus();
- return buyMapper.MyGroup(userId);
- }
- public Buy queryGroup(Long buyId) {
- return buyMapper.selectById(buyId);
- }
- public JmTuangou selectGroup(Long userId, Long jmId) {
- return buyMapper.selectGroup(userId, jmId);
- }
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public int buyBack(Buy buy) {
- //在该套餐截止日期之前 并且是在团状态的才能撤单
- JmTuangou jmTuangou = buyMapper.selectGroup(buy.getUserId(), buy.getJmId());
- if (jmTuangou.getTgEndTime().getTime() > new DateTime().getMillis() && jmTuangou.getTgStatus() == 1) {
- Buy buy1 = buyMapper.selectBuyOne(buy.getUserId(), buy.getJmId());
- buy.setBuyId(buy1.getBuyId());
- buy.setBuyStatus(2);//撤单
- return buyMapper.updateById(buy);
- }
- //不允许更改
- return 2;
- }
- public Buy status(Buy buy) {
- return buyMapper.status(buy.getJmId(), buy.getUserId());
- }
- //截止日期状态的更改
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public int updateStatus() {
- List<JmTuangou> jmTuangous = jmTuangouDao.selectAll();
- if (jmTuangous != null && jmTuangous.size() > 0) {
- for (JmTuangou list : jmTuangous) {
- //判断是指挥部还是管理员
- if (list.getRoleType() == 1) {
- if (list.getTgEndTime().getTime() < new DateTime().getMillis()) {
- jmTuangouDao.updateStatusByJmId(list.getJmId(), 2L);//发货
- }
- } else {
- // 团购数量 最小起订量
- Buy buy = buyMapper.selectCountNum(list.getJmId());
- //已经到截止时间
- if (list.getTgEndTime().getTime() < new DateTime().getMillis()) {
- if (buy != null) { //最小起订量
- if (list.getTgMinNum().longValue() > buy.getCount().longValue()) {
- jmTuangouDao.updateStatusByJmId(list.getJmId(), 4L);//取消
- } else {
- jmTuangouDao.updateStatusByJmId(list.getJmId(), 2L);//发货
- }
- } else {
- jmTuangouDao.updateStatusByJmId(list.getJmId(), 4L);//取消
- }
- } /*else {
- //团购数量已经过了最大起订量的 就直接发货
- if (buy != null) {
- if (list.getTgMaxNum().intValue() == buy.getCount().intValue()) {
- jmTuangouDao.updateStatusByJmId(list.getJmId(), 2L);//发货
- }
- }
- }*/
- }
- }
- }
- return 1;
- }
- }
|