|
@@ -1,5 +1,20 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.yonge.cooleshow.biz.dal.dao.StudentDao;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.EVipRecordStatus;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.EVipType;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.execl.entity.EntitlementsImport;
|
|
|
+import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.DiscountCardRecordWrapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
|
|
|
+import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.Subject;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.TenantAccountRecord;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.TenantGroup;
|
|
@@ -7,11 +22,17 @@ import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
|
|
|
import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.redisson.api.RLock;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -33,6 +54,21 @@ public class EasyExcelServiceImpl implements EasyExcelService {
|
|
|
@Resource
|
|
|
private SysUserService sysUserService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StudentDao studentDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TenantAlbumMapper tenantAlbumMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private VipCardRecordService vipCardRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DiscountCardRecordService discountCardRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserTenantAlbumRecordService userTenantAlbumRecordService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<TenantAccountRecord> getRecordById(List<String> ids) {
|
|
|
return tenantAccountRecordService.lambdaQuery()
|
|
@@ -54,6 +90,84 @@ public class EasyExcelServiceImpl implements EasyExcelService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public Map<String, StudentWrapper.SmallStudent> getStudentMap(List<String> phoneList) {
|
|
|
+ if (CollectionUtils.isEmpty(phoneList)) {
|
|
|
+ return Collections.emptyMap();
|
|
|
+ }
|
|
|
+ List<StudentWrapper.SmallStudent> smallStudents = studentDao.selectStudentByPhoneList(phoneList);
|
|
|
+ if (CollectionUtils.isEmpty(smallStudents)) {
|
|
|
+ return Collections.emptyMap();
|
|
|
+ }
|
|
|
+ return smallStudents.stream().collect(Collectors.toMap(StudentWrapper.SmallStudent::getPhone, o->o, (o1, o2) -> o1));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<Long, List<TenantAlbumWrapper.SmallTenantAlbum>> getTenantAlbumMap(List<Long> tenantIds) {
|
|
|
+ if (CollectionUtils.isEmpty(tenantIds)) {
|
|
|
+ return Collections.emptyMap();
|
|
|
+ }
|
|
|
+ List<TenantAlbumWrapper.SmallTenantAlbum> smallTenantAlbums = tenantAlbumMapper.selectListByTenantIds(tenantIds);
|
|
|
+ if (CollectionUtils.isEmpty(smallTenantAlbums)) {
|
|
|
+ return Collections.emptyMap();
|
|
|
+ }
|
|
|
+ return smallTenantAlbums.stream().collect(Collectors.groupingBy(TenantAlbumWrapper.SmallTenantAlbum::getTenantId));
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void importEntitlements(List<EntitlementsImport> entitlementsImports,Long createId) {
|
|
|
+ for (EntitlementsImport entitlementsImport : entitlementsImports) {
|
|
|
+ switch (entitlementsImport.getEntitlementType()) {
|
|
|
+ case "TENANT_ALBUM":
|
|
|
+
|
|
|
+ // 新增数据
|
|
|
+ UserTenantAlbumRecord userTenantAlbumRecord = new UserTenantAlbumRecord();
|
|
|
+ userTenantAlbumRecord.setTenantId(entitlementsImport.getTenantId());
|
|
|
+ userTenantAlbumRecord.setTenantAlbumId(entitlementsImport.getTenantAlbumId());
|
|
|
+ userTenantAlbumRecord.setTimes(StringUtils.isBlank(entitlementsImport.getNumber())?100:Integer.parseInt(entitlementsImport.getNumber()));
|
|
|
+ userTenantAlbumRecord.setType(entitlementsImport.getPeriod().getCode());
|
|
|
+ userTenantAlbumRecord.setReason(entitlementsImport.getReason());
|
|
|
+ userTenantAlbumRecord.setUserId(entitlementsImport.getUserId());
|
|
|
+ userTenantAlbumRecord.setClientType(ClientEnum.STUDENT);
|
|
|
+ userTenantAlbumRecord.setSourceType(SourceTypeEnum.BACKEND_GIVE);
|
|
|
+ userTenantAlbumRecord.setCreateBy(createId);
|
|
|
+ userTenantAlbumRecordService.add(userTenantAlbumRecord,entitlementsImport.getSendPush());
|
|
|
+ break;
|
|
|
+ case "VIP":
|
|
|
+ case "SVIP":
|
|
|
+ VipCardRecordWrapper.AddVipCardRecord addVipCardRecord = new VipCardRecordWrapper.AddVipCardRecord();
|
|
|
+ addVipCardRecord.setUserId(entitlementsImport.getUserId());
|
|
|
+ addVipCardRecord.setClientType(ClientEnum.STUDENT);
|
|
|
+ addVipCardRecord.setStatus(EVipRecordStatus.ADD);
|
|
|
+ addVipCardRecord.setVipType(EVipType.valueOf(entitlementsImport.getEntitlementType()));
|
|
|
+ addVipCardRecord.setType(entitlementsImport.getPeriod());
|
|
|
+ addVipCardRecord.setTimes(StringUtils.isBlank(entitlementsImport.getNumber())?100:Integer.parseInt(entitlementsImport.getNumber()));
|
|
|
+ addVipCardRecord.setReason(entitlementsImport.getReason());
|
|
|
+ addVipCardRecord.setSendMsg(entitlementsImport.getSendPush());
|
|
|
+ addVipCardRecord.setCreateBy(createId);
|
|
|
+ addVipCardRecord.setSourceType(SourceTypeEnum.BACKEND_GIVE);
|
|
|
+ vipCardRecordService.add(addVipCardRecord);
|
|
|
+ break;
|
|
|
+ case "DISCOUNT":
|
|
|
+ DiscountCardRecordWrapper.AddDiscountCardRecord addDiscountCardRecord = new DiscountCardRecordWrapper.AddDiscountCardRecord();
|
|
|
+ addDiscountCardRecord.setUserId(entitlementsImport.getUserId());
|
|
|
+ addDiscountCardRecord.setClientType(ClientEnum.STUDENT);
|
|
|
+ addDiscountCardRecord.setCreateBy(createId);
|
|
|
+ addDiscountCardRecord.setType(entitlementsImport.getPeriod());
|
|
|
+ addDiscountCardRecord.setTimes(StringUtils.isBlank(entitlementsImport.getNumber())?100:Integer.parseInt(entitlementsImport.getNumber()));
|
|
|
+ addDiscountCardRecord.setReason(entitlementsImport.getReason());
|
|
|
+ addDiscountCardRecord.setSendMsg(entitlementsImport.getSendPush());
|
|
|
+ discountCardRecordService.addStudentVip(addDiscountCardRecord);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Map<String, Long> getTenantGroupMap() {
|
|
|
List<TenantGroup> list = tenantGroupService.lambdaQuery().list();
|
|
|
return CollectionUtils.isEmpty(list) ? null : list.stream().collect(Collectors.toMap(TenantGroup::getName, TenantGroup::getId));
|