|
@@ -1,17 +1,39 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDetailDao;
|
|
|
import com.ym.mec.biz.dal.entity.TempDirectorTrainingCamp;
|
|
|
import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper;
|
|
|
+import com.ym.mec.biz.service.EmployeeService;
|
|
|
+import com.ym.mec.biz.service.SysUserService;
|
|
|
+import com.ym.mec.biz.service.TempDirectorTrainingCampDetailService;
|
|
|
import com.ym.mec.biz.service.TempDirectorTrainingCampService;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service("tempDirectorTrainingCampService")
|
|
|
public class TempDirectorTrainingCampServiceImpl extends ServiceImpl<TempDirectorTrainingCampDao, TempDirectorTrainingCamp> implements TempDirectorTrainingCampService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysUserService sysUserService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TempDirectorTrainingCampDetailDao tempDirectorTrainingCampDetailDao;
|
|
|
+
|
|
|
private final static Logger log = LoggerFactory.getLogger(TempDirectorTrainingCampServiceImpl.class);
|
|
|
|
|
|
@Override
|
|
@@ -20,8 +42,84 @@ public class TempDirectorTrainingCampServiceImpl extends ServiceImpl<TempDirecto
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public void add(TempDirectorTrainingCampWrapper.AddCamp dto) {
|
|
|
+ log.info("新增训练营:{}", dto);
|
|
|
+ if (!dto.getHasBirdPrice()) {
|
|
|
+ dto.setBirdPrice(null);
|
|
|
+ dto.setBirdPriceEndDate(null);
|
|
|
+ }
|
|
|
+ TempDirectorTrainingCamp tempDirectorTrainingCamp = JSON.parseObject(JSON.toJSONString(dto), TempDirectorTrainingCamp.class);
|
|
|
+
|
|
|
+ this.save(tempDirectorTrainingCamp);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void modify(TempDirectorTrainingCampWrapper.AddCamp dto) {
|
|
|
+ log.info("修改训练营:{}", dto);
|
|
|
+ TempDirectorTrainingCamp tempDirectorTrainingCamp = JSON.parseObject(JSON.toJSONString(dto), TempDirectorTrainingCamp.class);
|
|
|
+
|
|
|
+ this.updateById(tempDirectorTrainingCamp);
|
|
|
+
|
|
|
+ lambdaUpdate()
|
|
|
+ .set(TempDirectorTrainingCamp::getBirdPrice, dto.getHasBirdPrice()?dto.getBirdPrice():null)
|
|
|
+ .set(TempDirectorTrainingCamp::getBirdPriceEndDate, dto.getHasBirdPrice()?dto.getBirdPriceEndDate():null)
|
|
|
+ .eq(TempDirectorTrainingCamp::getId, dto.getId())
|
|
|
+ .update();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> queryPage(IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> page, TempDirectorTrainingCampWrapper.TempDirectorTrainingCampQueryInfo queryInfo) {
|
|
|
+ IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> tempDirectorTrainingCampIPage = baseMapper.queryPage(page, queryInfo);
|
|
|
+ List<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> records = tempDirectorTrainingCampIPage.getRecords();
|
|
|
+ if (CollectionUtils.isEmpty(records) ) {
|
|
|
+ return tempDirectorTrainingCampIPage;
|
|
|
+ }
|
|
|
+
|
|
|
+ // id 集合
|
|
|
+ List<Integer> ids = records.stream().map(o->o.getId()).collect(Collectors.toList());;
|
|
|
+
|
|
|
+ // 是否设置早鸟价
|
|
|
+
|
|
|
+ // 状态
|
|
|
+
|
|
|
+ // 更新人
|
|
|
+ List<Integer> updateIds = records.stream().map(o -> o.getUpdateBy()).filter(o -> o != null).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, SysUser> userMap = sysUserService.getMapByIds(updateIds);
|
|
|
+ records.forEach(o -> {
|
|
|
+ if (o.getUpdateBy() != null) {
|
|
|
+ SysUser sysUser = userMap.get(o.getUpdateBy().longValue());
|
|
|
+ if (sysUser != null) {
|
|
|
+ o.setUpdateByName(sysUser.getRealName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (o.getBirdPrice() !=null && o.getBirdPriceEndDate() != null) {
|
|
|
+ o.setHasBirdPrice(true);
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ if (o.getApplyStartDate().after(date)) {
|
|
|
+ o.setStatus("NOT_START");
|
|
|
+ } else if (o.getApplyEndDate().before(date)) {
|
|
|
+ o.setStatus("END");
|
|
|
+ } else {
|
|
|
+ o.setStatus("APPLY");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 报名人数,缴费人数 搜款金额
|
|
|
+ List<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> stat = tempDirectorTrainingCampDetailDao.getStat(ids);
|
|
|
+ Map<Integer, TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> statMap = stat.stream().collect(Collectors.toMap(TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp::getId, o -> o));
|
|
|
|
|
|
+ records.forEach(o -> {
|
|
|
+ TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp tempDirectorTrainingCamp = statMap.get(o.getId());
|
|
|
+ if (tempDirectorTrainingCamp != null) {
|
|
|
+ o.setApplyCount(tempDirectorTrainingCamp.getApplyCount());
|
|
|
+ o.setPayCount(tempDirectorTrainingCamp.getPayCount());
|
|
|
+ o.setPayAmount(tempDirectorTrainingCamp.getPayAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return tempDirectorTrainingCampIPage;
|
|
|
}
|
|
|
|
|
|
|