From 6cca89c41aea52ae6b23909bb9fbd2834f0094d5 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 08 六月 2023 18:43:12 +0800 Subject: [PATCH] 基础配置 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 208 insertions(+), 28 deletions(-) diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 78b40a9..ce41987 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -1,31 +1,42 @@ package com.ruoyi.shop.service.impl.shop; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.shop.domain.dto.*; import com.ruoyi.shop.domain.pojo.shop.*; -import com.ruoyi.shop.domain.vo.AppNearbyShopVo; +import com.ruoyi.shop.domain.pojo.task.ShopFile; +import com.ruoyi.shop.domain.vo.*; import com.ruoyi.shop.mapper.shop.ShopMapper; import com.ruoyi.shop.service.shop.*; -import com.ruoyi.shop.util.CodeFactoryUtil; -import com.ruoyi.system.api.RemoteActivityService; -import com.ruoyi.system.api.RemoteConfigService; -import com.ruoyi.system.api.RemoteUserService; +import com.ruoyi.shop.service.task.ShopFileService; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; 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.shop.domain.vo.AppShopInfoVo; -import com.ruoyi.shop.domain.vo.MgtShopInfoVo; -import com.ruoyi.shop.domain.vo.MgtShopPageVo; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.commons.lang3.StringUtils; +import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; +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 org.springframework.stereotype.Service; + import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.StringJoiner; /** @@ -52,6 +63,9 @@ private RemoteConfigService configService; @Resource + private RemoteMemberService remoteMemberService; + + @Resource private RemoteUserService sysUserService; @Resource @@ -59,6 +73,22 @@ @Resource private ShopRelUserService shopRelUserService; + + @Resource + private RemoteOrderService remoteOrderService; + + @Resource + private ShopStaffService shopStaffService; + + @Resource + private ShopAccountService shopAccountService; + + @Resource + private ShopAuthenticationService shopAuthenticationService; + + @Resource + private ShopProportionService shopProportionService; + /** @@ -98,34 +128,48 @@ /** * 创建商户 - * @param MGTEditShopDto + * @param mgtEditShopDto */ @Override - public void createShop(MgtEditShopDto MGTEditShopDto){ + public void createShop(MgtEditShopDto mgtEditShopDto){ Shop shop = new Shop(); - if(MGTEditShopDto.getShopId()!=null){ - shop = this.getById(MGTEditShopDto.getShopId()); + 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); + } + shop = this.getById(mgtEditShopDto.getShopId()); shop.setUpdateTime(new Date()); - shop.setUpdateUserId(MGTEditShopDto.getUserId()); + shop.setUpdateUserId(mgtEditShopDto.getUserId()); shop.setShopTags(null); //清空关联记录 shopFileService.deleteByShopId(shop.getShopId()); shopRelTagService.deleteByShopId(shop.getShopId()); shopRelUserService.deleteByShopId(shop.getShopId()); + //清空归属 + shopRelUserService.deleteByShopId(shop.getShopId()); + shopStaffService.clearShopStaffRelation(shop.getShopId()); }else{ - shop.setShopStatus(2); + if(shopSame!=null){ + throw new ServiceException(AppErrorConstant.SHOP_DOUBLE); + } + shop.setShopStatus(3); shop.setCreateTime(new Date()); - shop.setCreateUserId(MGTEditShopDto.getUserId()); + shop.setCreateUserId(mgtEditShopDto.getUserId()); + shop.setFrozenFlag(0); + shop.setCooperativeFlag(0); + newShop = true; } - BeanUtils.copyProperties(MGTEditShopDto,shop); + BeanUtils.copyProperties(mgtEditShopDto,shop); this.saveOrUpdate(shop); //商户编号 - if(MGTEditShopDto.getShopId()==null){ + if(mgtEditShopDto.getShopId()==null){ String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId()); shop.setShopNumber(shopNo); } //商户标签 - String shopTagIds = MGTEditShopDto.getShopTagIds(); + String shopTagIds = mgtEditShopDto.getShopTagIds(); if(StringUtils.isNotBlank(shopTagIds)){ String[] shopTagIdArray = shopTagIds.split(","); ShopRelTag shopRelTag; @@ -145,8 +189,11 @@ shop.setShopTags(shopTagSj.toString()); this.saveOrUpdate(shop); } + //商户归属员工 + SysUser belongSysUser = sysUserService.getSysUser(shop.getBelongUserId()).getData(); + handleShopStaff(shop.getShopId(),belongSysUser); //商户关联人员 - String relUserIds = MGTEditShopDto.getRelUserIds(); + String relUserIds = mgtEditShopDto.getRelUserIds(); if(StringUtils.isNotBlank(relUserIds)){ String[] relUserIdArray = relUserIds.split(","); ShopRelUser shopRelUser; @@ -163,18 +210,19 @@ 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.setFileUrl(mgtEditShopDto.getShopPicture()); shopFile.setShopId(shop.getShopId()); shopFileService.save(shopFile); //商户banner - if(StringUtils.isNotBlank(MGTEditShopDto.getShopBanners())){ - String shopBanners= MGTEditShopDto.getShopBanners(); + if(StringUtils.isNotBlank(mgtEditShopDto.getShopBanners())){ + String shopBanners= mgtEditShopDto.getShopBanners(); String[] shopBannerArray = shopBanners.split(","); for(String str : shopBannerArray){ shopFile = new ShopFile(); @@ -184,6 +232,34 @@ shopFile.setShopId(shop.getShopId()); shopFileService.save(shopFile); } + } + if(newShop){ + //商户账户信息初始化 + ShopAccount shopAccount = new ShopAccount(); + shopAccount.setShopId(shop.getShopId()); + shopAccount.setDelFlag(0); + shopAccount.setTotalIncome(new BigDecimal("0")); + shopAccount.setTotalDisburse(new BigDecimal("0")); + shopAccount.setTotalRefund(new BigDecimal("0")); + shopAccount.setTotalProfitsharing(new BigDecimal("0")); + shopAccount.setTotalMoney(new BigDecimal("0")); + shopAccountService.save(shopAccount); + //商户认证信息初始化 + String authId = IdUtils.simpleUUID(); + ShopAuthentication shopAuthentication = new ShopAuthentication(); + shopAuthentication.setAuthId(authId); + shopAuthentication.setDelFlag(0); + shopAuthentication.setShopId(shop.getShopId()); + shopAuthenticationService.save(shopAuthentication); + //商户分成信息初始化 + ShopProportion shopProportion = new ShopProportion(); + shopProportion.setDelFlag(0); + shopProportion.setShopId(shop.getShopId()); + shopProportion.setShopType(shop.getShopType()); + shopProportion.setProportionPercent(new BigDecimal("100.00")); + shopProportion.setUpdateTime(new Date()); + shopProportion.setUpdateUserId(mgtEditShopDto.getUserId()); + shopProportionService.save(shopProportion); } } @@ -324,12 +400,23 @@ public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto,Member member){ AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo(); Shop shop = null; - if(member.getRealtionShopId()!=null){ + //获取附近商户 + if(member!=null&&member.getRelationShopId()!=null&&member.getBindingFlag()==1){ //获取绑定商户 - shop = this.getById(member.getRealtionShopId()); + shop = this.getById(member.getRelationShopId()); + }else if(StringUtils.isNotBlank(appNearbyShopDto.getLatitude())&&StringUtils.isNotBlank(appNearbyShopDto.getLongitude())){ + AppNearShopVo appNearShopVo = shopMapper.getNearbyShop(appNearbyShopDto); + shop = this.getById(appNearShopVo.getShopId()); }else{ - //获取附近商户 - shop = this.getById(1L); + return appNearbyShopVo; + } + if(member!=null&&member.getBindingFlag()!=1){ + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(shop.getShopId()); + appMemberBindingDto.setShopName(shop.getShopName()); + appMemberBindingDto.setUserId(member.getUserId()); + appMemberBindingDto.setBindingFlag(0); + remoteMemberService.updateMemberBinding(appMemberBindingDto); } appNearbyShopVo.setShopId(shop.getShopId()); appNearbyShopVo.setShopName(shop.getShopName()); @@ -338,4 +425,97 @@ appNearbyShopVo.setShopLongitude(shop.getShopLongitude()); return appNearbyShopVo; } + + /** + * + * @param shopId + * @return + */ + @Override + public Shop getByShopId(Long shopId){ + LambdaQueryWrapper<Shop> queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(Shop::getDelFlag, 0).eq(Shop::getShopId, shopId); + Shop shop = this.getOne(queryWrapper,false); + return shop; + } + + /** + * 获取商户端 + * @param userId + * @return + */ + @Override + public MerHomeShopTotalVo getMerHomeTotal(Long userId){ + MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo(); + ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId); + Long shopId = shopRelUser.getShopId(); + merHomeShopTotalVo.setShopId(shopId); + Shop shop = this.getById(shopId); + merHomeShopTotalVo.setShopType(shop.getShopType()); + Integer task = 0; + merHomeShopTotalVo.setTask(task); + merHomeShopTotalVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData(); + 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); + } } -- Gitblit v1.7.1