dev_0531
郑皇 5 years ago
parent 9f517cb5ce
commit 68206c3278

@ -46,6 +46,7 @@ import com.kiisoo.ic.webappmy.vo.StafferInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -194,10 +195,10 @@ public class CustomerService {
public void turnBack(TurnBackDTO turnBackDTOS) throws Exception {
String eaCode = turnBackDTOS.getEaCode();
// 判断是否是活动扫码
if(eaCode.contains(Constants.ACTIVITY_QR_CODE_PREFIX)){
if (eaCode.contains(Constants.ACTIVITY_QR_CODE_PREFIX)) {
// 活动码处理
handleActivity(turnBackDTOS, eaCode);
}else{
} else {
// 导购码处理
handleCustomer(turnBackDTOS);
}
@ -205,8 +206,9 @@ public class CustomerService {
/**
*
*
* @param turnBackDTOS
* @param eaCode state
* @param eaCode state
*/
private void handleActivity(TurnBackDTO turnBackDTOS, String eaCode) throws Exception {
String[] strArr = eaCode.split(Constants.LINE);
@ -214,29 +216,30 @@ public class CustomerService {
int type = Integer.parseInt(strArr[2]);
Long promoterId = Long.parseLong(strArr[3]);
// 处理逻辑
if(type == 1) {
if (type == 1) {
//导购逻辑
PmnPromotionSrc src = pmnPromotionSrcService.getOne(Wrappers.<PmnPromotionSrc>lambdaQuery().eq(PmnPromotionSrc::getInstanceId, instanceId).eq(PmnPromotionSrc::getType, type).eq(PmnPromotionSrc::getPromoterId, promoterId));
if(src == null) {
if (src == null) {
PrivilageCpUserDO cpUserDO = privilageCpUserDOMapper.selectOne(Wrappers.<PrivilageCpUserDO>lambdaQuery().eq(PrivilageCpUserDO::getCpUserId, turnBackDTOS.getWxData().getUserId()));
Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(turnBackDTOS.getWxData().getUserId());
String state = Constants.ACTIVITY_QR_CODE_PREFIX + Constants.LINE + instanceId + Constants.LINE + type + Constants.LINE + promoterId;
ActivityInstanceVO instanceVO = pmnActivityInstanceService.getVO(instanceId);
PmnActivityInstanceConfig config = pmnActivityInstanceConfigService.getOne(Wrappers.<PmnActivityInstanceConfig>lambdaQuery().eq(PmnActivityInstanceConfig::getInstanceId, instanceId));
PmnPromotionSrc saveSrc = new PmnPromotionSrc();
saveSrc.setCaseId(config.getCaseId());
saveSrc.setCode(state);
saveSrc.setCreateTime(new Date());
saveSrc.setExpiredTime(instanceVO.getEndTime());
saveSrc.setInstanceId(instanceId);
saveSrc.setPromoterId(cpUserDO.getId());
saveSrc.setIsAddition(2L);
saveSrc.setType(1L);
saveSrc.setUpdateTime(new Date());
saveSrc.setStatus(1L);
PoiStore store = poiStoreDOMapper.selectById(storeId);
String url = storeEmployeeService.createActivityQrCode(turnBackDTOS.getWxData().getUserId(), store.getCode(), 1, instanceId, promoterId);
saveSrc.setQrCode(url);
String state = Constants.ACTIVITY_QR_CODE_PREFIX + Constants.LINE + instanceId + Constants.LINE + type + Constants.LINE + promoterId;
ActivityInstanceVO instanceVO = pmnActivityInstanceService.getVO(instanceId);
PmnActivityInstanceConfig config = pmnActivityInstanceConfigService.getOne(Wrappers.<PmnActivityInstanceConfig>lambdaQuery().eq(PmnActivityInstanceConfig::getInstanceId, instanceId));
PmnPromotionSrc saveSrc = new PmnPromotionSrc();
saveSrc.setCaseId(config.getCaseId());
saveSrc.setCode(state);
saveSrc.setCreateTime(new Date());
saveSrc.setExpiredTime(instanceVO.getEndTime());
saveSrc.setInstanceId(instanceId);
saveSrc.setPromoterId(cpUserDO.getId());
saveSrc.setIsAddition(2L);
saveSrc.setType(1L);
saveSrc.setUpdateTime(new Date());
saveSrc.setStatus(1L);
PoiStore store = poiStoreDOMapper.selectById(storeId);
String url = storeEmployeeService.createActivityQrCode(turnBackDTOS.getWxData().getUserId(), store.getCode(), 1, instanceId, promoterId);
saveSrc.setQrCode(url);
pmnPromotionSrcService.saveCodeFile(url, new SimpleHash("MD5", state).toHex());
pmnPromotionSrcService.save(saveSrc);
}
}
@ -244,6 +247,7 @@ public class CustomerService {
/**
*
*
* @param turnBackDTOS
*/
private void handleCustomer(TurnBackDTO turnBackDTOS) throws Exception {
@ -253,12 +257,12 @@ public class CustomerService {
QueryWrapper<OpCustomer> customerWrapper = new QueryWrapper<>();
customerWrapper.eq("wechat_uni_id", null).eq("external_userid", turnBackDTOS.getWxData().getUserId()).last("limit 1");
opCustomer = opCustomerDOMapper.selectOne(customerWrapper);
}else if (turnBackDTOS.getWxData().getUnionId() != null && turnBackDTOS.getUserId() != null){
} else if (turnBackDTOS.getWxData().getUnionId() != null && turnBackDTOS.getUserId() != null) {
//客户信息
QueryWrapper<OpCustomer> customerWrapper = new QueryWrapper<>();
customerWrapper.eq("wechat_uni_id", turnBackDTOS.getWxData().getUnionId()).last("limit 1");
opCustomer = opCustomerDOMapper.selectOne(customerWrapper);
}else{
} else {
log.error("turn back error: " + turnBackDTOS.toString());
return;
}
@ -275,10 +279,10 @@ public class CustomerService {
if (!turnBackDTOS.getEaCode().equals("") && !turnBackDTOS.getEaCode().equals("0")) {
//导购信息
QueryWrapper<PoiStoreStaff> wrapper = new QueryWrapper<>();
if (turnBackDTOS.getEaCode().matches("导购(.*)")){
wrapper.eq("staff_code", turnBackDTOS.getEaCode()).eq("status","1").last("limit 1");
}else{
wrapper.eq("staff_code", turnBackDTOS.getEaCode()).eq("status","1").eq("store_id", poiStore.getStoreId()).last("limit 1");
if (turnBackDTOS.getEaCode().matches("导购(.*)")) {
wrapper.eq("staff_code", turnBackDTOS.getEaCode()).eq("status", "1").last("limit 1");
} else {
wrapper.eq("staff_code", turnBackDTOS.getEaCode()).eq("status", "1").eq("store_id", poiStore.getStoreId()).last("limit 1");
}
poiStoreStaff = poiStoreStaffDOMapper.selectOne(wrapper);
}
@ -292,11 +296,11 @@ public class CustomerService {
insertCustomer.setExternalUserid(turnBackDTOS.getWxData().getUserId());
insertCustomer.setCpUserId(turnBackDTOS.getUserId());
insertCustomer.setPhone(turnBackDTOS.getPhone());
if (shop != null && StringUtils.isNotBlank(shop.getName())){
if (shop != null && StringUtils.isNotBlank(shop.getName())) {
insertCustomer.setShopName(shop.getName());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (turnBackDTOS.getJoinTime() != null){
if (turnBackDTOS.getJoinTime() != null) {
insertCustomer.setCreateTime(sdf.parse(turnBackDTOS.getJoinTime()));
}
if (null != opCustomer) {
@ -304,23 +308,23 @@ public class CustomerService {
insertCustomer.setId(opCustomer.getId());
try {
opCustomerDOMapper.updateById(insertCustomer);
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
if (poiStoreStaff != null) {
//存在--1.处理客户导购关系。
try {
sellerCustomerRelation(insertCustomer, sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId(), poiStoreStaff.getId());
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
} else {
try {
storeCustomerRelation(insertCustomer,sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId());
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
storeCustomerRelation(insertCustomer, sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId());
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
}
@ -329,8 +333,8 @@ public class CustomerService {
//不存在
try {
opCustomerDOMapper.insert(insertCustomer);
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
@ -338,15 +342,15 @@ public class CustomerService {
//添加关系
try {
sellerCustomerRelation(insertCustomer, sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId(), poiStoreStaff.getId());
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
} else {
try {
storeCustomerRelation(insertCustomer, sdf.parse(turnBackDTOS.getJoinTime()),poiStore.getStoreId());
}catch (Exception e) {
log.error(insertCustomer.toString(),e);
storeCustomerRelation(insertCustomer, sdf.parse(turnBackDTOS.getJoinTime()), poiStore.getStoreId());
} catch (Exception e) {
log.error(insertCustomer.toString(), e);
return;
}
}
@ -396,9 +400,9 @@ public class CustomerService {
opCustomer.setMemberId(opVip.getId());
}
QueryWrapper<OpCustomer> wrapper1 = new QueryWrapper<>();
if (turnBackDTO.getType() == 1){
if (turnBackDTO.getType() == 1) {
wrapper1.eq("wechat_uni_id", turnBackDTO.getWxData().getUnionId());
}else{
} else {
wrapper1.eq("external_userid", turnBackDTO.getWxData().getUserId());
}
opCustomerDOMapper.update(opCustomer, wrapper1);
@ -406,6 +410,7 @@ public class CustomerService {
/**
*
*
* @param opCustomer
* @param joinTime
* @param shopId
@ -440,7 +445,7 @@ public class CustomerService {
insertRelation.setType(2);
}
opSellerCustomerRelationDOMapper.insert(insertRelation);
}else{
} else {
//可能是同步过来的数据,此时已经存在的话,用有导购的代替
opSellerCustomerRelation.setCreateTime(joinTime);
opSellerCustomerRelation.setUpdateTime(new Date());
@ -454,7 +459,7 @@ public class CustomerService {
}
@Transactional(rollbackFor = Exception.class)
public void storeCustomerRelation(OpCustomer opCustomer, Date joinTime,long shopId) {
public void storeCustomerRelation(OpCustomer opCustomer, Date joinTime, long shopId) {
QueryWrapper<OpSellerCustomerRelation> wrapper1 = new QueryWrapper<>();
wrapper1.eq("customer_id", opCustomer.getId()).eq("store_id", shopId).last("limit 1");
OpSellerCustomerRelation opSellerCustomerRelation = opSellerCustomerRelationDOMapper.selectOne(wrapper1);
@ -480,13 +485,13 @@ public class CustomerService {
//无效
insertRelation.setType(2);
}
if (shopId == 0L){
if (shopId == 0L) {
QueryWrapper<PrivilageCpUserDO> cpQw = new QueryWrapper<>();
cpQw.eq("cp_user_id",opCustomer.getCpUserId()).last("limit 1");
cpQw.eq("cp_user_id", opCustomer.getCpUserId()).last("limit 1");
PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectOne(cpQw);
if (privilageCpUserDO!=null){
if (privilageCpUserDO != null) {
insertRelation.setUserId(privilageCpUserDO.getId());
}else{
} else {
privilageCpUserDO = new PrivilageCpUserDO();
privilageCpUserDO.setCpUserId(opCustomer.getCpUserId());
privilageCpUserDO.setStatus(1);
@ -594,14 +599,15 @@ public class CustomerService {
/**
*
* @param userId ID
* @param sellerId ID
* @param search
* @param roleCode
* @param type
*
* @param userId ID
* @param sellerId ID
* @param search
* @param roleCode
* @param type
* @param startDate
* @param endDate
* @param flag 0 1
* @param endDate
* @param flag 0 1
* @return
* @throws Exception
* @author dexiang.jiang
@ -619,34 +625,34 @@ public class CustomerService {
PageHelper.startPage(pageNum, pageSize);
if (roleCode.equals(RoleEnum.ROLE_CODE_DZ.getRoleCode())) {
// 0、新增好友 1、累计好友
if(flag == 0){
if (flag == 0) {
thisList = opSellerCustomerRelationDOMapper.selectFriendListByShopId(shopId, sellerId, search, startDate, endDate, type);
}else{
} else {
thisList = opSellerCustomerRelationDOMapper.selectFriendListByShopIdAndDate(shopId, sellerId, search, startDate, endDate, type);
}
if(CollectionUtils.isNotEmpty(thisList)){
if (CollectionUtils.isNotEmpty(thisList)) {
for (int i = 0; i < thisList.size(); i++) {
// 设置导购名称
if(!thisList.get(i).getInviteSellerId().equals(0L)){
if (!thisList.get(i).getInviteSellerId().equals(0L)) {
Map<String, Object> map = new HashMap<>();
map.put("id", thisList.get(i).getInviteSellerId());
String userName = poiStoreStaffDOMapper.selectUserNameById(thisList.get(i).getInviteSellerId());
if(StringUtils.isNotEmpty(userName)){
if (StringUtils.isNotEmpty(userName)) {
thisList.get(i).setInviteSellerName(userName);
}else{
} else {
thisList.get(i).setInviteSellerName("");
}
}else{
} else {
thisList.get(i).setInviteSellerName("");
}
}
}
} else {
// 0、新增好友 1、累计好友
if(flag == 0){
if (flag == 0) {
thisList = opSellerCustomerRelationDOMapper.selectFriendListBySeller(userId, search, startDate, endDate, type);
}else{
} else {
thisList = opSellerCustomerRelationDOMapper.selectFriendListBySellerAndDate(userId, search, startDate, endDate, type);
}
}

Loading…
Cancel
Save