package com.ruoyi.shop.service.impl.shop;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.common.core.utils.DateUtils;
|
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.common.core.utils.bean.BeanUtils;
|
import com.ruoyi.common.core.utils.uuid.IdUtils;
|
import com.ruoyi.common.security.utils.CodeFactoryUtil;
|
import com.ruoyi.shop.domain.dto.*;
|
import com.ruoyi.shop.domain.pojo.shop.ShopTotal;
|
import com.ruoyi.shop.domain.pojo.shop.*;
|
import com.ruoyi.shop.domain.pojo.task.ShopFile;
|
import com.ruoyi.shop.domain.vo.*;
|
import com.ruoyi.shop.mapper.shop.ShopMapper;
|
import com.ruoyi.shop.service.shop.*;
|
import com.ruoyi.shop.service.task.MemberTaskService;
|
import com.ruoyi.shop.service.task.ShopFileService;
|
import com.ruoyi.system.api.constant.AppErrorConstant;
|
import com.ruoyi.system.api.domain.dto.*;
|
import com.ruoyi.system.api.domain.poji.config.SysTag;
|
import com.ruoyi.system.api.domain.poji.member.Member;
|
import com.ruoyi.system.api.domain.poji.shop.Shop;
|
import com.ruoyi.system.api.domain.poji.sys.SysUser;
|
import com.ruoyi.system.api.domain.vo.*;
|
import com.ruoyi.system.api.service.RemoteConfigService;
|
import com.ruoyi.system.api.service.RemoteMemberService;
|
import com.ruoyi.system.api.service.RemoteOrderService;
|
import com.ruoyi.system.api.service.RemoteUserService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.util.*;
|
import java.util.function.Function;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 商户表 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
|
|
@Resource
|
private ShopMapper shopMapper;
|
|
@Resource
|
private ShopFileService shopFileService;
|
|
@Resource
|
private ShopCertificateService shopCertificateService;
|
|
@Resource
|
private RemoteConfigService configService;
|
|
@Resource
|
private RemoteMemberService remoteMemberService;
|
|
@Resource
|
private RemoteUserService sysUserService;
|
|
@Resource
|
private ShopRelTagService shopRelTagService;
|
|
@Resource
|
private ShopRelUserService shopRelUserService;
|
|
@Resource
|
private RemoteOrderService remoteOrderService;
|
|
@Resource
|
private ShopStaffService shopStaffService;
|
|
@Resource
|
private ShopAccountService shopAccountService;
|
|
@Resource
|
private ShopAuthenticationService shopAuthenticationService;
|
|
@Resource
|
private ShopProportionService shopProportionService;
|
|
@Resource
|
private RemoteConfigService remoteConfigService;
|
|
@Resource
|
private ShopTotalService shopTotalService;
|
|
@Resource
|
private MemberTaskService memberTaskService;
|
|
@Resource
|
private ShopTransferRecordService shopTransferRecordService;
|
|
@Resource
|
private RemoteUserService remoteUserService;
|
|
|
/**
|
* 获取商户详情
|
* @param shopId
|
* @return
|
*/
|
@Override
|
public AppShopInfoVo getAppShopInfo(Long shopId){
|
AppShopInfoVo appShopInfoVo = new AppShopInfoVo();
|
Shop shop = this.getById(shopId);
|
BeanUtils.copyProperties(shop,appShopInfoVo);
|
//商户地址
|
appShopInfoVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
|
//商品图片
|
List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
|
String shopPicture = null;
|
StringJoiner shopBanners = new StringJoiner(",");
|
if(shopFileList!=null&&!shopFileList.isEmpty()){
|
for(ShopFile shopFile : shopFileList){
|
if(shopFile.getFileType()==1){
|
shopPicture = shopFile.getFileUrl();
|
}else{
|
shopBanners.add(shopFile.getFileUrl());
|
}
|
}
|
}
|
appShopInfoVo.setShopPicture(shopPicture);
|
appShopInfoVo.setShopBanners(shopBanners.toString());
|
//商户证书
|
List<ShopCertificate> shopCertificateList = shopCertificateService.listShopCertificateByShopId(shopId);
|
if(shopCertificateList!=null&&!shopCertificateList.isEmpty()){
|
appShopInfoVo.setShopCertificateList(shopCertificateList);
|
}
|
return appShopInfoVo;
|
}
|
|
/**
|
* 创建商户
|
* @param mgtEditShopDto
|
*/
|
@Override
|
public void createShop(MgtEditShopDto mgtEditShopDto){
|
Shop shop = new Shop();
|
Boolean newShop = false;
|
BigDecimal zeroBig = BigDecimal.ZERO;
|
//验证关联账号唯一
|
String relUserIds = mgtEditShopDto.getRelUserIds();
|
if(StringUtils.isNotBlank(relUserIds)) {
|
String[] relUserIdArray = relUserIds.split(",");
|
ShopRelUser shopRelUser;
|
Long userId;
|
for (String str : relUserIdArray) {
|
userId = Long.valueOf(str);
|
shopRelUser = shopRelUserService.getByUserId(userId);
|
if(shopRelUser!=null){
|
throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE);
|
}
|
}
|
}
|
//验证商户名唯一
|
Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
|
if(mgtEditShopDto.getShopId()!=null){
|
if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
|
throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
|
}
|
shop = this.getById(mgtEditShopDto.getShopId());
|
shop.setUpdateTime(new Date());
|
shop.setUpdateUserId(mgtEditShopDto.getUserId());
|
shop.setShopTags(null);
|
//清空关联记录
|
shopFileService.deleteByShopId(shop.getShopId());
|
shopRelTagService.deleteByShopId(shop.getShopId());
|
shopRelUserService.deleteByShopId(shop.getShopId());
|
//清空归属
|
shopRelUserService.deleteByShopId(shop.getShopId());
|
shopStaffService.clearShopStaffRelation(shop.getShopId());
|
}else{
|
if(shopSame!=null){
|
throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
|
}
|
shop.setDelFlag(0);
|
shop.setShopStatus(3);
|
shop.setCreateTime(new Date());
|
shop.setCreateUserId(mgtEditShopDto.getUserId());
|
shop.setFrozenFlag(0);
|
shop.setCooperativeFlag(0);
|
newShop = true;
|
}
|
BeanUtils.copyProperties(mgtEditShopDto,shop);
|
//商户编号
|
if(mgtEditShopDto.getShopId()==null){
|
String shopNo = CodeFactoryUtil.getShopNo();
|
shop.setShopNumber(shopNo);
|
}
|
this.saveOrUpdate(shop);
|
//商户标签
|
String shopTagIds = mgtEditShopDto.getShopTagIds();
|
if(StringUtils.isNotBlank(shopTagIds)){
|
String[] shopTagIdArray = shopTagIds.split(",");
|
ShopRelTag shopRelTag;
|
Long tagid;
|
StringJoiner shopTagSj = new StringJoiner(",");
|
SysTag sysTag;
|
for(String str : shopTagIdArray){
|
shopRelTag = new ShopRelTag();
|
tagid = Long.valueOf(str);
|
sysTag = configService.getSysTag(tagid).getData();
|
shopRelTag.setDelFlag(0);
|
shopRelTag.setShopId(shop.getShopId());
|
shopRelTag.setTagId(tagid);
|
shopRelTagService.save(shopRelTag);
|
shopTagSj.add(sysTag.getTagName());
|
}
|
shop.setShopTags(shopTagSj.toString());
|
this.saveOrUpdate(shop);
|
}
|
//商户归属员工
|
/*if(shop.getBelongUserId()!=null){
|
SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData();
|
handleShopStaff(shop.getShopId(),belongSysUser);
|
}*/
|
//商户关联人员
|
if(StringUtils.isNotBlank(relUserIds)){
|
shopStaffService.clearShopStaffRelation(shop.getShopId());
|
String[] relUserIdArray = relUserIds.split(",");
|
ShopRelUser shopRelUser;
|
Long userId;
|
SysUser sysUser;
|
for(String str : relUserIdArray){
|
shopRelUser = new ShopRelUser();
|
userId = Long.valueOf(str);
|
sysUser = sysUserService.getSysUser(userId).getData();
|
shopRelUser.setDelFlag(0);
|
shopRelUser.setShopId(shop.getShopId());
|
shopRelUser.setUserId(userId);
|
shopRelUser.setUserName(sysUser.getNickName());
|
shopRelUser.setUserMobile(sysUser.getPhonenumber());
|
shopRelUser.setUserDeptId(sysUser.getDeptId());
|
shopRelUserService.save(shopRelUser);
|
handleShopStaff(shop.getShopId(),sysUser);
|
}
|
}
|
//商户封面
|
ShopFile shopFile = new ShopFile();
|
shopFile.setDelFlag(0);
|
shopFile.setFileType(1);
|
shopFile.setFileUrl(mgtEditShopDto.getShopPicture());
|
shopFile.setShopId(shop.getShopId());
|
shopFileService.save(shopFile);
|
//商户banner
|
if(StringUtils.isNotBlank(mgtEditShopDto.getShopBanners())){
|
String shopBanners= mgtEditShopDto.getShopBanners();
|
String[] shopBannerArray = shopBanners.split(",");
|
for(String str : shopBannerArray){
|
shopFile = new ShopFile();
|
shopFile.setDelFlag(0);
|
shopFile.setFileType(2);
|
shopFile.setFileUrl(str);
|
shopFile.setShopId(shop.getShopId());
|
shopFileService.save(shopFile);
|
}
|
}
|
if(newShop){
|
//商户账户信息初始化
|
ShopAccount shopAccount = new ShopAccount();
|
shopAccount.setShopId(shop.getShopId());
|
shopAccount.setDelFlag(0);
|
shopAccount.setTotalIncome(new BigDecimal("0"));
|
shopAccount.setTotalDisburse(new BigDecimal("0"));
|
shopAccount.setTotalRefund(new BigDecimal("0"));
|
shopAccount.setTotalProfitsharing(new BigDecimal("0"));
|
shopAccount.setTotalMoney(new BigDecimal("0"));
|
shopAccountService.save(shopAccount);
|
//商户认证信息初始化
|
String authId = IdUtils.simpleUUID();
|
ShopAuthentication shopAuthentication = new ShopAuthentication();
|
shopAuthentication.setAuthId(authId);
|
shopAuthentication.setDelFlag(0);
|
shopAuthentication.setShopId(shop.getShopId());
|
shopAuthenticationService.save(shopAuthentication);
|
//商户分成信息初始化
|
ShopProportion shopProportion = new ShopProportion();
|
shopProportion.setDelFlag(0);
|
shopProportion.setShopId(shop.getShopId());
|
shopProportion.setShopType(shop.getShopType());
|
shopProportion.setProportionPercent(new BigDecimal("100.00"));
|
shopProportion.setUpdateTime(new Date());
|
shopProportion.setUpdateUserId(mgtEditShopDto.getUserId());
|
shopProportionService.save(shopProportion);
|
//商户统计
|
ShopTotal shopTotal = new ShopTotal();
|
shopTotal.setShopId(shop.getShopId());
|
shopTotal.setDelFlag(0);
|
shopTotal.setLastPayMoney(zeroBig);
|
shopTotal.setTotalActivityCount(0);
|
shopTotal.setTotalOrder(0);
|
shopTotal.setTotalCycleOrder(0);
|
shopTotal.setTotalExperienceOrder(0);
|
shopTotal.setTotalServiceOrder(0);
|
shopTotal.setTotalGoodsOrder(0);
|
shopTotal.setTotalServiceCount(0);
|
shopTotal.setUsedServiceCount(0);
|
shopTotal.setUseableServiceCount(0);
|
shopTotal.setTotalCycleService(0);
|
shopTotal.setUsedCycleService(0);
|
shopTotal.setUseableCycleService(0);
|
shopTotal.setTotalCyclePerson(0);
|
shopTotal.setUseableCyclePerson(0);
|
shopTotal.setTotalServiceService(0);
|
shopTotal.setUsedServiceService(0);
|
shopTotal.setUseableServiceService(0);
|
shopTotal.setTotalServicePerson(0);
|
shopTotal.setUseableServicePerson(0);
|
shopTotal.setTotalExperienceService(0);
|
shopTotal.setUsedExperienceService(0);
|
shopTotal.setUseableExperienceService(0);
|
shopTotal.setTotalExperiencePerson(0);
|
shopTotal.setUseableExperiencePerson(0);
|
shopTotal.setTotalOrderMoney(zeroBig);
|
shopTotal.setTotalCycleMoney(zeroBig);
|
shopTotal.setTotalExperienceMoney(zeroBig);
|
shopTotal.setTotalServiceMoney(zeroBig);
|
shopTotal.setTotalGoodsMoney(zeroBig);
|
shopTotalService.save(shopTotal);
|
}
|
}
|
|
/**
|
* @description 终止合作
|
* @author jqs
|
* @date 2023/6/20 12:01
|
* @param mgtTerminateCooperationDto
|
* @return void
|
*/
|
@Override
|
public void terminateMgtCooperation(MgtTerminateCooperationDto mgtTerminateCooperationDto){
|
Shop shop = this.getById(mgtTerminateCooperationDto.getShopId());
|
if(mgtTerminateCooperationDto.getCooperativeFlag()==1){
|
/*Date coopStartDate = shop.getCooperationStartTime();
|
Date coopEndDate = shop.getCooperationEndTime();
|
Date nowTime = new Date();
|
//判断合作时间 没在时间内不能开启
|
if(coopStartDate.compareTo(nowTime)>0&&coopEndDate.compareTo(nowTime)<0){
|
throw new ServiceException(AppErrorConstant.COOPERATION_TIME_ERROR);
|
}*/
|
shop.setCooperativeFlag(1);
|
if(shop.getShopStatus()==2&&shop.getFrozenFlag()==0){
|
shop.setShopStatus(1);
|
}else if(shop.getShopStatus()==2&&shop.getFrozenFlag()==1){
|
shop.setShopStatus(0);
|
}
|
}else{
|
shop.setCooperativeFlag(0);
|
shop.setShopStatus(2);
|
}
|
shop.setUpdateTime(new Date());
|
shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId());
|
this.saveOrUpdate(shop);
|
}
|
|
|
/**
|
* 修改合作时间
|
* @param mgtChangeCoopDto
|
*/
|
@Override
|
public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){
|
Shop shop = this.getById(mgtChangeCoopDto.getShopId());
|
Date coopStartDate = null;
|
Date coopEndDate = null;
|
try {
|
coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(),"yyyy-MM-dd");
|
coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(),"yyyy-MM-dd");
|
} catch (ParseException e) {
|
throw new RuntimeException(e);
|
}
|
Date nowTime = new Date();
|
shop.setCooperationStartTime(coopStartDate);
|
shop.setCooperationEndTime(coopEndDate);
|
Boolean inTime = false;
|
if(coopStartDate.compareTo(nowTime)<=0&&coopEndDate.compareTo(nowTime)>=0){
|
inTime = true;
|
shop.setCooperativeFlag(1);
|
}else{
|
shop.setCooperativeFlag(0);
|
}
|
if(shop.getShopStatus()==2&&inTime){
|
shop.setShopStatus(1);
|
}
|
shop.setUpdateTime(nowTime);
|
shop.setUpdateUserId(mgtChangeCoopDto.getUserId());
|
this.saveOrUpdate(shop);
|
}
|
|
/**
|
* 分页获取商户
|
* @param page
|
* @param mgtShopPageDto
|
* @return
|
*/
|
@Override
|
public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){
|
if (StringUtils.isNotBlank(mgtShopPageDto.getShopTags())) {
|
mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",", "|"));
|
}
|
// 分页查询商铺信息
|
List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto);
|
// 如果查询结果不为空
|
if (!mgtShopPageVoList.isEmpty()) {
|
// 创建签约用户ID集合和所属用户ID集合
|
HashSet<Long> signUserIdSet = new HashSet<>();
|
HashSet<Long> belongUserIdSet = new HashSet<>();
|
// 遍历查询结果,将签约用户和所属用户添加到对应的集合中
|
for (MgtShopPageVo shopPageVo : mgtShopPageVoList) {
|
if (shopPageVo.getSignUserId() != null) {
|
signUserIdSet.add(shopPageVo.getSignUserId());
|
}
|
if (shopPageVo.getBelongUserId() != null) {
|
belongUserIdSet.add(shopPageVo.getBelongUserId());
|
}
|
}
|
MgtBaseBathDto mgtBaseBathDto;
|
Map<Long, MgtSysSimpleUserVo> signUserMap = null;
|
Map<Long, MgtSysSimpleUserVo> belongUserMap = null;
|
if(signUserIdSet!=null&&!signUserIdSet.isEmpty()){
|
String signUserString = String.join(",", signUserIdSet.stream().map(Object::toString).collect(Collectors.toList()));
|
mgtBaseBathDto = new MgtBaseBathDto();
|
mgtBaseBathDto.setIds(signUserString);
|
List<MgtSysSimpleUserVo> signUserVoList = remoteConfigService.listSimpleUserVo(mgtBaseBathDto).getData();
|
signUserMap = signUserVoList.stream()
|
.collect(Collectors.toMap(MgtSysSimpleUserVo::getUserId, Function.identity()));
|
}
|
if(belongUserIdSet!=null&&!belongUserIdSet.isEmpty()){
|
// 将签约用户ID集合和所属用户ID集合转为字符串
|
String belongUserString = String.join(",", belongUserIdSet.stream().map(Object::toString).collect(Collectors.toList()));
|
// 查询签约用户和所属用户的详细信息
|
mgtBaseBathDto = new MgtBaseBathDto();
|
mgtBaseBathDto.setIds(belongUserString);
|
List<MgtSysSimpleUserVo> belongUserVoList = remoteConfigService.listSimpleUserVo(mgtBaseBathDto).getData();
|
belongUserMap = belongUserVoList.stream()
|
.collect(Collectors.toMap(MgtSysSimpleUserVo::getUserId, Function.identity()));
|
}
|
// 遍历查询结果,将签约用户和所属用户的详细信息添加到商铺信息中
|
for (MgtShopPageVo shopPageVo : mgtShopPageVoList) {
|
if (signUserMap!=null&&!signUserMap.isEmpty()&&shopPageVo.getSignUserId() != null) {
|
shopPageVo.setSignUser(signUserMap.get(shopPageVo.getSignUserId()).getNickName());
|
}
|
if (belongUserMap!=null&&!belongUserMap.isEmpty()&&shopPageVo.getBelongUserId() != null) {
|
shopPageVo.setBelongUser(belongUserMap.get(shopPageVo.getBelongUserId()).getNickName());
|
shopPageVo.setBelongDept(belongUserMap.get(shopPageVo.getBelongUserId()).getDeptName());
|
}
|
}
|
}
|
// 返回商铺信息
|
return mgtShopPageVoList;
|
}
|
|
/**
|
* 获取商户详情
|
* @param shopId
|
* @return
|
*/
|
@Override
|
public MgtShopInfoVo getMgtShopInfo(Long shopId){
|
MgtShopInfoVo mgtShopInfoVo = new MgtShopInfoVo();
|
Shop shop = this.getById(shopId);
|
//基本信息拷贝
|
BeanUtils.copyProperties(shop,mgtShopInfoVo);
|
//商户标签
|
List<ShopRelTag> shopRelTagList = shopRelTagService.listShopRelTagByShopId(shopId);
|
if(shopRelTagList!=null&&!shopRelTagList.isEmpty()){
|
StringJoiner shopTagJs = new StringJoiner(",");
|
for(ShopRelTag shopRelTag : shopRelTagList){
|
shopTagJs.add(shopRelTag.getTagId().toString());
|
}
|
mgtShopInfoVo.setShopTagIds(shopTagJs.toString());
|
}
|
//商户关联用户
|
List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId);
|
if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){
|
StringJoiner shopUserJs = new StringJoiner(",");
|
StringJoiner shopUserNameJs = new StringJoiner(",");
|
for(ShopRelUser shopRelUser : shopRelUserList){
|
shopUserJs.add(shopRelUser.getUserId().toString());
|
shopUserNameJs.add(shopRelUser.getUserName());
|
}
|
mgtShopInfoVo.setRelUserIds(shopUserJs.toString());
|
mgtShopInfoVo.setRelUsers(shopUserNameJs.toString());
|
}
|
//商户图片
|
List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
|
if(shopFileList!=null&&!shopFileList.isEmpty()){
|
StringJoiner shopBannerJs = new StringJoiner(",");
|
for(ShopFile shopFile : shopFileList){
|
if(shopFile.getFileType()==1){
|
mgtShopInfoVo.setShopPicture(shopFile.getFileUrl());
|
}else{
|
shopBannerJs.add(shopFile.getFileUrl());
|
}
|
}
|
mgtShopInfoVo.setShopBanners(shopBannerJs.toString());
|
}
|
//商户证书
|
List<ShopCertificate> shopCertificateList = shopCertificateService.listShopCertificateByShopId(shopId);
|
mgtShopInfoVo.setShopCertificateList(shopCertificateList);
|
return mgtShopInfoVo;
|
}
|
|
/**
|
* 修改商户标签
|
* @param mgtEditShopTagDto
|
*/
|
@Override
|
public void editShopTag(MgtEditShopTagDto mgtEditShopTagDto){
|
Long shopId = Long.valueOf(mgtEditShopTagDto.getId());
|
String shopTagIds = mgtEditShopTagDto.getShopTagIds();
|
String shopTags = null;
|
//删除以前的标签
|
shopRelTagService.deleteByShopId(shopId);
|
if(StringUtils.isNotBlank(shopTagIds)){
|
ShopRelTag shopRelTag;
|
SysTag sysTag;
|
Long tagId;
|
String[] shopTagIdArray = shopTagIds.split(",");
|
StringJoiner shopTagSj = new StringJoiner(",");
|
for(String str : shopTagIdArray){
|
tagId = Long.valueOf(str);
|
sysTag = configService.getSysTag(tagId).getData();
|
shopRelTag = new ShopRelTag();
|
shopRelTag.setDelFlag(0);
|
shopRelTag.setShopId(shopId);
|
shopRelTag.setTagId(tagId);
|
shopRelTagService.save(shopRelTag);
|
shopTagSj.add(sysTag.getTagName());
|
}
|
shopTags = shopTagSj.toString();
|
}
|
Shop shop = this.getById(shopId);
|
shop.setShopTags(shopTags);
|
this.saveOrUpdate(shop);
|
}
|
|
|
/**
|
* @description 转移客户
|
* @author jqs
|
* @date 2023/6/28 16:36
|
* @param mgtTransferShopDto
|
* @return void
|
*/
|
@Override
|
public void transferMgtShop(MgtTransferShopDto mgtTransferShopDto){
|
Shop shop = this.getByShopId(mgtTransferShopDto.getShopId());
|
if(shop.getBelongUserId()!=null){
|
ShopTransferRecord shopTransferRecord = new ShopTransferRecord();
|
shopTransferRecord.setDelFlag(0);
|
shopTransferRecord.setShopId(shop.getShopId());
|
shopTransferRecord.setBeforeUserId(shop.getBelongUserId());
|
shopTransferRecord.setAfterUserId(mgtTransferShopDto.getTransferUserId());
|
shopTransferRecord.setTransferRemark(mgtTransferShopDto.getTransferRemark());
|
shopTransferRecordService.save(shopTransferRecord);
|
shopRelUserService.deleteByUserId(shop.getBelongUserId());
|
}
|
shop.setBelongUserId(mgtTransferShopDto.getTransferUserId());
|
this.saveOrUpdate(shop);
|
ShopRelUser shopRelUser = new ShopRelUser();
|
shopRelUser.setDelFlag(0);
|
shopRelUser.setShopId(shop.getShopId());
|
shopRelUser.setUserId(mgtTransferShopDto.getTransferUserId());
|
SysUser sysUser = remoteUserService.getSysUser(mgtTransferShopDto.getTransferUserId()).getData();
|
shopRelUser.setUserMobile(sysUser.getPhonenumber());
|
shopRelUser.setUserDeptId(sysUser.getDeptId());
|
shopRelUser.setUserName(sysUser.getNickName());
|
shopRelUserService.save(shopRelUser);
|
}
|
|
/**
|
* 获取附近门店
|
* @param appNearbyShopDto
|
* @return
|
*/
|
@Override
|
public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto,Member member){
|
AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo();
|
Shop shop = null;
|
//获取附近商户
|
if(member!=null&&member.getRelationShopId()!=null&&member.getBindingFlag()==1){
|
//获取绑定商户
|
shop = this.getById(member.getRelationShopId());
|
}else if(StringUtils.isNotBlank(appNearbyShopDto.getLatitude())&&StringUtils.isNotBlank(appNearbyShopDto.getLongitude())){
|
AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto);
|
shop = this.getById(appNearShopVo.getShopId());
|
}else{
|
return appNearbyShopVo;
|
}
|
if(member!=null&&member.getBindingFlag()!=1){
|
AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
|
appMemberBindingDto.setShopId(shop.getShopId());
|
appMemberBindingDto.setShopName(shop.getShopName());
|
appMemberBindingDto.setUserId(member.getUserId());
|
appMemberBindingDto.setBindingFlag(0);
|
remoteMemberService.updateMemberBinding(appMemberBindingDto);
|
}
|
appNearbyShopVo.setShopId(shop.getShopId());
|
appNearbyShopVo.setShopName(shop.getShopName());
|
appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
|
appNearbyShopVo.setShopLatitude(shop.getShopLatitude());
|
appNearbyShopVo.setShopLongitude(shop.getShopLongitude());
|
return appNearbyShopVo;
|
}
|
|
/**
|
*
|
* @param shopId
|
* @return
|
*/
|
@Override
|
public Shop getByShopId(Long shopId){
|
LambdaQueryWrapper<Shop> queryWrapper = Wrappers.lambdaQuery();
|
queryWrapper.eq(Shop::getDelFlag, 0).eq(Shop::getShopId, shopId);
|
Shop shop = this.getOne(queryWrapper,false);
|
return shop;
|
}
|
|
/**
|
* 获取商户端
|
* @param userId
|
* @return
|
*/
|
@Override
|
public MerHomeShopTotalVo getMerHomeTotal(Long userId){
|
MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
|
ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId);
|
Long shopId = shopRelUser.getShopId();
|
merHomeShopTotalVo.setShopId(shopId);
|
Shop shop = this.getById(shopId);
|
merHomeShopTotalVo.setShopType(shop.getShopType());
|
MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
|
ShopTotal shopTotal = shopTotalService.getById(shopId);
|
merHomeShopTotalVo.setShopId(shopId);
|
merHomeShopTotalVo.setShopType(shop.getShopType());
|
merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
|
merHomeShopTotalVo.setUnHandleOrder(orderVo.getUnHandleOrder());
|
Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
|
merHomeShopTotalVo.setTask(taskCount);
|
merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover());
|
merHomeShopTotalVo.setCycleSurp(shopTotal.getUseableCyclePerson());
|
merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
|
return merHomeShopTotalVo;
|
}
|
|
/**
|
* 获取商户绑定代理商
|
* @param page
|
* @param merAgencyPageDto
|
* @return
|
*/
|
@Override
|
public List<MerAgencyPageVo> pageMerAgencyVo(Page page, MerAgencyPageDto merAgencyPageDto){
|
List<MerAgencyPageVo> merAgencyPageVoList = shopMapper.pageMerAgencyVo(page, merAgencyPageDto);
|
return merAgencyPageVoList;
|
}
|
|
/**
|
* 处理商户员工
|
* @param shopId
|
* @param sysUser
|
*/
|
private void handleShopStaff(Long shopId,SysUser sysUser){
|
ShopStaff shopStaff = shopStaffService.getByUserId(sysUser.getUserId());
|
if(shopStaff!=null){
|
shopStaff.setShopId(shopId);
|
}else{
|
String staffId = IdUtils.simpleUUID();
|
shopStaff = new ShopStaff();
|
shopStaff.setStaffId(staffId);
|
shopStaff.setDelFlag(0);
|
shopStaff.setUserId(sysUser.getUserId());
|
shopStaff.setShopId(shopId);
|
shopStaff.setStaffName(sysUser.getNickName());
|
shopStaff.setStaffMobile(sysUser.getPhonenumber());
|
shopStaff.setStaffGender(Integer.valueOf(sysUser.getSex()));
|
shopStaff.setStaffAvatar(sysUser.getAvatar());
|
}
|
shopStaffService.saveOrUpdate(shopStaff);
|
}
|
|
/**
|
* @description 平台获取商户分成列表
|
* @author jqs
|
* @date 2023/6/8 9:25
|
* @param page
|
* @param mgtShopProportionPageDto
|
* @return List<MgtShopProportionPageVo>
|
*/
|
@Override
|
public List<MgtShopProportionPageVo> pageMgtShopProportion(Page page, MgtShopProportionPageDto mgtShopProportionPageDto){
|
return shopMapper.pageMgtShopProportion(page,mgtShopProportionPageDto);
|
}
|
|
/**
|
* @description 删除商户标签
|
* @author jqs
|
* @date 2023/6/8 15:53
|
* @param shopTag
|
* @return void
|
*/
|
@Override
|
public void deleteShopTag(String shopTag){
|
shopMapper.deleteShopTag(shopTag);
|
}
|
|
/**
|
* @description 通过code获取shopId
|
* @author jqs
|
* @date 2023/6/9 16:40
|
* @param mgtShopIdByCodeDto
|
* @return MgtShopIdByCodeVo
|
*/
|
@Override
|
public MgtShopIdByCodeVo getShopIdByCode(MgtShopIdByCodeDto mgtShopIdByCodeDto){
|
MgtShopIdByCodeVo mgtShopIdByCodeVo = new MgtShopIdByCodeVo();
|
List<Long> shopIdList = shopMapper.getShopIdByCode(mgtShopIdByCodeDto);
|
if(shopIdList!=null&&!shopIdList.isEmpty()){
|
String shopIdStr = shopIdList.stream()
|
.map(Object::toString)
|
.collect(Collectors.joining(","));
|
mgtShopIdByCodeVo.setShopIds(shopIdStr);
|
}
|
return mgtShopIdByCodeVo;
|
}
|
|
/**
|
* @description 获取商户list
|
* @author jqs
|
* @date 2023/6/12 14:37
|
* @param mgtShopListDto
|
* @return List<MgtShopListSimpleVo>
|
*/
|
@Override
|
public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto){
|
return shopMapper.listMgtShopSimpleVo(mgtShopListDto);
|
}
|
|
/**
|
* @description 通过id获取商户列表
|
* @author jqs
|
* @date 2023/6/14 17:53
|
* @param shopIds
|
* @return List<MgtShopListSimpleVo>
|
*/
|
@Override
|
public List<MgtSimpleShopVo> listShopSimpleVoByIds(String shopIds){
|
return shopMapper.listShopSimpleVoByIds(shopIds);
|
}
|
|
/**
|
* @description pageMgtShopByCityCode
|
* @param page
|
* @param mgtShopByCodePageDto
|
* @return List<MgtSimpleShopVo>
|
* @author jqs34
|
* @date 2023/6/14 20:56
|
*/
|
@Override
|
public List<MgtSimpleShopVo> pageMgtShopByCityCode(Page page, MgtShopByCodePageDto mgtShopByCodePageDto){
|
return shopMapper.pageMgtShopByCityCode(page, mgtShopByCodePageDto);
|
}
|
|
/**
|
* @description pageMgtShopAuth
|
* @param page
|
* @param mgtShopAuthPageDto
|
* @return List<MgtShopAuthPageVo>
|
* @author jqs34
|
* @date 2023/6/14 23:01
|
*/
|
@Override
|
public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto){
|
return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto);
|
}
|
|
/**
|
* @description boardShopTotal
|
* @param
|
* @return MgtBulletinBoardVo
|
* @author jqs34
|
* @date 2023/6/18 16:59
|
*/
|
@Override
|
public MgtBulletinBoardVo boardShopTotal(){
|
MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal();
|
return mgtBulletinBoardVoShop;
|
}
|
|
/**
|
* @description 商户进件
|
* @author jqs
|
* @date 2023/6/19 11:02
|
* @param mgtShopAuthDto
|
* @return void
|
*/
|
@Override
|
public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){
|
ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
|
BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
|
shopAuthentication.setAuditStatus(3);
|
shopAuthenticationService.saveOrUpdate(shopAuthentication);
|
}
|
|
/**
|
* @description 获取平台商户统计
|
* @author jqs
|
* @date 2023/6/21 16:25
|
* @param mgtBasePlatformDto
|
* @return MgtPlTotalShopTotalVo
|
*/
|
@Override
|
public MgtPlTotalShopTotalVo getPlTotalShopTotal(MgtBasePlatformDto mgtBasePlatformDto) {
|
//获取需要关联的用户id集合
|
if (mgtBasePlatformDto.getDeptId() != null) {
|
List<Long> userIdList = new ArrayList<>();
|
if (mgtBasePlatformDto.getUserId() != null) {
|
userIdList.add(mgtBasePlatformDto.getUserId());
|
} else {
|
MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
|
mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
|
mgtUserIdByDept = configService.getUserIdByDept(mgtUserIdByDept).getData();
|
userIdList = mgtUserIdByDept.getUserIdList();
|
}
|
if (!userIdList.isEmpty()) {
|
mgtBasePlatformDto.setUserIdList(userIdList);
|
}
|
}
|
//获取基础统计
|
MgtPlTotalShopTotalVo plTotalShopTotalVo = shopMapper.getPlTotalShopTotal();
|
plTotalShopTotalVo.setSignTotal(0);
|
List<Long> shopIdList = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
|
if (!shopIdList.isEmpty()) {
|
MgtShopTotalMemberVo shopTotalMemberVo = remoteMemberService.getUserTotalByShopId(shopIdList).getData();
|
plTotalShopTotalVo.setManTotal(shopTotalMemberVo.getManTotal());
|
plTotalShopTotalVo.setWomenTotal(shopTotalMemberVo.getWomenTotal());
|
plTotalShopTotalVo.setAgeKey(shopTotalMemberVo.getAgeKey());
|
plTotalShopTotalVo.setAgeValue(shopTotalMemberVo.getAgeValue());
|
}
|
//获取商户类型
|
List<MgtMapIntTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto);
|
if (shopTypeTotal != null && shopTypeTotal.size() > 0) {
|
shopTypeTotal = listRemoveNull(shopTypeTotal);
|
plTotalShopTotalVo.setShopTypeVos(shopTypeTotal);
|
}
|
//获取商户状态
|
List<MgtMapIntTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto);
|
if (shopStatusTotal != null && shopStatusTotal.size() > 0) {
|
shopStatusTotal = listRemoveNull(shopStatusTotal);
|
plTotalShopTotalVo.setShopStatusVos(shopStatusTotal);
|
}
|
//获取区域排名
|
List<MgtMapIntTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto);
|
if (shopAreaRank != null && shopAreaRank.size() > 0) {
|
shopAreaRank = listRemoveNull(shopAreaRank);
|
plTotalShopTotalVo.setAreaRankVos(shopAreaRank);
|
}
|
//获取销售排名
|
List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto);
|
if (shopSalesRank != null && shopSalesRank.size() > 0) {
|
String[] shopSalesKey = new String[shopSalesRank.size()];
|
Integer[] shopSalesValue = new Integer[shopSalesRank.size()];
|
// 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
|
for (int i = 0; i < shopSalesRank.size(); i++) {
|
shopSalesKey[i] = shopSalesRank.get(i).getMapKey();
|
shopSalesValue[i] = shopSalesRank.get(i).getMapValue();
|
}
|
plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey);
|
plTotalShopTotalVo.setShopSalesRankValue(shopSalesValue);
|
}
|
//获取推荐
|
List<MgtMapIntTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto);
|
if (shopRecommendRank != null && shopRecommendRank.size() > 0) {
|
shopRecommendRank = listRemoveNull(shopRecommendRank);
|
plTotalShopTotalVo.setShopRecommendVos(shopRecommendRank);
|
}
|
return plTotalShopTotalVo;
|
}
|
|
/**
|
* @description 去除空字符串
|
* @author jqs
|
* @date 2023/6/27 17:35
|
* @param MgtMapIntTotalVos
|
* @return List<MgtMapIntTotalVo>
|
*/
|
private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos){
|
for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
|
if(StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())){
|
MgtMapIntTotalVos.remove(i);
|
}
|
}
|
return MgtMapIntTotalVos;
|
}
|
|
/**
|
* @description 获取平台统计shopId
|
* @param mgtBasePlatformDto
|
* @return List<Long>
|
* @author jqs34
|
* @date 2023/6/23 14:12
|
*/
|
@Override
|
public List<Long> listShopIdByPlTotal(MgtBasePlatformDto mgtBasePlatformDto){
|
List<Long> shopIdList = shopMapper.listShopIdByPlTotal(mgtBasePlatformDto);
|
return shopIdList;
|
}
|
|
|
/**
|
* @description 获取商户审核资料
|
* @author jqs
|
* @date 2023/6/25 10:37
|
* @param authId
|
* @return MgtShopAuthGetVo
|
*/
|
@Override
|
public MgtShopAuthGetVo getMgtShopAuth(String authId){
|
MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo();
|
ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
|
BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo);
|
return shopAuthGetVo;
|
}
|
|
/**
|
* @description 获取商户验证信息
|
* @author jqs
|
* @date 2023/6/26 10:38
|
* @param authId
|
* @return MgtShopAuthCodeVo
|
*/
|
@Override
|
public MgtShopAuthCodeVo getMgtShopAuthCode(String authId){
|
MgtShopAuthCodeVo mgtShopAuthCodeVo = new MgtShopAuthCodeVo();
|
ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
|
mgtShopAuthCodeVo.setSignUrl(shopAuthentication.getSignUrl());
|
mgtShopAuthCodeVo.setLegalValidationUrl(shopAuthentication.getLegalValidationUrl());
|
return mgtShopAuthCodeVo;
|
}
|
}
|