package com.ruoyi.demo.service.impl; import cn.dev33.satoken.annotation.SaIgnore; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.demo.entity.App; import com.ruoyi.demo.entity.Commercial; import com.ruoyi.demo.entity.bo.CommercialBo; import com.ruoyi.demo.entity.vo.CommercialVo; import com.ruoyi.demo.mapper.AppMapper; import com.ruoyi.demo.mapper.CommercialMapper; import com.ruoyi.demo.service.CommericalService; import com.ruoyi.demo.utils.InitMapUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.validation.constraints.NotBlank; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @Service public class CommercialServiceImpl implements CommericalService { @Autowired CommercialMapper commercialMapper; @Autowired InitMapUtil initMapUtil; @Autowired AppMapper appMapper; @Override public void addCommercial(CommercialVo commercialVo) { Commercial commercial = new Commercial(commercialVo); commercial.setCreateTime(LocalDateTime.now(ZoneId.of("Asia/Shanghai"))); commercial.setAddrCodeInfo(initMapUtil.getInitAddrCodeMap(commercial.getAddrCode())); commercialMapper.insert(commercial); } @Override public String deleteCommercial(String[] commercialIds) { //1.判断旗下是否有小程序 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("commercial_id",commercialIds); Long aLong = appMapper.selectCount(queryWrapper); if (aLong != 0L) return "待删除的商户中存在App"; commercialMapper.deleteBatchIds(Arrays.asList(commercialIds)); return "删除成功"; } @Override public Commercial getCommercial(String commercialId) { return commercialMapper.selectById(commercialId); } @Override public HashMap getCommercialList(CommercialVo commercialVo) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(commercialVo.getSearchText() != null && !commercialVo.getSearchText().equals("")){ queryWrapper.likeRight("commercial_id",commercialVo.getSearchText()); queryWrapper.or().like("commercial_name",commercialVo.getSearchText()); queryWrapper.or().like("principal_name",commercialVo.getSearchText()); queryWrapper.or().likeRight("principal_telephone",commercialVo.getSearchText()); } Page page = new Page<>(); page.setCurrent(commercialVo.getPageNum()); page.setSize(commercialVo.getPageSize()); Page commercialPage = commercialMapper.selectPage(page, queryWrapper); //1.找到需要关联的小程序 ArrayList commercialIds = new ArrayList<>(); List result = new ArrayList<>(); for (Commercial commercial : commercialPage.getRecords()) { commercialIds.add(commercial.getCommercialId()); CommercialBo commercialBo = new CommercialBo(commercial); commercialBo.setApps(new ArrayList<>()); result.add(commercialBo); } if (!commercialIds.isEmpty()){ QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.select("commercial_id","app_name"); queryWrapper1.in("commercial_id",commercialIds); List apps = appMapper.selectList(queryWrapper1); //2.组装Bo for (CommercialBo commercialBo : result) { ArrayList list = new ArrayList<>(); apps.stream().forEach(item -> { if(item.getCommercialId().equals(commercialBo.getCommercialId())) list.add(item.getAppName()); }); commercialBo.setApps(list); } } commercialPage.setRecords(null); HashMap objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("page",commercialPage); objectObjectHashMap.put("data",result); return objectObjectHashMap; } @Override public List getCommercialName() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("commercial_name","commercial_id"); List commercials = commercialMapper.selectList(queryWrapper); return commercials; } @Override public void updateCommercial(CommercialVo commercialVo) { //1.修改商户 UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("commercial_id",commercialVo.getCommercialId()) .set("commercial_name",commercialVo.getCommercialName()) .set("code",commercialVo.getCode()) .set("principal_name",commercialVo.getPrincipalName()) .set("principal_telephone",commercialVo.getPrincipalTelephone()) .set("prove_1",commercialVo.getProve1()) .set("prove_2",commercialVo.getProve2()) .set("prove_3",commercialVo.getProve3()) .set("prove_4",commercialVo.getProve4()) .set("prove_5",commercialVo.getProve5()) .set("addr_code",commercialVo.getAddrCode()) .set("addr_code_info",initMapUtil.getInitAddrCodeMap(commercialVo.getAddrCode())) .set("addr_info",commercialVo.getAddrInfo()); commercialMapper.update(null,updateWrapper); //2.修改app中的商户名字 UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); updateWrapper1.eq("commercial_id",commercialVo.getCommercialId()) .set("commercial_name",commercialVo.getCommercialName()); appMapper.update(null,updateWrapper1); } }