|
|
@@ -1,13 +1,28 @@
|
|
|
package com.ruoyi.dz.service.impl;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Random;
|
|
|
+
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
+import com.fasterxml.jackson.annotation.JsonFormat;
|
|
|
+import com.ruoyi.common.annotation.Excel;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
+import com.ruoyi.criteria.CardCriteria;
|
|
|
+import com.ruoyi.dz.domain.DzAgent;
|
|
|
+import com.ruoyi.dz.domain.DzCardsOpen;
|
|
|
+import com.ruoyi.dz.mapper.DzAgentMapper;
|
|
|
+import com.ruoyi.dz.mapper.DzCardsOpenMapper;
|
|
|
+import com.ruoyi.enums.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.ruoyi.dz.mapper.DzCardsMapper;
|
|
|
import com.ruoyi.dz.domain.DzCards;
|
|
|
import com.ruoyi.dz.service.IDzCardsService;
|
|
|
|
|
|
+import javax.validation.ValidationException;
|
|
|
+
|
|
|
/**
|
|
|
* 学习卡Service业务层处理
|
|
|
*
|
|
|
@@ -19,6 +34,12 @@ public class DzCardsServiceImpl implements IDzCardsService
|
|
|
{
|
|
|
@Autowired
|
|
|
private DzCardsMapper dzCardsMapper;
|
|
|
+ @Autowired
|
|
|
+ private DzCardsOpenMapper dzCardsOpenMapper;
|
|
|
+ @Autowired
|
|
|
+ private DzAgentMapper dzAgentMapper;
|
|
|
+
|
|
|
+ private final String format = "%d%08d";
|
|
|
|
|
|
/**
|
|
|
* 查询学习卡
|
|
|
@@ -102,4 +123,99 @@ public class DzCardsServiceImpl implements IDzCardsService
|
|
|
{
|
|
|
return dzCardsMapper.deleteDzCardsByCardId(cardId);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void issue(Long deptId, Integer type, Integer begin, Integer end) {
|
|
|
+
|
|
|
+ for(Integer i = begin; i<= end; i++) {
|
|
|
+ DzCards c = new DzCards();
|
|
|
+ c.setType(type);
|
|
|
+ c.setCardNo(String.format(format, type, i));
|
|
|
+ c.setPassword(RandomUtil.randomNumbers(6));
|
|
|
+ c.setDistributeStatus(CardDistributeStatus.Free.getVal());
|
|
|
+ c.setStatus(CardStatus.Free.getVal());
|
|
|
+ c.setTimeStatus(CardTimeStatus.Valid.getVal());
|
|
|
+ c.setPayStatus(PayStatus.UnPay.getVal());
|
|
|
+ c.setIsSettlement(0);
|
|
|
+ c.setDeptId(deptId);
|
|
|
+ dzCardsMapper.insertDzCards(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void assign(Long agentId, String beginNo, String endNo) {
|
|
|
+ CardCriteria cond = new CardCriteria();
|
|
|
+ cond.setStartNo(beginNo);
|
|
|
+ cond.setEndNo(endNo);
|
|
|
+ DzCards dzCards = new DzCards();
|
|
|
+ DzAgent agent = dzAgentMapper.selectDzAgentByAgentId(agentId);
|
|
|
+ dzCardsMapper.selectListByCond(cond).stream().forEach(c -> {
|
|
|
+ dzCards.setCardId(c.getCardId());
|
|
|
+ if(null != agent.getParentId()) {
|
|
|
+ dzCards.setAgentId(agent.getParentId());
|
|
|
+ dzCards.setLeftAgentId(agent.getAgentId());
|
|
|
+ } else {
|
|
|
+ dzCards.setAgentId(agent.getAgentId());
|
|
|
+ dzCards.setLeftAgentId(agent.getAgentId());
|
|
|
+ }
|
|
|
+ dzCards.setDistributeTime(DateUtils.getNowDate());
|
|
|
+ dzCardsMapper.updateDzCards(dzCards);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean requestOpen(Long schoolId, Long agentId, String beginNo, String endNo) {
|
|
|
+ DzCardsOpen newOpen = new DzCardsOpen();
|
|
|
+ newOpen.setAgentId(agentId);
|
|
|
+ newOpen.setStartNo(beginNo);
|
|
|
+ newOpen.setEndNo(endNo);
|
|
|
+ newOpen.setEndDate(DateUtils.addDays(DateUtils.getNowDate(), 14)); // TODO MF 卡默认有效期
|
|
|
+ newOpen.setSchoolId(schoolId);
|
|
|
+ newOpen.setIsReopen(0);
|
|
|
+ newOpen.setCardType(CardType.Test.getVal());
|
|
|
+ newOpen.setStatus(RequestStatus.Wait.getVal());
|
|
|
+ dzCardsOpenMapper.insertDzCardsOpen(newOpen);
|
|
|
+ // TODO MF 检查已经使用的或无效的
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void confirmOpen(Long openId) {
|
|
|
+ DzCardsOpen open = dzCardsOpenMapper.selectDzCardsOpenById(openId);
|
|
|
+ if(!open.getStatus().equals(RequestStatus.Wait.getVal())) {
|
|
|
+ throw new ValidationException("无效状态");
|
|
|
+ }
|
|
|
+ CardCriteria cond = new CardCriteria();
|
|
|
+ cond.setType(open.getCardType());
|
|
|
+ cond.setStartNo(open.getStartNo());
|
|
|
+ cond.setEndNo(open.getEndNo());
|
|
|
+ DzCards dzCards = new DzCards();
|
|
|
+ dzCardsMapper.selectListByCond(cond).stream().forEach(c -> {
|
|
|
+ dzCards.setCardId(c.getCardId());
|
|
|
+ dzCards.setPayTime(DateUtils.getNowDate());
|
|
|
+ dzCards.setPayStatus(PayStatus.Paid.getVal());
|
|
|
+ dzCards.setStatus(CardStatus.Paid.getVal());
|
|
|
+ dzCardsMapper.updateDzCards(dzCards);
|
|
|
+ });
|
|
|
+ DzCardsOpen up = new DzCardsOpen();
|
|
|
+ up.setId(openId);
|
|
|
+ up.setStatus(RequestStatus.Pass.getVal());
|
|
|
+ dzCardsOpenMapper.updateDzCardsOpen(up);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void reOpen(Long[] cardIds) {
|
|
|
+ DzCards up = new DzCards();
|
|
|
+ for(Long cardId : cardIds) {
|
|
|
+ DzCards old = dzCardsMapper.selectDzCardsByCardId(cardId);
|
|
|
+ if(!old.getDistributeStatus().equals(CardDistributeStatus.Close.getVal())) {
|
|
|
+ throw new ValidationException("非关闭卡");
|
|
|
+ }
|
|
|
+ up.setCardId(old.getCardId());
|
|
|
+ up.setDistributeStatus(CardDistributeStatus.Assign.getVal());
|
|
|
+ dzCardsMapper.updateDzCards(up);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|