package com.ruoyi.shop.service.impl.shop;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson2.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
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.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
|
import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
|
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
|
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
import com.ruoyi.common.core.constant.CacheConstants;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.exception.ServiceException;
|
import com.ruoyi.common.core.utils.DateUtils;
|
import com.ruoyi.common.core.utils.ExceptionUtil;
|
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.redis.service.RedisService;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.shop.domain.dto.*;
|
import com.ruoyi.shop.domain.pojo.shop.*;
|
import com.ruoyi.shop.domain.pojo.task.ShopFile;
|
import com.ruoyi.shop.domain.pojo.task.ShopTask;
|
import com.ruoyi.shop.domain.vo.*;
|
import com.ruoyi.shop.enums.WxApplyMentStateEnum;
|
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.shop.service.task.ShopTaskService;
|
import com.ruoyi.shop.util.HuiFuTianXiaUtil;
|
import com.ruoyi.shop.util.WechatPayUtils;
|
import com.ruoyi.shop.util.map.MapUtil;
|
import com.ruoyi.shop.util.map.vo.TencentDistanceMatrix;
|
import com.ruoyi.shop.util.map.vo.TencentDistanceMatrixElements;
|
import com.ruoyi.system.api.constant.AppErrorConstant;
|
import com.ruoyi.system.api.constant.SecurityConstant;
|
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.*;
|
import lombok.extern.log4j.Log4j2;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.nio.charset.StandardCharsets;
|
import java.rmi.ServerException;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.function.Function;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 商户表 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
@Log4j2
|
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 ShopAuthenticationHftxService shopAuthenticationHftxService;
|
|
@Resource
|
private ShopProportionService shopProportionService;
|
|
@Resource
|
private RemoteConfigService remoteConfigService;
|
|
@Resource
|
private ShopTotalService shopTotalService;
|
|
@Resource
|
private MemberTaskService memberTaskService;
|
|
@Resource
|
private ShopTransferRecordService shopTransferRecordService;
|
|
@Resource
|
private RemoteSysStaffService remoteSysStaffService;
|
|
@Resource
|
private RemoteFileService remoteFileService;
|
|
@Resource
|
private ShopTaskService shopTaskService;
|
|
@Resource
|
private RedisService redisService;
|
|
@Resource
|
private WechatPayUtils wechatPayUtils;
|
|
@Resource
|
private ShopDetailService shopDetailService;
|
|
@Resource
|
private RemoteUserService remoteUserService;
|
|
@Value("${callback_path}")
|
private String callback_path;
|
|
|
|
/**
|
* 获取商户详情
|
*
|
* @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)) {
|
if(relUserIds.startsWith(",")){
|
relUserIds = relUserIds.substring(1);
|
}
|
String[] relUserIdArray = relUserIds.split(",");
|
ShopRelUser shopRelUser;
|
Long userId;
|
if(mgtEditShopDto.getShopId()!=null){
|
for (String str : relUserIdArray) {
|
userId = Long.valueOf(str);
|
shopRelUser = shopRelUserService.getByUserId(userId);
|
if(shopRelUser!=null&&!shopRelUser.getShopId().equals(mgtEditShopDto.getShopId())){
|
throw new ServiceException(AppErrorConstant.SHOP_USER_DOUBLE);
|
}
|
}
|
}else {
|
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());
|
//清空归属
|
shopStaffService.clearShopStaffRelation(shop.getShopId());
|
if(!shop.getShopName().equals(mgtEditShopDto.getShopName())){
|
MgtMemberShopNameDto mgtMemberShopNameDto = new MgtMemberShopNameDto();
|
mgtMemberShopNameDto.setShopId(mgtEditShopDto.getShopId());
|
mgtMemberShopNameDto.setShopName(mgtEditShopDto.getShopName());
|
remoteMemberService.updateMemberShopName(mgtMemberShopNameDto);
|
}
|
}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(1);
|
shop.setAuthFlag(0);
|
shop.setAccountFlag(0);
|
newShop = true;
|
}
|
BeanUtils.copyProperties(mgtEditShopDto,shop);
|
String shopDetail = shop.getShopDetail();
|
if(StringUtils.isNotBlank(shopDetail)){
|
byte[] decodedBytes = Base64.getDecoder().decode(shopDetail);
|
shopDetail = new String(decodedBytes, StandardCharsets.UTF_8);
|
shop.setShopDetail(shopDetail);
|
}
|
//商户编号
|
/*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){
|
//生成商户关联记录
|
initNewShop(shop,mgtEditShopDto.getUserId());
|
CodeGetDto codeGetDto = new CodeGetDto();
|
String url = "https://wxapp.hhhrt.cn/mini/shop?id="+shop.getShopId();
|
codeGetDto.setUrl(url);
|
codeGetDto.setFileName("shop-"+shop.getShopId());
|
String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
|
shop.setShopCode(codeUrl);
|
this.saveOrUpdate(shop);
|
}
|
}
|
|
/**
|
* @description 商户关联类初始化
|
* @author jqs
|
* @date 2023/7/7 11:25
|
* @param shop
|
* @param userId
|
* @return void
|
*/
|
private void initNewShop(Shop shop,Long userId){
|
BigDecimal zeroBig = new BigDecimal("0.00");
|
//商户账户信息初始化
|
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());
|
shopAuthentication.setAuditStatus(0);
|
shopAuthentication.setSignState(1);
|
shopAuthenticationService.save(shopAuthentication);
|
//商户分成信息初始化
|
ShopProportion shopProportion = new ShopProportion();
|
shopProportion.setDelFlag(0);
|
shopProportion.setShopId(shop.getShopId());
|
shopProportion.setShopType(shop.getShopType());
|
String proportionPercentStr = redisService.getCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION);
|
BigDecimal proportionPercent = new BigDecimal(proportionPercentStr);
|
if(proportionPercent==null){
|
proportionPercent = new BigDecimal("30");
|
}
|
shopProportion.setProportionPercent(proportionPercent);
|
shopProportion.setUpdateTime(new Date());
|
shopProportion.setUpdateUserId(userId);
|
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);
|
}else{
|
shop.setCooperativeFlag(0);
|
}
|
shop.setShopStatus(handelShopStatus(null,shop.getCooperativeFlag(), null));
|
shop.setUpdateTime(new Date());
|
shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId());
|
this.saveOrUpdate(shop);
|
}
|
|
/**
|
* @description 冻结商户
|
* @author jqs
|
* @date 2023/7/15 13:56
|
* @param mgtFrozenShopDto
|
* @return void
|
*/
|
@Override
|
public void frozenMgtShop(MgtFrozenShopDto mgtFrozenShopDto){
|
Shop shop = this.getById(mgtFrozenShopDto.getShopId());
|
if(mgtFrozenShopDto.getFrozenFlag()==1){
|
shop.setFrozenFlag(1);
|
}else{
|
shop.setFrozenFlag(0);
|
}
|
shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(), null, null));
|
this.saveOrUpdate(shop);
|
}
|
|
/**
|
* @description 处理商户状态
|
* @author jqs
|
* @date 2023/7/15 14:09
|
* @param
|
* @return Integer
|
*/
|
private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
|
Integer shopStatus = 1;
|
if(null != frozenFlag && frozenFlag == 1){
|
shopStatus = 0;
|
return shopStatus;
|
}
|
if(null != cooperativeFlag && cooperativeFlag == 0){
|
shopStatus = 2;
|
return shopStatus;
|
}
|
if(null != authFlag && authFlag == 0){
|
shopStatus = 3;
|
return shopStatus;
|
}
|
return shopStatus;
|
}
|
|
|
/**
|
* 修改合作时间
|
* @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,List<Long> scope){
|
if (StringUtils.isNotBlank(mgtShopPageDto.getShopTags())) {
|
mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",", "|"));
|
}
|
List<Integer> associatedAccount = null;
|
if(StringUtils.isNotEmpty(mgtShopPageDto.getAssociatedAccount())){
|
associatedAccount = Arrays.asList(mgtShopPageDto.getAssociatedAccount().split(",")).stream().map(Integer::valueOf).collect(Collectors.toList());
|
}
|
// 分页查询商铺信息
|
List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto,scope, associatedAccount);
|
// 如果查询结果不为空
|
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) {
|
MgtSysSimpleUserVo mgtSysSimpleUserVo = belongUserMap.get(shopPageVo.getBelongUserId());
|
shopPageVo.setBelongUser(null == mgtSysSimpleUserVo ? "" : mgtSysSimpleUserVo.getNickName());
|
shopPageVo.setBelongDept(null == mgtSysSimpleUserVo ? "" : mgtSysSimpleUserVo.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);
|
String shopDetail = mgtShopInfoVo.getShopDetail();
|
if(StringUtils.isNotBlank(shopDetail)){
|
byte[] encodedBytes = Base64.getEncoder().encode(shopDetail.getBytes(StandardCharsets.UTF_8));
|
shopDetail = new String(encodedBytes, StandardCharsets.UTF_8);
|
mgtShopInfoVo.setShopDetail(shopDetail);
|
}
|
//商户标签
|
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());
|
}
|
//归属员工
|
if(mgtShopInfoVo.getBelongUserId()!=null){
|
SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData();
|
if(sysUser!=null){
|
mgtShopInfoVo.setBelongUserName(sysUser.getNickName());
|
}
|
}
|
//归属商户
|
if(mgtShopInfoVo.getBelongShopId()!=null){
|
Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId());
|
if(belongShop!=null){
|
mgtShopInfoVo.setBelongShopName(belongShop.getShopName());
|
}
|
}
|
//商户关联用户
|
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){
|
if(shop.getBelongUserId().equals(mgtTransferShopDto.getUserId())){
|
throw new ServiceException(AppErrorConstant.TRANS_NOT_MYSELF);
|
}
|
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);
|
}
|
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())){
|
List<AppNearShopVo> appNearShopVos = shopMapper.getNearbyShops(appNearbyShopDto);
|
if(appNearShopVos.size() > 0){
|
log.info("候选店铺:{}", JSON.toJSONString(appNearShopVos));
|
StringBuffer to = new StringBuffer();
|
for (AppNearShopVo appNearShopVo : appNearShopVos) {
|
to.append(appNearShopVo.getLatitude() + "," + appNearShopVo.getLongitude() + ";");
|
}
|
String form = appNearbyShopDto.getLatitude() + "," + appNearbyShopDto.getLongitude();
|
R<List<TencentDistanceMatrix>> r = MapUtil.tencentDistanceMatrix(form, to.substring(0, to.length() - 1), "walking");
|
if(r.getCode() != 200){
|
throw new ServiceException(r.getMsg());
|
}
|
List<TencentDistanceMatrix> data = r.getData();
|
//存储最短距离
|
BigDecimal dis = new BigDecimal(0);
|
AppNearShopVo appNearShopVo = null;
|
List<TencentDistanceMatrixElements> elements = data.get(0).getElements();
|
for (int i = 0; i < elements.size(); i++) {
|
TencentDistanceMatrixElements matrix = elements.get(i);
|
if(i == 0 || dis.compareTo(new BigDecimal(matrix.getDistance())) > 0){
|
dis = new BigDecimal(matrix.getDistance());
|
appNearShopVo = appNearShopVos.get(i);
|
}
|
}
|
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);
|
}
|
//商品图片
|
List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shop.getShopId());
|
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());
|
}
|
}
|
}
|
appNearbyShopVo.setShopPicture(shopPicture);
|
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 StaffHomeShopTotalVo getStaffHomeTotal(Long userId){
|
List<Long> userIds = new ArrayList<>();
|
List<Long> shopIds = new ArrayList<>();
|
//如果是leader 查询leader下面所有的员工下的所有shopId
|
// if(remoteSysStaffService.isLeader()){
|
// userIds = sysUserService.getUserIdsByDept(userId).getData();
|
// //根据用户所有id查询关联的商户id
|
// MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
|
// mgtBasePlatformDto.setUserIdList(userIds);
|
// shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
|
// List<Shop> shopList = this.getShopByBelongUserId(userId);
|
// if(shopList!=null&&!shopList.isEmpty()){
|
// for(Shop shop : shopList){
|
// shopIds.add(shop.getShopId());
|
// }
|
// userIds.add(userId);
|
// }
|
// }else {
|
// //普通员工查询商户归属的shopId
|
// List<Shop> shopList = this.getShopByBelongUserId(userId);
|
// if(shopList!=null&&!shopList.isEmpty()){
|
// for(Shop shop : shopList){
|
// shopIds.add(shop.getShopId());
|
// }
|
// userIds.add(userId);
|
// }
|
// }
|
|
// TODO: 2023/12/5 统一改成使用权限来控制数据
|
R<SysUser> sysUser = sysUserService.getSysUser(userId);
|
if(sysUser.getCode() != 200){
|
throw new RuntimeException(sysUser.getMsg());
|
}
|
//员工端数据权限(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
|
//2/4暂未使用
|
String dataScopeEmployee = sysUser.getData().getDataScopeEmployee();
|
if(dataScopeEmployee.equals("1")){
|
userIds = null;
|
shopIds = null;
|
}
|
if(dataScopeEmployee.equals("3")){
|
userIds = sysUserService.getUserIdsByDept(userId).getData();
|
//根据用户所有id查询关联的商户id
|
MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
|
mgtBasePlatformDto.setUserIdList(userIds);
|
shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
|
List<Shop> shopList = this.getShopByBelongUserId(userId);
|
if(shopList!=null&&!shopList.isEmpty()){
|
for(Shop shop : shopList){
|
shopIds.add(shop.getShopId());
|
}
|
userIds.add(userId);
|
}
|
}
|
if(dataScopeEmployee.equals("5")){
|
List<Shop> shopList = this.getShopByBelongUserId(userId);
|
if(shopList!=null&&!shopList.isEmpty()){
|
for(Shop shop : shopList){
|
shopIds.add(shop.getShopId());
|
}
|
userIds.add(userId);
|
}
|
}
|
|
//分别查询
|
StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds);
|
Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds);
|
staffHomeShopTotalVo.setFollowMember(0);
|
staffHomeShopTotalVo.setNewMember(0);
|
staffHomeShopTotalVo.setShopTask(shopTaskCount);
|
return staffHomeShopTotalVo;
|
}
|
/**
|
* 获取商户端
|
* @param merBaseDto
|
* @return
|
*/
|
@Override
|
public MerHomeShopTotalVo getMerHomeTotal(MerBaseDto merBaseDto){
|
Long userId = merBaseDto.getUserId();
|
MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
|
ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId);
|
Long shopId = shopRelUser.getShopId();
|
//如果商户变动刷新token
|
if(!shopId.equals(merBaseDto.getShopId())){
|
String userKey = SecurityUtils.getUserKey();
|
redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
|
throw new ServiceException("登录状态已过期",401);
|
}
|
merHomeShopTotalVo.setShopId(shopId);
|
Shop shop = this.getById(shopId);
|
if(shop.getFrozenFlag()==1){
|
String userKey = SecurityUtils.getUserKey();
|
redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
|
throw new ServiceException("商户已被冻结,请联系管理员",401);
|
}
|
merHomeShopTotalVo.setShopType(shop.getShopType());
|
MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
|
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(orderVo.getCycleSurp());
|
merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp());
|
merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
|
merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
|
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,List<Long> scope){
|
return shopMapper.listMgtShopSimpleVo(mgtShopListDto,scope);
|
}
|
|
/**
|
* @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,List<Long> scope){
|
return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto,scope);
|
}
|
|
/**
|
* 商户进件列表数据(汇付天下)
|
* @param page
|
* @param mgtShopAuthPageDto
|
* @return
|
*/
|
@Override
|
public List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto,
|
List<Long> scope) {
|
return shopMapper.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto,scope);
|
}
|
|
/**
|
* @description boardShopTotal
|
* @param
|
* @return MgtBulletinBoardVo
|
* @author jqs34
|
* @date 2023/6/18 16:59
|
*/
|
@Override
|
public MgtBulletinBoardVo boardShopTotal(List<Long> userIds){
|
MgtBulletinBoardVo mgtBulletinBoardVoShop = shopMapper.shopTotal(userIds);
|
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());
|
Shop shop = this.getByShopId(shopAuthentication.getShopId());
|
|
if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
|
mgtShopAuthDto.setBlBusinessDeanline("长期");
|
}
|
if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
|
mgtShopAuthDto.setLpIcEndDate("长期");
|
}
|
BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
|
String applyNumber = shopAuthentication.getApplyNumber();
|
if(StringUtils.isBlank(applyNumber)){
|
applyNumber = IdUtils.simpleUUID();
|
shopAuthentication.setApplyNumber(applyNumber);
|
}
|
ApplymentsResult applymentsResult;
|
try {
|
applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
|
} catch (Exception e) {
|
log.debug("-----"+shop.getShopId()+":进件异常-----");
|
throw new ServiceException(e.getMessage());
|
}
|
shopAuthentication.setAuditStatus(3);
|
shopAuthentication.setApplymentId(applymentsResult.getApplymentId());
|
shopAuthenticationService.saveOrUpdate(shopAuthentication);
|
}
|
|
|
/**
|
* 商户进件(汇付天下)
|
* @param mgtShopHFTXAuthDto
|
*/
|
@Override
|
public void mgtShopHFTXAuth(MgtShopHFTXAuthDto mgtShopHFTXAuthDto) {
|
ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
|
.eq("shop_id", mgtShopHFTXAuthDto.getShopId()).eq("is_delete", 0));
|
if(null != shopAuthenticationHftx && Arrays.asList("U", "Y").contains(shopAuthenticationHftx.getAuditStatus())){
|
throw new ServiceException("不能重复进件");
|
}
|
if(null == shopAuthenticationHftx){
|
shopAuthenticationHftx = new ShopAuthenticationHftx();
|
shopAuthenticationHftx.setIsDelete(0);
|
shopAuthenticationHftx.setInsertTime(new Date());
|
}
|
String auditStatus = shopAuthenticationHftx.getAuditStatus();
|
BeanUtils.copyProperties(mgtShopHFTXAuthDto, shopAuthenticationHftx);
|
shopAuthenticationHftx.setReqSeqId(IdUtils.simpleUUID());
|
shopAuthenticationHftx.setAuditStatus("");
|
shopAuthenticationHftx.setAuditDesc("");
|
/**
|
* 开始调起进件接口
|
*/
|
R<MerchantBasicdataVo> r = null;
|
//用户(重新提交)
|
if((StringUtils.isEmpty(auditStatus) || "N".equals(auditStatus) || "F".equals(auditStatus)) && mgtShopHFTXAuthDto.getType() == 1){
|
r = HuiFuTianXiaUtil.merchantBasicdataIndv(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify");
|
}
|
//企业进件(重新提交)
|
if((StringUtils.isEmpty(auditStatus) || "N".equals(auditStatus) || "F".equals(auditStatus)) && mgtShopHFTXAuthDto.getType() == 2){
|
r = HuiFuTianXiaUtil.merchantBasicdataEnt(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify");
|
}
|
|
//修改资料
|
if("Y".equals(auditStatus)){
|
r = HuiFuTianXiaUtil.merchantBasicdataModify(mgtShopHFTXAuthDto, shopAuthenticationHftx, callback_path + "/shop/mgt/shop/merchantBasicdataNotify");
|
}
|
if(null == r){
|
throw new ServiceException("参数异常");
|
}
|
if(r.getCode() == 200){
|
MerchantBasicdataVo data = r.getData();
|
shopAuthenticationHftx.setAuditStatus("U");
|
shopAuthenticationHftx.setHuifuId(data.getHuifuId());
|
shopAuthenticationHftx.setTokenNo(data.getTokenNo());
|
shopAuthenticationHftx.setApplyNo(data.getApplyNo());
|
shopAuthenticationHftxService.saveOrUpdate(shopAuthenticationHftx);
|
}else{
|
throw new ServiceException(r.getMsg());
|
}
|
|
}
|
|
|
/**
|
* 商户进件异步通知
|
* @return
|
*/
|
@Override
|
public R<String> merchantBasicdataNotify(MerchantBasicDataNotifyDto dto) {
|
R<MerchantBasicdataVo> merchantBasicdataVoR = HuiFuTianXiaUtil.merchantBasicDataNotify(dto);
|
if(merchantBasicdataVoR.getCode() != 200){
|
return R.fail(merchantBasicdataVoR.getMsg());
|
}
|
MerchantBasicdataVo data = merchantBasicdataVoR.getData();
|
ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("req_seq_id", data.getReqSeqId()));
|
if("U".equals(shopAuthenticationHftx.getAuditStatus())){
|
shopAuthenticationHftx.setAuditStatus(data.getAuditStatus());
|
shopAuthenticationHftx.setAuditDesc(data.getAuditDesc());
|
shopAuthenticationHftx.setHuifuId(data.getHuifuId());
|
shopAuthenticationHftx.setTokenNo(data.getTokenNo());
|
shopAuthenticationHftx.setApplyNo(data.getApplyNo());
|
shopAuthenticationHftxService.updateById(shopAuthenticationHftx);
|
if("Y".equals(data.getAuditStatus())){
|
Shop shop = this.getByShopId(shopAuthenticationHftx.getShopId());
|
shop.setShopStatus(1);
|
shop.setAuthFlag(1);
|
this.updateById(shop);
|
}
|
}
|
return R.ok(data.getReqSeqId());
|
}
|
|
|
/**
|
* @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.getDeptId());
|
mgtUserIdByDept = configService.getUserIdByDept(mgtUserIdByDept).getData();
|
userIdList = mgtUserIdByDept.getUserIdList();
|
}
|
if (!userIdList.isEmpty()) {
|
mgtBasePlatformDto.setUserIdList(userIdList);
|
}
|
}
|
//数据权限
|
List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
|
if(null != userIds){
|
List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
|
if(null != userIdList){
|
userIdList.addAll(userIds);
|
}else{
|
userIdList = userIds;
|
}
|
mgtBasePlatformDto.setUserIdList(userIdList);
|
}
|
|
//获取基础统计
|
MgtPlTotalShopTotalVo plTotalShopTotalVo = shopMapper.getPlTotalShopTotal(userIds);
|
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<MgtMapBigTotalVo> shopSalesRank = remoteOrderService.shopSalesRank(shopIdList).getData();
|
if (shopSalesRank != null && shopSalesRank.size() > 0) {
|
String[] shopSalesKey = new String[shopSalesRank.size()];
|
BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()];
|
// 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
|
Long shopId;
|
Shop shop;
|
for (int i = 0; i < shopSalesRank.size(); i++) {
|
shopId = Long.valueOf(shopSalesRank.get(i).getMapKey());
|
shop = this.getByShopId(shopId);
|
shopSalesKey[i] = shop.getShopName();
|
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);
|
if(shopAuthGetVo.getBlBusinessDeanline()!=null){
|
if(shopAuthGetVo.getBlBusinessDeanline().equals("长期")){
|
shopAuthGetVo.setBlBusinessFoeverFlag(1);
|
}else{
|
shopAuthGetVo.setBlBusinessFoeverFlag(0);
|
}
|
}
|
if(shopAuthGetVo.getLpIcEndDate()!=null){
|
if(shopAuthGetVo.getLpIcEndDate().equals("长期")){
|
shopAuthGetVo.setLpIcForeverFlag(1);
|
}else{
|
shopAuthGetVo.setLpIcForeverFlag(0);
|
}
|
}
|
return shopAuthGetVo;
|
}
|
|
|
/**
|
* 获取商户审核资料(汇付天下)
|
* @param shopId
|
* @return
|
*/
|
@Override
|
public MgtShopHFTXAuthGetVo getMgtShopHFTXAuthInfo(Long shopId) {
|
ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>().eq("shop_id", shopId));
|
MgtShopHFTXAuthGetVo mgtShopHFTXAuthGetVo = new MgtShopHFTXAuthGetVo();
|
if(null == shopAuthenticationHftx){
|
return mgtShopHFTXAuthGetVo;
|
}
|
BeanUtils.copyProperties(shopAuthenticationHftx, mgtShopHFTXAuthGetVo);
|
return mgtShopHFTXAuthGetVo;
|
}
|
|
/**
|
* @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;
|
}
|
|
|
/**
|
* @description 获取商户下属代理商
|
* @author jqs
|
* @date 2023/7/3 17:27
|
* @param shopId
|
* @return List<Long>
|
*/
|
@Override
|
public List<Long> listShopIdByShopId(Long shopId){
|
List<Long> shopIds = shopMapper.selectList(
|
new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)
|
).stream().map(Shop::getShopId).collect(Collectors.toList());
|
return shopIds;
|
}
|
|
/**
|
* @description 获取商户下属代理商
|
* @author jqs
|
* @date 2023/7/3 18:18
|
* @param shopId
|
* @return List<MgtSimpleShopVo>
|
*/
|
@Override
|
public List<MgtSimpleShopVo> listShopByShop(Long shopId){
|
List<MgtSimpleShopVo> simpleShopVoList = shopMapper.selectList(
|
new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)).
|
stream().map(shop->{
|
MgtSimpleShopVo simpleShopVo = new MgtSimpleShopVo();
|
simpleShopVo.setShopId(shop.getShopId());
|
simpleShopVo.setShopName(shop.getShopName());
|
return simpleShopVo;
|
}).collect(Collectors.toList());
|
return simpleShopVoList;
|
}
|
|
/**
|
* @description 获取用户管理商户
|
* @author jqs
|
* @date 2023/7/14 10:00
|
* @param userId
|
* @return Shop
|
*/
|
@Override
|
public List<Shop> getShopByBelongUserId(Long userId){
|
LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Shop::getDelFlag,0);
|
queryWrapper.eq(Shop::getBelongUserId,userId);
|
return this.list(queryWrapper);
|
}
|
|
/**
|
* @description 员工端获取商户列表
|
* @author jqs
|
* @date 2023/7/14 15:26
|
* @param page
|
* @param staffShopPageDto
|
* @return List<StaffShopPageVo>
|
*/
|
@Override
|
public List<StaffShopPageVo> pageStaffShop(Page page, StaffShopPageDto staffShopPageDto){
|
List<StaffShopPageVo> staffShopPageVoList = shopMapper.pageStaffShop(page, staffShopPageDto);
|
return staffShopPageVoList;
|
}
|
|
/**
|
* @description 获取员工端商户数量统计
|
* @author jqs
|
* @date 2023/7/14 15:51
|
* @param userId
|
* @return StaffShopSimpleTotalVo
|
*/
|
@Override
|
public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
|
List<Long> userIdList = new ArrayList<>();
|
// if(remoteSysStaffService.isLeader()){
|
// userIdList = sysUserService.getUserIdsByDept(userId).getData();
|
// userIdList.add(userId);
|
// }else {
|
// userIdList.add(userId);
|
// }
|
|
// TODO: 2023/12/5 统一改成使用权限来控制数据
|
R<SysUser> sysUser = sysUserService.getSysUser(userId);
|
if(sysUser.getCode() != 200){
|
throw new RuntimeException(sysUser.getMsg());
|
}
|
//员工端数据权限(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
|
//2/4暂未使用
|
String dataScopeEmployee = sysUser.getData().getDataScopeEmployee();
|
if(dataScopeEmployee.equals("1")){
|
userIdList = null;
|
}
|
if(dataScopeEmployee.equals("3")){
|
userIdList = sysUserService.getUserIdsByDept(userId).getData();
|
userIdList.add(userId);
|
}
|
if(dataScopeEmployee.equals("5")){
|
userIdList.add(userId);
|
}
|
|
StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList);
|
StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList);
|
shopTotal.setAgencyTotal(agencyTotal.getShopTotal());
|
shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal());
|
shopTotal.setCloseAgencyTotal(agencyTotal.getCloseShopTotal());
|
return shopTotal;
|
}
|
|
/**
|
* @description 员工端获取商户详情
|
* @author jqs
|
* @date 2023/7/14 18:32
|
* @param shopId
|
* @return StaffShopInfoGetVo
|
*/
|
@Override
|
public StaffShopInfoGetVo getStaffShopInfo(Long shopId) {
|
// 创建员工商店信息对象
|
StaffShopInfoGetVo staffShopInfoGetVo = new StaffShopInfoGetVo();
|
// 通过商店ID获取商店信息
|
Shop shop = this.getByShopId(shopId);
|
// 获取商店文件列表
|
List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
|
// 初始化商店图片
|
String shopPicture = null;
|
// 遍历商店文件列表,获取商店图片
|
if (shopFileList != null && !shopFileList.isEmpty()) {
|
for (ShopFile shopFile : shopFileList) {
|
if (shopFile.getFileType() == 1) {
|
shopPicture = shopFile.getFileUrl();
|
break;
|
}
|
}
|
}
|
// 创建商店总览对象,并设置商店ID
|
MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
|
merHomeShopTotalVo.setShopId(shopId);
|
// 通过远程订单服务获取商店总览信息
|
MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
|
// 获取商店任务计数
|
Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
|
// 设置员工商店信息对象的属性
|
staffShopInfoGetVo.setTodayReservation(0);
|
staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder());
|
staffShopInfoGetVo.setShopTask(taskCount);
|
staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover());
|
staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp());
|
staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp());
|
staffShopInfoGetVo.setShopId(shopId);
|
staffShopInfoGetVo.setShopName(shop.getShopName());
|
staffShopInfoGetVo.setShopType(shop.getShopType());
|
staffShopInfoGetVo.setShopPicture(shopPicture);
|
staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime());
|
staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime());
|
staffShopInfoGetVo.setShopownerName(shop.getShopownerName());
|
staffShopInfoGetVo.setShopownerPhone(shop.getShopownerPhone());
|
staffShopInfoGetVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress());
|
staffShopInfoGetVo.setShopCustomStatus(shop.getShopCustomStatus());
|
staffShopInfoGetVo.setShopTags(shop.getShopTags());
|
staffShopInfoGetVo.setSupportingCapacityFlag(shop.getSupportingCapacityFlag());
|
staffShopInfoGetVo.setOperationPersonFlag(shop.getOperationPersonFlag());
|
staffShopInfoGetVo.setExecutiveForceFlag(shop.getExecutiveForceFlag());
|
staffShopInfoGetVo.setPatternFlag(shop.getPatternFlag());
|
staffShopInfoGetVo.setConnectionFlag(shop.getConnectionFlag());
|
staffShopInfoGetVo.setEconomicAbilityFlag(shop.getEconomicAbilityFlag());
|
staffShopInfoGetVo.setRelationPartner(shop.getRelationPartner());
|
staffShopInfoGetVo.setBusinessHistory(shop.getBusinessHistory());
|
staffShopInfoGetVo.setNewAreaMember(0);
|
staffShopInfoGetVo.setAreaTurnover(BigDecimal.ZERO);
|
staffShopInfoGetVo.setFrozenFlag(shop.getFrozenFlag());
|
// 如果商店类型为1,则获取该商店ID列表的新区域成员和总订单金额
|
if (shop.getShopType() == 1) {
|
List<Long> shopIdList = this.listShopIdByShopId(shop.getShopId());
|
if (shopIdList != null && !shopIdList.isEmpty()) {
|
Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
|
staffShopInfoGetVo.setNewAreaMember(count);
|
AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData();
|
staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover());
|
}
|
}
|
// 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
|
String extendContacts = shop.getExtendContacts();
|
if (StringUtils.isNotBlank(extendContacts)) {
|
List<ExtendContactsVo> extendContactsVoList = JSON.parseArray(extendContacts, ExtendContactsVo.class);
|
staffShopInfoGetVo.setExtendContactsVoList(extendContactsVoList);
|
}
|
// 返回员工商店信息对象
|
return staffShopInfoGetVo;
|
}
|
|
/**
|
* @description 修改商户评估
|
* @author jqs
|
* @date 2023/7/15 10:18
|
* @param staffShopEstimateEditDto
|
* @return void
|
*/
|
@Override
|
public void editShopEstimate(StaffShopEstimateEditDto staffShopEstimateEditDto){
|
Shop shop = new Shop();
|
shop.setShopId(staffShopEstimateEditDto.getShopId());
|
shop.setSupportingCapacityFlag(staffShopEstimateEditDto.getSupportingCapacityFlag());
|
shop.setOperationPersonFlag(staffShopEstimateEditDto.getOperationPersonFlag());
|
shop.setExecutiveForceFlag(staffShopEstimateEditDto.getExecutiveForceFlag());
|
shop.setPatternFlag(staffShopEstimateEditDto.getPatternFlag());
|
shop.setConnectionFlag(staffShopEstimateEditDto.getConnectionFlag());
|
shop.setEconomicAbilityFlag(staffShopEstimateEditDto.getEconomicAbilityFlag());
|
shop.setRelationPartner(staffShopEstimateEditDto.getRelationPartner());
|
shop.setBusinessHistory(staffShopEstimateEditDto.getBusinessHistory());
|
shop.setUpdateUserId(staffShopEstimateEditDto.getUserId());
|
shop.setUpdateTime(new Date());
|
shopMapper.updateShop(shop);
|
}
|
|
/**
|
* @description 修改店铺扩展联系人
|
* @author jqs
|
* @date 2023/7/15 11:06
|
* @param staffShopECEditDto
|
* @return void
|
*/
|
@Override
|
public void editExtendContacts(StaffShopECEditDto staffShopECEditDto){
|
Shop shop = new Shop();
|
String extendContacts = null;
|
List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
|
if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
|
extendContacts = JSON.toJSONString(extendContactsVoList);
|
}else{
|
extendContacts = "";
|
}
|
shop.setExtendContacts(extendContacts);
|
shop.setShopId(staffShopECEditDto.getShopId());
|
shop.setUpdateUserId(staffShopECEditDto.getUserId());
|
shop.setUpdateTime(new Date());
|
shopMapper.updateExtendContacts(shop);
|
}
|
|
/**
|
* @description 修改店铺状态
|
* @author jqs
|
* @date 2023/7/15 11:51
|
* @param staffShopCCEditDto
|
* @return void
|
*/
|
@Override
|
public void editShopCustomStatus(StaffShopCCEditDto staffShopCCEditDto){
|
Shop shop = new Shop();
|
shop.setShopCustomStatus(staffShopCCEditDto.getShopCustomStatus());
|
shop.setShopId(staffShopCCEditDto.getShopId());
|
shop.setUpdateUserId(staffShopCCEditDto.getUserId());
|
shop.setUpdateTime(new Date());
|
shopMapper.updateShop(shop);
|
}
|
|
@Override
|
public void queryEcommerceApplyMentsStatus() {
|
log.info("开始获取微信二级商户待检查列表");
|
List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus();
|
log.info("定时检查微信二级商户"+list.toString());
|
list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId()));
|
|
List<ShopAuthenticationHftx> list1 = shopAuthenticationHftxService.list(new QueryWrapper<ShopAuthenticationHftx>().eq("audit_status", "U").eq("is_delete", 0));
|
for (ShopAuthenticationHftx shopAuthenticationHftx : list1) {
|
R<MerchantBasicdataVo> r = HuiFuTianXiaUtil.queryMerchantBasicdata(IdUtils.simpleUUID(), shopAuthenticationHftx.getHuifuId());
|
if(r.getCode() == 200){
|
MerchantBasicdataVo data = r.getData();
|
if(org.springframework.util.StringUtils.hasLength(data.getTokenNo())){
|
shopAuthenticationHftx.setTokenNo(data.getTokenNo());
|
shopAuthenticationHftx.setAuditStatus("Y");
|
shopAuthenticationHftx.setAuditDesc("成功");
|
Shop shop = this.getByShopId(shopAuthenticationHftx.getShopId());
|
shop.setShopStatus(1);
|
this.updateById(shop);
|
shopAuthenticationHftxService.updateById(shopAuthenticationHftx);
|
}
|
}
|
}
|
}
|
|
/**
|
* 调用微信接口查询申请审核状态
|
* @param applymentId
|
*/
|
private void queryApplyStatusByApplymentId(String applymentId, Long shopId) {
|
try {
|
log.debug("定时检查微信二级商户applymentId"+applymentId);
|
if (StringUtils.isNotBlank(applymentId)) {
|
ApplymentsStatusResult result = wechatPayUtils.queryApplyStatusByApplymentId(applymentId);
|
shopAuthenticationService.updateAuditStatusByApplymentId(applymentId, result);
|
String applymentState = result.getApplymentState();
|
if(WxApplyMentStateEnum.FINISH.getText().equals(applymentState)){
|
applySuccessUpdateShopStatus(shopId);
|
}
|
}
|
} catch (WxPayException e) {
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 商户进件审核完成,更新商户状态
|
* @param shopId
|
*/
|
private void applySuccessUpdateShopStatus(Long shopId){
|
// 更新商户状态为正常
|
Shop shop = this.getById(shopId);
|
Integer shopStatus = handelShopStatus(null, null, 1);
|
LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate();
|
updateWrapper.eq(Shop::getShopId, shopId)
|
.set(Shop::getShopStatus, shopStatus)
|
.set(Shop::getAuthFlag, 1);
|
this.update(updateWrapper);
|
}
|
|
|
|
|
|
/**
|
* @description
|
* @author jqs
|
* @date 2023/8/10 22:53
|
* @param cityCodes
|
* @return List<Long>
|
*/
|
@Override
|
public List<Long> listShopIdByCityCode(List<String> cityCodes){
|
return shopMapper.listShopIdByCityCode(cityCodes);
|
}
|
|
@Override
|
public void authShop(){
|
ShopAuthentication shopAuthentication = shopAuthenticationService.getById("8c23fa423beb4673a0edc641a1ca0c23");
|
Shop shop = this.getByShopId(shopAuthentication.getShopId());
|
try {
|
wechatPayUtils.ecommerceApply(shopAuthentication,shopAuthentication.getApplyNumber(),shop);
|
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
/**
|
* @description 修改店铺详细资料
|
* @author jqs
|
* @date 2023/8/22 14:51
|
* @param staffShopDetailDto
|
* @return void
|
*/
|
@Override
|
public void editShopDetail(StaffShopDetailDto staffShopDetailDto){
|
ShopDetail shopDetail = shopDetailService.getById(staffShopDetailDto.getShopId());
|
if(shopDetail == null){
|
shopDetail = new ShopDetail();
|
shopDetail.setDelFlag(0);
|
}
|
BeanUtils.copyProperties(staffShopDetailDto, shopDetail);
|
List<StaffCustomerDto> staffCustomerDtoList = staffShopDetailDto.getStaffCustomerDtoList();
|
if(staffCustomerDtoList!=null&&!staffCustomerDtoList.isEmpty()){
|
StringJoiner customerNameSJ = new StringJoiner(",");
|
StringJoiner customerMobileSJ = new StringJoiner(",");
|
for(StaffCustomerDto staffCustomerDto : staffCustomerDtoList){
|
customerNameSJ.add(staffCustomerDto.getCustomerName());
|
customerMobileSJ.add(staffCustomerDto.getCustomerMobile());
|
}
|
shopDetail.setCustomerName(customerNameSJ.toString());
|
shopDetail.setCustomerMobile(customerMobileSJ.toString());
|
}
|
shopDetailService.saveOrUpdate(shopDetail);
|
}
|
|
/**
|
* @description 获取店铺详细资料
|
* @author jqs
|
* @date 2023/8/22 16:15
|
* @param shopId
|
* @return StaffShopDetailVo
|
*/
|
@Override
|
public StaffShopDetailVo getShopDetail(Long shopId){
|
ShopDetail shopDetail = shopDetailService.getById(shopId);
|
StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo();
|
if(shopDetail!=null){
|
BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
|
//处理联系人
|
String customerName = shopDetail.getCustomerName();
|
String customerMobile = shopDetail.getCustomerMobile();
|
List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>();
|
String[] customerNameArr = customerName.split(",");
|
String[] customerMobileArr = customerMobile.split(",");
|
staffShopDetailVo.setContactName(customerNameArr[0]);
|
StaffCustomerDto staffCustomerDto;
|
for(int i=0;i<customerNameArr.length;i++){
|
staffCustomerDto = new StaffCustomerDto();
|
staffCustomerDto.setCustomerName(customerNameArr[i]);
|
staffCustomerDto.setCustomerMobile(customerMobileArr[i]);
|
staffCustomerDtoList.add(staffCustomerDto);
|
}
|
staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
|
}
|
//归属客户
|
Shop shop = this.getByShopId(shopId);
|
Long belongUserId = shop.getBelongUserId();
|
if(belongUserId!=null){
|
SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData();
|
if(sysUser!=null){
|
staffShopDetailVo.setBelongUser(sysUser.getNickName());
|
}
|
}
|
//最近任务时间
|
ShopTask shopTask = shopTaskService.getLastTask(shopId);
|
if(shopTask!=null){
|
staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
|
}
|
staffShopDetailVo.setShopId(shopId);
|
return staffShopDetailVo;
|
}
|
|
|
/**
|
* @description 添加分账方
|
* @author jqs
|
* @date 2023/8/23 9:44
|
* @param
|
* @return void
|
*/
|
@Override
|
public void addProfitSharingReceiver(MgtShopAuthGetDto mgtShopAuthGetDto){
|
try {
|
ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthGetDto.getAuthId());
|
Shop shop = this.getByShopId(shopAuthentication.getShopId());
|
if(shopAuthentication!=null&&shopAuthentication.getAuditStatus()==6){
|
ProfitSharingReceiverRequest request = new ProfitSharingReceiverRequest();
|
request.setAccount(shopAuthentication.getSubMchid());
|
request.setName(shopAuthentication.getBlShopName());
|
ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
|
if(StringUtils.isNotBlank(result.getAccount())){
|
shop.setAccountFlag(1);
|
shop.setShopStatus(handelShopStatus(null , null,shop.getAuthFlag()));
|
this.saveOrUpdate(shop);
|
}
|
}
|
|
} catch (WxPayException e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
|
|
/**
|
* @description
|
* @author jqs
|
* @date 2023/8/29 14:33
|
* @param
|
* @return List<MgtUserTaskMsgVo>
|
*/
|
@Override
|
public List<MgtUserTaskMsgVo> getTaskMsgList(){
|
return shopMapper.getTaskMsgList();
|
}
|
|
|
/**
|
* 设置商户分账比例
|
* @param mgtShopShareRatioSetDto
|
* @return
|
*/
|
@Override
|
public R setMgtShopShareRatio(MgtShopShareRatioSetDto mgtShopShareRatioSetDto) {
|
ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
|
.eq("shop_id", mgtShopShareRatioSetDto.getShopId()).eq("is_delete", 0));
|
shopAuthenticationHftx.setShareRatio(mgtShopShareRatioSetDto.getShareRatio());
|
shopAuthenticationHftxService.updateById(shopAuthenticationHftx);
|
return R.ok();
|
}
|
|
|
/**
|
* 查询结算记录
|
* @param merchantBasicdataSettlementDto
|
* @return
|
*/
|
@Override
|
public R<List<MerchantBasicdataSettlementVo>> getMerchantBasicDataSettlement(MerchantBasicdataSettlementDto merchantBasicdataSettlementDto) {
|
ShopAuthenticationHftx shopAuthenticationHftx = shopAuthenticationHftxService.getOne(new QueryWrapper<ShopAuthenticationHftx>()
|
.eq("shop_id", merchantBasicdataSettlementDto.getShopId()).eq("is_delete", 0));
|
if(null == shopAuthenticationHftx){
|
return R.ok(new ArrayList<>());
|
}
|
String huifuId = shopAuthenticationHftx.getHuifuId();
|
String startTime = merchantBasicdataSettlementDto.getStartTime();
|
String endTime = merchantBasicdataSettlementDto.getEndTime();
|
Integer pageNum = merchantBasicdataSettlementDto.getPageNum();
|
Integer pageSize = merchantBasicdataSettlementDto.getPageSize();
|
return HuiFuTianXiaUtil.getMerchantBasicdataSettlement(IdUtils.simpleUUID(), huifuId, startTime, endTime, pageNum.toString(), pageSize.toString());
|
}
|
|
|
|
/**
|
* @description
|
* @author jqs
|
* @date 2023/8/10 22:53
|
* @param cityCodes
|
* @return List<Long>
|
*/
|
@Override
|
public List<Shop> listShopByCityCode(List<String> cityCodes){
|
return shopMapper.listShopByCityCode(cityCodes);
|
}
|
|
|
/**
|
* 根据员工id获取对应的门店
|
* @param userIds
|
* @return
|
*/
|
@Override
|
public List<Shop> getShopBySysUserIds(List<Long> userIds) {
|
if(null == userIds || userIds.size() == 0){
|
return new ArrayList<>();
|
}
|
QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>().eq("del_flag", 0).ne("shop_status", -1);
|
if(null != userIds && userIds.size() > 0){
|
queryWrapper.in("belong_user_id", userIds);
|
}
|
List<Shop> list = this.list(queryWrapper);
|
return list;
|
}
|
}
|