|
|
|
@ -1,14 +1,13 @@
|
|
|
|
|
package com.kiisoo.ic.activity.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.github.pagehelper.Page;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.kiisoo.ic.activity.bean.ActivityInstanceVO;
|
|
|
|
|
import com.kiisoo.ic.activity.bean.PromotionSrcVO;
|
|
|
|
|
import com.kiisoo.ic.activity.entity.PmnActivityInstance;
|
|
|
|
|
import com.kiisoo.ic.activity.entity.PmnActivityInstanceConfig;
|
|
|
|
|
import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation;
|
|
|
|
|
import com.kiisoo.ic.activity.entity.PmnPromotionSrc;
|
|
|
|
@ -18,24 +17,17 @@ import com.kiisoo.ic.activity.service.IPmnActivityInstanceService;
|
|
|
|
|
import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService;
|
|
|
|
|
import com.kiisoo.ic.activity.service.IPmnPromotionSrcService;
|
|
|
|
|
import com.kiisoo.ic.constants.Constants;
|
|
|
|
|
import com.kiisoo.ic.employee.entity.PrivilageCpUserDO;
|
|
|
|
|
import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper;
|
|
|
|
|
import com.kiisoo.ic.store.entity.PoiStore;
|
|
|
|
|
import com.kiisoo.ic.store.entity.PoiStoreStaff;
|
|
|
|
|
import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO;
|
|
|
|
|
import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
|
|
|
|
|
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
|
|
|
|
|
import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper;
|
|
|
|
|
import com.kiisoo.ic.store.service.PoiStoreService;
|
|
|
|
|
import com.kiisoo.ic.store.service.StoreEmployeeService;
|
|
|
|
|
import com.kiisoo.ic.system.entity.PrivilageAccountDO;
|
|
|
|
|
import com.kiisoo.ic.system.entity.PrivilageRoleDO;
|
|
|
|
|
import com.kiisoo.ic.system.entity.PrivilageUserDO;
|
|
|
|
|
import com.kiisoo.ic.system.enums.RoleEnum;
|
|
|
|
|
import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper;
|
|
|
|
|
import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper;
|
|
|
|
|
import com.kiisoo.ic.system.service.PrivilageAccountService;
|
|
|
|
|
import com.kiisoo.ic.webappmy.vo.StafferInfoVO;
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
|
|
import org.apache.shiro.crypto.hash.SimpleHash;
|
|
|
|
@ -45,9 +37,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
import java.net.URL;
|
|
|
|
|
import java.sql.Wrapper;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -163,7 +153,7 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl<PmnPromotionSrcDOMap
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public boolean createCode(PoiStoreStaff staff, Long instanceId) {
|
|
|
|
|
public PmnPromotionSrc createCode(PoiStoreStaff staff, Long instanceId) {
|
|
|
|
|
try {
|
|
|
|
|
Long promoterId = staff.getUserId();
|
|
|
|
|
int type = 1;
|
|
|
|
@ -186,7 +176,7 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl<PmnPromotionSrcDOMap
|
|
|
|
|
saveSrc.setExpiredTime(instanceVO.getEndTime());
|
|
|
|
|
saveSrc.setInstanceId(instanceId);
|
|
|
|
|
saveSrc.setIsAddition(2L); //是否要独立码: 1、默认 2、额外码
|
|
|
|
|
saveSrc.setType(staff.getType()); //要注意,波司登接口是0门店1导购
|
|
|
|
|
saveSrc.setType(staff.getType().equals(1L) ? 2L : 1L); //要注意,波司登接口是0门店1导购
|
|
|
|
|
saveSrc.setUpdateTime(new Date());
|
|
|
|
|
saveSrc.setStatus(1L);
|
|
|
|
|
String url = storeEmployeeService.createActivityQrCode(staff.getStaffCode(), staff.getStoreCode(), type, instanceId, promoterId);
|
|
|
|
@ -196,34 +186,43 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl<PmnPromotionSrcDOMap
|
|
|
|
|
saveSrc.setQrCode(url);
|
|
|
|
|
pmnPromotionSrcService.saveCodeFile(url, new SimpleHash("MD5", state).toHex());
|
|
|
|
|
boolean save = pmnPromotionSrcService.saveOrUpdate(saveSrc);
|
|
|
|
|
return save;
|
|
|
|
|
return saveSrc;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("活动码创建失败", e);
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return false;
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<PromotionSrcVO> pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception {
|
|
|
|
|
public Map<String, Object> pageStoreCode(Long userId, Long instanceId, Integer pageNum, Integer pageSize) throws Exception {
|
|
|
|
|
Map<String, Object> results = new HashMap<>();
|
|
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
|
|
List<PmnActivityStoreRelation> storeRelations = pmnActivityStoreRelationService.list(Wrappers.<PmnActivityStoreRelation>lambdaQuery().eq(PmnActivityStoreRelation::getInstanceId, instanceId));
|
|
|
|
|
if (CollectionUtils.isEmpty(storeRelations)) {
|
|
|
|
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page(pageNum, pageSize);
|
|
|
|
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmnActivityStoreRelation> storeRelations = pmnActivityStoreRelationService.page(page, Wrappers.<PmnActivityStoreRelation>lambdaQuery().eq(PmnActivityStoreRelation::getInstanceId, instanceId));
|
|
|
|
|
if (CollectionUtils.isEmpty(storeRelations.getRecords())) {
|
|
|
|
|
results.put("this", null);
|
|
|
|
|
}
|
|
|
|
|
AtomicInteger number = new AtomicInteger(1 + ((pageNum - 1) * pageSize));
|
|
|
|
|
for (PmnActivityStoreRelation store : storeRelations) {
|
|
|
|
|
PmnPromotionSrc src = getOne(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getPromoterId, store.getStoreId()).eq(PmnPromotionSrc::getInstanceId, instanceId).eq(PmnPromotionSrc::getType, 2));
|
|
|
|
|
List<PromotionSrcVO> srcs = new ArrayList<>();
|
|
|
|
|
for (PmnActivityStoreRelation store : storeRelations.getRecords()) {
|
|
|
|
|
PmnPromotionSrc src = getOne(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getPromoterId, store.getStoreId()).eq(PmnPromotionSrc::getInstanceId, instanceId).eq(PmnPromotionSrc::getType, 2).last("limit 0,1"));
|
|
|
|
|
if(src == null || src.getCode() == null) {
|
|
|
|
|
File codeFile = new File("activity/" + src.getCode() + ".png");
|
|
|
|
|
|
|
|
|
|
PoiStoreStaff staff = poiStoreStaffDOMapper.selectOne(Wrappers.<PoiStoreStaff>lambdaQuery().eq(PoiStoreStaff::getStoreId, store.getStoreId()).eq(PoiStoreStaff::getType, 1).ne(PoiStoreStaff::getUserId, 0).eq(PoiStoreStaff::getDeleted, 0).eq(PoiStoreStaff::getStatus, 1));
|
|
|
|
|
src = createCode(staff, instanceId);
|
|
|
|
|
}
|
|
|
|
|
PromotionSrcVO vo = new PromotionSrcVO();
|
|
|
|
|
BeanUtils.copyProperties(src, vo);
|
|
|
|
|
vo.setStore(poiStoreDOMapper.selectById(store.getStoreId()));
|
|
|
|
|
vo.setOrganizational(poiStoreDOMapper.findStoreCompany(store.getStoreId()));
|
|
|
|
|
srcs.add(vo);
|
|
|
|
|
number.incrementAndGet();
|
|
|
|
|
}
|
|
|
|
|
//求分页总数
|
|
|
|
|
// Page<ActivityInstanceVO> pageList = (Page<ActivityInstanceVO>) storeRelations;
|
|
|
|
|
// Long totalSize = pageList.getTotal();
|
|
|
|
|
return null;
|
|
|
|
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PromotionSrcVO> srcVoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<PromotionSrcVO>();
|
|
|
|
|
BeanUtils.copyProperties(storeRelations, srcVoPage);
|
|
|
|
|
srcVoPage.setRecords(srcs);
|
|
|
|
|
results.put("this", srcVoPage);
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|