|
|
|
@ -5,14 +5,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
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.PmnPromotionSrc;
|
|
|
|
|
import com.kiisoo.ic.activity.mapper.PmnPromotionSrcDOMapper;
|
|
|
|
|
import com.kiisoo.ic.activity.service.IPmnActivityInstanceConfigService;
|
|
|
|
|
import com.kiisoo.ic.activity.service.IPmnActivityInstanceService;
|
|
|
|
|
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;
|
|
|
|
@ -28,9 +31,11 @@ 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.io.FileUtils;
|
|
|
|
|
import org.apache.shiro.crypto.hash.SimpleHash;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
@ -65,68 +70,100 @@ public class PmnPromotionSrcServiceImpl extends ServiceImpl<PmnPromotionSrcDOMap
|
|
|
|
|
private PrivilageAccountService privilageAccountService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private PrivilageRoleDOMapper privilageRoleDOMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IPmnActivityInstanceConfigService pmnActivityInstanceConfigService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IPmnPromotionSrcService pmnPromotionSrcService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public List<PromotionSrcVO> listUserCodes(Long userId) throws Exception {
|
|
|
|
|
List<StafferInfoVO> info = poiStoreStaffDOMapper.selectInfoById(userId);
|
|
|
|
|
PoiStoreStaff staff = poiStoreStaffDOMapper.selectOne(Wrappers.<PoiStoreStaff>lambdaQuery().eq(PoiStoreStaff::getUserId, userId));
|
|
|
|
|
List<PromotionSrcVO> lists = new ArrayList<>();
|
|
|
|
|
if (info.size() > 0) {
|
|
|
|
|
PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(userId);
|
|
|
|
|
// 用户不存在
|
|
|
|
|
if (null == privilageUserDO) {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
PrivilageAccountDO result = privilageAccountService.getAccountByUserId(userId);
|
|
|
|
|
// 该账号已暂停,请联系店长
|
|
|
|
|
if (null != result && result.getStatus().equals(2)) {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(userId);
|
|
|
|
|
Long storeId = privilageUserDOMapper.selectStoreIdByUserId(userId);
|
|
|
|
|
info.get(0).setRoleCode(roleDO.getCode());
|
|
|
|
|
info.get(0).setStoreId(storeId);
|
|
|
|
|
info.get(0).setUserId(userId);
|
|
|
|
|
Long type;
|
|
|
|
|
if(roleDO.getCode().equals(RoleEnum.getRoleByCode("DZ-DIANZHANG"))) {
|
|
|
|
|
type = 2L;
|
|
|
|
|
}else if(roleDO.getCode().equals(RoleEnum.getRoleByCode("DZ-DAOGOU"))){
|
|
|
|
|
type = 1L;
|
|
|
|
|
}else {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
List<PmnPromotionSrc> srcs = list(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getPromoterId, userId).eq(PmnPromotionSrc::getType, type));
|
|
|
|
|
for (PmnPromotionSrc src : srcs) {
|
|
|
|
|
File codeFile = new File("activity/" + src.getCode() + ".png");
|
|
|
|
|
if (!codeFile.exists() || src.getQrCode() == null) {
|
|
|
|
|
PoiStore store = poiStoreDOMapper.selectOne(Wrappers.<PoiStore>lambdaQuery().eq(PoiStore::getId, info.get(0).getStoreId()));
|
|
|
|
|
String cpUserId = "mayifei";
|
|
|
|
|
// String cpUserId = info.getCpUserId();
|
|
|
|
|
String url = "https://wework.qpic.cn/wwpic/789548_SW5hhAm-TgyEW0F_1590128879/0";
|
|
|
|
|
if (cpUserId != "mayifei") {
|
|
|
|
|
url = storeEmployeeService.createActivityQrCode(cpUserId, store.getCode(), src.getType().intValue(), src.getInstanceId(), src.getPromoterId());
|
|
|
|
|
}
|
|
|
|
|
saveCodeFile(url, src.getCode());
|
|
|
|
|
src.setQrCode(url);
|
|
|
|
|
updateById(src);
|
|
|
|
|
}
|
|
|
|
|
PromotionSrcVO vo = new PromotionSrcVO();
|
|
|
|
|
BeanUtils.copyProperties(src, vo);
|
|
|
|
|
ActivityInstanceVO instance = pmnActivityInstanceService.getVO(src.getInstanceId());
|
|
|
|
|
if (
|
|
|
|
|
!((instance.getBeginTime().compareTo(new Date()) == -1 || instance.getBeginTime().compareTo(new Date()) == 0) &&
|
|
|
|
|
instance.getEndTime().compareTo(new Date()) == 1
|
|
|
|
|
)) {
|
|
|
|
|
continue;
|
|
|
|
|
PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(userId);
|
|
|
|
|
// 用户不存在
|
|
|
|
|
if (null == privilageUserDO) {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
PrivilageAccountDO result = privilageAccountService.getAccountByUserId(userId);
|
|
|
|
|
// 该账号已暂停,请联系店长
|
|
|
|
|
if (null != result && result.getStatus().equals(2)) {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(userId);
|
|
|
|
|
Long type;
|
|
|
|
|
if (roleDO.getCode().equals(RoleEnum.getRoleByCode("DZ-DIANZHANG"))) {
|
|
|
|
|
type = 2L;
|
|
|
|
|
} else if (roleDO.getCode().equals(RoleEnum.getRoleByCode("DZ-DAOGOU"))) {
|
|
|
|
|
type = 1L;
|
|
|
|
|
} else {
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
List<PmnPromotionSrc> srcs = list(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getPromoterId, userId).eq(PmnPromotionSrc::getType, type));
|
|
|
|
|
for (PmnPromotionSrc src : srcs) {
|
|
|
|
|
File codeFile = new File("activity/" + src.getCode() + ".png");
|
|
|
|
|
if (!codeFile.exists() || src.getQrCode() == null) {
|
|
|
|
|
String cpUserId = "mayifei";
|
|
|
|
|
// String cpUserId = staff.getStaffCode();
|
|
|
|
|
String url = "https://wework.qpic.cn/wwpic/789548_SW5hhAm-TgyEW0F_1590128879/0";
|
|
|
|
|
if (cpUserId != "mayifei") {
|
|
|
|
|
url = storeEmployeeService.createActivityQrCode(cpUserId, staff.getStoreCode(), src.getType().intValue(), src.getInstanceId(), src.getPromoterId());
|
|
|
|
|
}
|
|
|
|
|
vo.setInstanceVO(instance);
|
|
|
|
|
vo.setQrCode("/activity/" + src.getCode() + ".png");
|
|
|
|
|
lists.add(vo);
|
|
|
|
|
saveCodeFile(url, src.getCode());
|
|
|
|
|
src.setQrCode(url);
|
|
|
|
|
updateById(src);
|
|
|
|
|
}
|
|
|
|
|
PromotionSrcVO vo = new PromotionSrcVO();
|
|
|
|
|
BeanUtils.copyProperties(src, vo);
|
|
|
|
|
ActivityInstanceVO instance = pmnActivityInstanceService.getVO(src.getInstanceId());
|
|
|
|
|
if (
|
|
|
|
|
!((instance.getBeginTime().compareTo(new Date()) == -1 || instance.getBeginTime().compareTo(new Date()) == 0) &&
|
|
|
|
|
instance.getEndTime().compareTo(new Date()) == 1
|
|
|
|
|
)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
vo.setInstanceVO(instance);
|
|
|
|
|
vo.setQrCode("/activity/" + src.getCode() + ".png");
|
|
|
|
|
lists.add(vo);
|
|
|
|
|
}
|
|
|
|
|
System.out.println(11);
|
|
|
|
|
return lists;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public boolean createCode(PoiStoreStaff staff, Long instanceId) {
|
|
|
|
|
try {
|
|
|
|
|
Long userId = staff.getUserId();
|
|
|
|
|
PmnPromotionSrc src = getOne(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getPromoterId, userId).eq(PmnPromotionSrc::getType, staff.getType()).eq(PmnPromotionSrc::getInstanceId, instanceId));
|
|
|
|
|
ActivityInstanceVO instanceVO = pmnActivityInstanceService.getVO(instanceId);
|
|
|
|
|
PmnActivityInstanceConfig config = pmnActivityInstanceConfigService.getOne(Wrappers.<PmnActivityInstanceConfig>lambdaQuery().eq(PmnActivityInstanceConfig::getInstanceId, instanceId));
|
|
|
|
|
String state = Constants.ACTIVITY_QR_CODE_PREFIX + Constants.LINE + instanceId + Constants.LINE + staff.getType() + Constants.LINE + userId;
|
|
|
|
|
PmnPromotionSrc saveSrc = new PmnPromotionSrc();
|
|
|
|
|
if (src != null) {
|
|
|
|
|
saveSrc.setId(src.getId());
|
|
|
|
|
}
|
|
|
|
|
saveSrc.setCaseId(config.getCaseId());
|
|
|
|
|
saveSrc.setCode(state);
|
|
|
|
|
saveSrc.setCreateTime(new Date());
|
|
|
|
|
saveSrc.setExpiredTime(instanceVO.getEndTime());
|
|
|
|
|
saveSrc.setInstanceId(instanceId);
|
|
|
|
|
saveSrc.setPromoterId(userId);
|
|
|
|
|
saveSrc.setIsAddition(2L); //是否要独立码: 1、默认 2、额外码
|
|
|
|
|
saveSrc.setType(1L);
|
|
|
|
|
saveSrc.setUpdateTime(new Date());
|
|
|
|
|
saveSrc.setStatus(1L);
|
|
|
|
|
String url = storeEmployeeService.createActivityQrCode(staff.getStaffCode(), staff.getStoreCode(), 1, instanceId, userId);
|
|
|
|
|
saveSrc.setQrCode(url);
|
|
|
|
|
pmnPromotionSrcService.saveCodeFile(url, new SimpleHash("MD5", state).toHex());
|
|
|
|
|
boolean save = pmnPromotionSrcService.saveOrUpdate(saveSrc);
|
|
|
|
|
return save;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("活动码创建失败", e);
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String saveCodeFile(String fileUrl, String code) {
|
|
|
|
|
try {
|
|
|
|
|