BUG
jiangqs
2023-04-24 aa2eae024f8f251c8e2b9eace5351dea7e315ed7
hrt-modules/hrt-system/src/main/java/com/hrt/system/service/impl/ShopServiceImpl.java
@@ -1,10 +1,32 @@
package com.hrt.system.service.impl;
import com.hrt.system.domain.poji.shop.Shop;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hrt.common.core.utils.StringUtils;
import com.hrt.system.api.domain.SysUser;
import com.hrt.system.domain.dto.MgtChangeCoopDto;
import com.hrt.system.domain.dto.MgtEditShopDto;
import com.hrt.system.domain.dto.MgtEditShopTagDto;
import com.hrt.system.domain.dto.MgtShopPageDto;
import com.hrt.system.domain.poji.shop.*;
import com.hrt.system.domain.poji.sys.SysTag;
import com.hrt.system.domain.vo.AppShopInfoVo;
import com.hrt.system.domain.vo.MgtShopInfoVo;
import com.hrt.system.domain.vo.MgtShopPageVo;
import com.hrt.system.mapper.shop.ShopMapper;
import com.hrt.system.service.shop.ShopService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.hrt.system.service.shop.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hrt.system.service.sys.SysTagService;
import com.hrt.system.service.user.ISysUserService;
import com.hrt.system.util.CodeFactoryUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.StringJoiner;
/**
 * <p>
@@ -17,4 +39,278 @@
@Service
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
    @Resource
    private ShopMapper shopMapper;
    @Resource
    private ShopFileService shopFileService;
    @Resource
    private ShopCertificateService shopCertificateService;
    @Resource
    private SysTagService sysTagService;
    @Resource
    private ShopRelTagService shopRelTagService;
    @Resource
    private ShopRelUserService shopRelUserService;
    @Resource
    private ISysUserService sysUserService;
    /**
     * 获取商户详情
     * @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();
        if(MGTEditShopDto.getShopId()!=null){
            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());
        }else{
            shop.setShopStatus(2);
            shop.setCreateTime(new Date());
            shop.setCreateUserId(MGTEditShopDto.getUserId());
        }
        BeanUtils.copyProperties(MGTEditShopDto,shop);
        this.saveOrUpdate(shop);
        //商户编号
        if(MGTEditShopDto.getShopId()==null){
            String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId());
            shop.setShopNumber(shopNo);
        }
        //商户标签
        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 = sysTagService.getById(tagid);
                shopRelTag.setDelFlag(0);
                shopRelTag.setShopId(shop.getShopId());
                shopRelTag.setTagId(tagid);
                shopRelTagService.save(shopRelTag);
                shopTagSj.add(sysTag.getTagName());
            }
            shop.setShopTags(shopTagSj.toString());
            this.saveOrUpdate(shop);
        }
        //商户关联人员
        String relUserIds = MGTEditShopDto.getRelUserIds();
        if(StringUtils.isNotBlank(relUserIds)){
            String[] relUserIdArray = relUserIds.split(",");
            ShopRelUser shopRelUser;
            Long userId;
            SysUser sysUser;
            for(String str : relUserIdArray){
                shopRelUser = new ShopRelUser();
                userId = Long.valueOf(str);
                sysUser = sysUserService.selectUserById(userId);
                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);
            }
        }
        //商户封面
        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);
            }
        }
    }
    /**
     * 修改合作时间
     * @param mgtChangeCoopDto
     */
    @Override
    public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){
        Shop shop = this.getById(mgtChangeCoopDto.getShopId());
        String coopStartTime = mgtChangeCoopDto.getCoopStartTime();
        String coopEndTime = mgtChangeCoopDto.getCoopEndTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date coopStartDate = simpleDateFormat.parse(coopStartTime);
            Date coopEndDate = simpleDateFormat.parse(coopEndTime);
            Date nowTime = new Date();
            shop.setCooperationStartTime(coopStartDate);
            shop.setCooperationEndTime(coopEndDate);
            Boolean inTime = false;
           if(coopStartDate.compareTo(nowTime)<0&&coopEndDate.compareTo(nowTime)>0){
               inTime = true;
           }
           if(shop.getShopStatus()==2&&inTime){
               shop.setShopStatus(1);
           }
           shop.setUpdateTime(nowTime);
           shop.setUpdateUserId(mgtChangeCoopDto.getUserId());
           this.saveOrUpdate(shop);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    /**
     * 分页获取商户
     * @param page
     * @param mgtShopPageDto
     * @return
     */
    @Override
    public List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto){
        List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageShop(page, mgtShopPageDto);
        return mgtShopPageVoList;
    }
    /**
     * 获取商户详情
     * @param shopId
     * @return
     */
    @Override
    public MgtShopInfoVo getMgtShopInfo(Long shopId){
        MgtShopInfoVo mgtShopInfoVo = new MgtShopInfoVo();
        Shop shop = this.getById(shopId);
        //基本信息拷贝
        BeanUtils.copyProperties(shop,mgtShopInfoVo);
        //商户标签
        List<ShopRelTag> shopRelTagList = shopRelTagService.listShopRelTagByShopId(shopId);
        if(shopRelTagList!=null&&!shopRelTagList.isEmpty()){
            StringJoiner shopTagJs = new StringJoiner(",");
            for(ShopRelTag shopRelTag : shopRelTagList){
                shopTagJs.add(shopRelTag.getTagId().toString());
            }
            mgtShopInfoVo.setShopTagIds(shopTagJs.toString());
        }
        //商户关联用户
        List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId);
        if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){
            StringJoiner shopUserJs = new StringJoiner(",");
            StringJoiner shopUserNameJs = new StringJoiner(",");
            for(ShopRelUser shopRelUser : shopRelUserList){
                shopUserJs.add(shopRelUser.getUserId().toString());
                shopUserNameJs.add(shopRelUser.getUserName());
            }
            mgtShopInfoVo.setRelUserIds(shopUserJs.toString());
            mgtShopInfoVo.setRelUsers(shopUserNameJs.toString());
        }
        //商户图片
        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId);
        if(shopFileList!=null&&!shopFileList.isEmpty()){
            StringJoiner shopBannerJs = new StringJoiner(",");
            for(ShopFile shopFile : shopFileList){
                if(shopFile.getFileType()==1){
                    mgtShopInfoVo.setShopPicture(shopFile.getFileUrl());
                }else{
                    shopBannerJs.add(shopFile.getFileUrl());
                }
            }
            mgtShopInfoVo.setShopBanners(shopBannerJs.toString());
        }
        //商户证书
        List<ShopCertificate> shopCertificateList = shopCertificateService.listShopCertificateByShopId(shopId);
        mgtShopInfoVo.setShopCertificateList(shopCertificateList);
        return mgtShopInfoVo;
    }
    /**
     * 修改商户标签
     * @param mgtEditShopTagDto
     */
    @Override
    public void editShopTag(MgtEditShopTagDto mgtEditShopTagDto){
        Long shopId = Long.valueOf(mgtEditShopTagDto.getId());
        String shopTagIds = mgtEditShopTagDto.getShopTagIds();
        String shopTags = null;
        //删除以前的标签
        shopRelTagService.deleteByShopId(shopId);
        if(StringUtils.isNotBlank(shopTagIds)){
            ShopRelTag shopRelTag;
            SysTag sysTag;
            Long tagId;
            String[] shopTagIdArray = shopTagIds.split(",");
            StringJoiner shopTagSj = new StringJoiner(",");
            for(String str : shopTagIdArray){
                tagId = Long.valueOf(str);
                sysTag = sysTagService.getById(tagId);
                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);
    }
}