| | |
| | | package com.ruoyi.shop.service.impl.shop; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.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.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.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.WechatPayUtils; |
| | | 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.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.beans.BeanUtils; |
| | | import com.ruoyi.system.api.service.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | |
| | | * @since 2023-04-25 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService { |
| | | |
| | | @Resource |
| | |
| | | @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; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取商户详情 |
| | | * |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | |
| | | public void createShop(MgtEditShopDto mgtEditShopDto){ |
| | | Shop shop = new Shop(); |
| | | Boolean newShop = false; |
| | | 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); |
| | | 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()); |
| | |
| | | //清空归属 |
| | | shopRelUserService.deleteByShopId(shop.getShopId()); |
| | | shopStaffService.clearShopStaffRelation(shop.getShopId()); |
| | | }else{ |
| | | if(shopSame!=null){ |
| | | throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); |
| | | 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(0); |
| | | shop.setCooperativeFlag(1); |
| | | shop.setAuthFlag(0); |
| | | newShop = true; |
| | | } |
| | | BeanUtils.copyProperties(mgtEditShopDto,shop); |
| | | this.saveOrUpdate(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){ |
| | | /*if(mgtEditShopDto.getShopId()==null){ |
| | | String shopNo = CodeFactoryUtil.getShopNo(); |
| | | shop.setShopNumber(shopNo); |
| | | } |
| | | }*/ |
| | | this.saveOrUpdate(shop); |
| | | //商户标签 |
| | | String shopTagIds = mgtEditShopDto.getShopTagIds(); |
| | | if(StringUtils.isNotBlank(shopTagIds)){ |
| | |
| | | this.saveOrUpdate(shop); |
| | | } |
| | | //商户归属员工 |
| | | if(shop.getBelongUserId()!=null){ |
| | | /*if(shop.getBelongUserId()!=null){ |
| | | SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData(); |
| | | handleShopStaff(shop.getShopId(),belongSysUser); |
| | | } |
| | | }*/ |
| | | //商户关联人员 |
| | | String relUserIds = mgtEditShopDto.getRelUserIds(); |
| | | if(StringUtils.isNotBlank(relUserIds)){ |
| | | shopStaffService.clearShopStaffRelation(shop.getShopId()); |
| | | String[] relUserIdArray = relUserIds.split(","); |
| | | ShopRelUser shopRelUser; |
| | | Long userId; |
| | |
| | | } |
| | | } |
| | | 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); |
| | | //生成商户关联记录 |
| | | 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()); |
| | | shopProportion.setProportionPercent(new BigDecimal("100.00")); |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag())); |
| | | 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(),shop.getCooperativeFlag(),shop.getAuthFlag())); |
| | | 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(frozenFlag == 1){ |
| | | shopStatus = 0; |
| | | return shopStatus; |
| | | } |
| | | if(authFlag == 0){ |
| | | shopStatus = 3; |
| | | return shopStatus; |
| | | } |
| | | if(cooperativeFlag == 0){ |
| | | shopStatus = 2; |
| | | return shopStatus; |
| | | } |
| | | return shopStatus; |
| | | } |
| | | |
| | | |
| | |
| | | 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()){ |
| | |
| | | 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); |
| | |
| | | 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); |
| | | 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 |
| | |
| | | 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()); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取商户端 |
| | | * 获取获取员工端首页统计 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(Long userId){ |
| | | 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); |
| | | } |
| | | } |
| | | //分别查询 |
| | | StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo(); |
| | | if(userIds!=null&&!userIds.isEmpty()){ |
| | | staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds); |
| | | }else{ |
| | | staffHomeShopTotalVo.setShopTotal(0); |
| | | staffHomeShopTotalVo.setAgencyTotal(0); |
| | | staffHomeShopTotalVo.setDealerTotal(0); |
| | | } |
| | | Integer shopTaskCount = 0; |
| | | if(shopIds!=null&&!shopIds.isEmpty()){ |
| | | 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; |
| | | } |
| | | |
| | |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){ |
| | | public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException { |
| | | 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); |
| | | } |
| | | |
| | |
| | | plTotalShopTotalVo.setAgeValue(shopTotalMemberVo.getAgeValue()); |
| | | } |
| | | //获取商户类型 |
| | | List<MgtMapTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); |
| | | if (shopTypeTotal != null && shopTypeTotal.size() > 0) { |
| | | String[] shopTypeKey = new String[shopTypeTotal.size()]; |
| | | Integer[] shopTypeValue = new Integer[shopTypeTotal.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopTypeTotal.size(); i++) { |
| | | if (shopTypeTotal.get(i).getMapKey().equals("1")) { |
| | | shopTypeKey[i] = "经销商"; |
| | | } else if (shopTypeTotal.get(i).getMapKey().equals("2")) { |
| | | shopTypeKey[i] = "代理商"; |
| | | } |
| | | shopTypeValue[i] = shopTypeTotal.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopTypeKey(shopTypeKey); |
| | | plTotalShopTotalVo.setShopTypeValue(shopTypeValue); |
| | | shopTypeTotal = listRemoveNull(shopTypeTotal); |
| | | plTotalShopTotalVo.setShopTypeVos(shopTypeTotal); |
| | | } |
| | | //获取商户状态 |
| | | List<MgtMapTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); |
| | | if (shopStatusTotal != null && shopStatusTotal.size() > 0) { |
| | | String[] shopStatusKey = new String[shopStatusTotal.size()]; |
| | | Integer[] shopStatusValue = new Integer[shopStatusTotal.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopStatusTotal.size(); i++) { |
| | | shopStatusKey[i] = shopStatusTotal.get(i).getMapKey(); |
| | | shopStatusValue[i] = shopStatusTotal.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopStatusKey(shopStatusKey); |
| | | plTotalShopTotalVo.setShopStatusValue(shopStatusValue); |
| | | shopStatusTotal = listRemoveNull(shopStatusTotal); |
| | | plTotalShopTotalVo.setShopStatusVos(shopStatusTotal); |
| | | } |
| | | //获取区域排名 |
| | | List<MgtMapTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); |
| | | if (shopAreaRank != null && shopAreaRank.size() > 0) { |
| | | String[] shopRankKey = new String[shopAreaRank.size()]; |
| | | Integer[] shopRankValue = new Integer[shopAreaRank.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopAreaRank.size(); i++) { |
| | | shopRankKey[i] = shopAreaRank.get(i).getMapKey(); |
| | | shopRankValue[i] = shopAreaRank.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setAreaRankKey(shopRankKey); |
| | | plTotalShopTotalVo.setAreaRankValue(shopRankValue); |
| | | shopAreaRank = listRemoveNull(shopAreaRank); |
| | | plTotalShopTotalVo.setAreaRankVos(shopAreaRank); |
| | | } |
| | | //获取销售排名 |
| | | List<MgtMapTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> shopSalesRank = remoteOrderService.shopSalesRank(shopIdList).getData(); |
| | | if (shopSalesRank != null && shopSalesRank.size() > 0) { |
| | | String[] shopSalesKey = new String[shopSalesRank.size()]; |
| | | Integer[] shopSalesValue = new Integer[shopSalesRank.size()]; |
| | | BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | Long shopId; |
| | | Shop shop; |
| | | for (int i = 0; i < shopSalesRank.size(); i++) { |
| | | shopSalesKey[i] = shopSalesRank.get(i).getMapKey(); |
| | | 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<MgtMapTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); |
| | | List<MgtMapIntTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); |
| | | if (shopRecommendRank != null && shopRecommendRank.size() > 0) { |
| | | String[] shopRecommendKey = new String[shopRecommendRank.size()]; |
| | | Integer[] shopRecommendValue = new Integer[shopRecommendRank.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopRecommendRank.size(); i++) { |
| | | shopRecommendKey[i] = shopRecommendRank.get(i).getMapKey(); |
| | | shopRecommendValue[i] = shopRecommendRank.get(i).getMapValue(); |
| | | } |
| | | plTotalShopTotalVo.setShopRecommendKey(shopRecommendKey); |
| | | plTotalShopTotalVo.setShopRecommendValue(shopRecommendValue); |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * @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); |
| | | } |
| | | StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList); |
| | | StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList); |
| | | shopTotal.setAgencyTotal(agencyTotal.getShopTotal()); |
| | | shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal()); |
| | | shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal()); |
| | | 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())); |
| | | } |
| | | |
| | | /** |
| | | * 调用微信接口查询申请审核状态 |
| | | * @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(shop.getFrozenFlag(), shop.getCooperativeFlag(), 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 ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){ |
| | | try { |
| | | ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request); |
| | | return result; |
| | | } 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(); |
| | | } |
| | | |
| | | } |