| @@ -43,7 +43,7 @@ public class InvestDemandController extends InvestBaseController { | |||
| @ApiOperation(value = "分页列表接口") | |||
| @GetMapping("/list") | |||
| public InvestResultData<InvestPageResult<InvestDemandVo>> list(InvestPageQuery<InvestDemandEntity> params) { | |||
| return execute(params, p -> investBizService.queryPage(p)); | |||
| return execute(params, p -> investBizService.queryPageDemand(p)); | |||
| } | |||
| @@ -6,6 +6,7 @@ import com.iformall.domain.po.InvestTaskEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| import com.iformall.service.invest.InvestBizService; | |||
| import com.iformall.service.invest.InvestTaskService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiOperation; | |||
| @@ -31,6 +32,8 @@ import java.util.Arrays; | |||
| public class InvestTaskController extends InvestBaseController { | |||
| @Autowired | |||
| private InvestTaskService investTaskService; | |||
| @Autowired | |||
| private InvestBizService bizService; | |||
| /** | |||
| * 分页列表 | |||
| @@ -39,7 +42,7 @@ public class InvestTaskController extends InvestBaseController { | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("/list") | |||
| public InvestResultData<InvestPageResult<InvestTaskVo>> list(InvestPageQuery<InvestTaskEntity> params){ | |||
| return execute(params, p -> investTaskService.queryPage(p)); | |||
| return execute(params, p -> bizService.queryPageTask(p)); | |||
| } | |||
| @@ -1,5 +1,8 @@ | |||
| package com.iformall.service.invest; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import java.io.Serializable; | |||
| /** | |||
| @@ -11,6 +14,8 @@ import java.io.Serializable; | |||
| */ | |||
| public interface InvestBaseService<T> { | |||
| InvestPageResult<T> queryPage(InvestPageQuery<T> params) ; | |||
| T getByIdNotNull(Serializable id); | |||
| } | |||
| @@ -1,13 +1,17 @@ | |||
| package com.iformall.service.invest; | |||
| import com.iformall.domain.po.InvestDemandEntity; | |||
| import com.iformall.domain.po.InvestTaskEntity; | |||
| import com.iformall.domain.vo.invest.InvestDemandVo; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| public interface InvestBizService { | |||
| InvestPageResult<InvestDemandVo> queryPage(InvestPageQuery<InvestDemandEntity> params); | |||
| InvestPageResult<InvestDemandVo> queryPageDemand(InvestPageQuery<InvestDemandEntity> params); | |||
| InvestPageResult<InvestTaskVo> queryPageTask(InvestPageQuery<InvestTaskEntity> params); | |||
| boolean saveCustomerAndDemand(InvestDemandVo customerDemandVo) ; | |||
| @@ -2,9 +2,6 @@ package com.iformall.service.invest; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.iformall.domain.po.InvestTaskEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| /** | |||
| * 招商任务 | |||
| @@ -15,7 +12,5 @@ import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| */ | |||
| public interface InvestTaskService extends IService<InvestTaskEntity>,InvestBaseService<InvestTaskEntity> { | |||
| InvestPageResult<InvestTaskVo> queryPage(InvestPageQuery<InvestTaskEntity> params); | |||
| } | |||
| @@ -2,12 +2,15 @@ package com.iformall.service.invest.impl; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestUserContext; | |||
| import com.iformall.enums.EnumInvestType; | |||
| import com.iformall.enums.EnumShopStatus; | |||
| @@ -21,15 +24,35 @@ import com.iformall.service.invest.InvestCustomerService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.utils.JsonUtil; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.beans.BeanUtils; | |||
| import java.io.Serializable; | |||
| import java.util.List; | |||
| import java.util.Objects; | |||
| import java.util.function.Consumer; | |||
| import java.util.function.Function; | |||
| import java.util.stream.Collectors; | |||
| public class InvestBaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements InvestBaseService<T> { | |||
| @Override | |||
| public InvestPageResult<T> queryPage(InvestPageQuery<T> params) { | |||
| InvestHelper.allNotNull(params); | |||
| //1、分页信息 | |||
| Page<T> queryPage = buildQueryPage(params); | |||
| //2、查询数据 | |||
| T queryParams = params.getQueryData(); | |||
| LambdaQueryWrapper<T> queryWrapper = new LambdaQueryWrapper<>(queryParams); | |||
| IPage<T> resultPage = this.page(queryPage, queryWrapper); | |||
| InvestPageResult<T> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(resultPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| BeanUtils.copyProperties(resultPage, investPage); | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public T getByIdNotNull(Serializable id) { | |||
| InvestHelper.checkResult(id,"id=null"); | |||
| @@ -1,22 +1,20 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.domain.po.InvestCustomerEntity; | |||
| import com.iformall.domain.po.InvestDemandEntity; | |||
| import com.iformall.domain.po.WxBrand; | |||
| import com.iformall.domain.po.WxShop; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.vo.invest.InvestDemandVo; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| import com.iformall.service.MallUserInfoService; | |||
| import com.iformall.service.WxBrandService; | |||
| import com.iformall.service.WxShopService; | |||
| import com.iformall.service.invest.InvestBizService; | |||
| import com.iformall.service.invest.InvestCustomerService; | |||
| import com.iformall.service.invest.InvestDemandService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.service.invest.*; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.apache.commons.compress.utils.Lists; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| @@ -31,14 +29,18 @@ public class InvestBizServiceImpl implements InvestBizService { | |||
| @Autowired | |||
| private InvestDemandService demandService; | |||
| @Autowired | |||
| private InvestTaskService taskService; | |||
| @Autowired | |||
| private WxShopService shopService; | |||
| @Autowired | |||
| private InvestCustomerService customerService; | |||
| @Autowired | |||
| private WxBrandService brandService; | |||
| @Autowired | |||
| private MallUserInfoService userInfoService; | |||
| @Override | |||
| public InvestPageResult<InvestDemandVo> queryPage(InvestPageQuery<InvestDemandEntity> params) { | |||
| public InvestPageResult<InvestDemandVo> queryPageDemand(InvestPageQuery<InvestDemandEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| Page<InvestDemandEntity> page = InvestHelper.buildQueryPage(params); | |||
| InvestPageResult<InvestDemandVo> investPage = new InvestPageResult<>(); | |||
| @@ -57,6 +59,54 @@ public class InvestBizServiceImpl implements InvestBizService { | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public InvestPageResult<InvestTaskVo> queryPageTask(InvestPageQuery<InvestTaskEntity> params) { | |||
| InvestPageResult<InvestTaskEntity> taskPage = taskService.queryPage(params); | |||
| InvestPageResult<InvestTaskVo> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(taskPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| List<InvestTaskEntity> taskList = taskPage.getRecords(); | |||
| //2、目标信息 | |||
| Collection<WxShop> shops = shopService.getByIds(taskList.stream().map(InvestTaskEntity::getTargetId).collect(Collectors.toList())); | |||
| Map<Long, WxShop> shopsMap = shops.stream().collect(Collectors.toMap(WxShop::getId, shop -> shop)); | |||
| //3、用户信息 | |||
| Collection<MallUserInfo> users = userInfoService.findList(null); | |||
| Map<Long, MallUserInfo> usersMap = users.parallelStream().collect(Collectors.toMap(MallUserInfo::getId, MallUserInfo -> MallUserInfo)); | |||
| List<InvestTaskVo> resultList = new ArrayList<>(); | |||
| for (InvestTaskEntity item : taskList) { | |||
| WxShop shop = shopsMap.get(item.getTargetId()); | |||
| resultList.add(buildResultItem(item, shop, usersMap)); | |||
| } | |||
| BeanUtils.copyProperties(taskPage, investPage); | |||
| investPage.setRecords(resultList); | |||
| investPage.setTotal(taskPage.getTotal()); | |||
| return investPage; | |||
| } | |||
| private InvestTaskVo buildResultItem(InvestTaskEntity item, WxShop shop, Map<Long, MallUserInfo> usersMap) { | |||
| List<MallUserInfo> ownerInfo = Lists.newArrayList(); | |||
| List<Long> ownerList = JSON.parseArray(item.getOwner(), Long.class); | |||
| if (CollectionUtils.isNotEmpty(ownerList)) { | |||
| for (Long userId : ownerList) { | |||
| ownerInfo.add(usersMap.get(userId)); | |||
| } | |||
| } | |||
| InvestTaskVo resultItemVo = InvestTaskVo.builder() | |||
| .targetInfo(shop) | |||
| .ownerInfo(ownerInfo) | |||
| .build(); | |||
| BeanUtils.copyProperties(item, resultItemVo); | |||
| return resultItemVo; | |||
| } | |||
| private List<InvestDemandVo> getITargeInfoList(IPage<InvestDemandEntity> demandPage) { | |||
| List<InvestDemandEntity> demandList = demandPage.getRecords(); | |||
| //2、客户信息 | |||
| @@ -1,21 +1,13 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.TableLog; | |||
| import com.iformall.domain.po.InvestCustomerEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.mapper.InvestCustomerDao; | |||
| import com.iformall.service.WxBrandService; | |||
| import com.iformall.service.WxBusinessService; | |||
| import com.iformall.service.invest.InvestCustomerService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| @@ -32,24 +24,6 @@ public class InvestCustomerServiceImpl extends InvestBaseServiceImpl<InvestCusto | |||
| private WxBusinessService businessService ; | |||
| @Override | |||
| public InvestPageResult<InvestCustomerEntity> queryPage(InvestPageQuery<InvestCustomerEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| Page<InvestCustomerEntity> queryPage = buildQueryPage(params); | |||
| //1、任务信息 | |||
| InvestCustomerEntity queryData = params.getQueryData(); | |||
| LambdaQueryWrapper<InvestCustomerEntity> queryWrapper = new LambdaQueryWrapper<>(queryData); | |||
| IPage<InvestCustomerEntity> taskPage = this.page(queryPage, queryWrapper); | |||
| InvestPageResult<InvestCustomerEntity> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(taskPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| BeanUtils.copyProperties(taskPage, investPage); | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public boolean save(InvestCustomerEntity entity) { | |||
| return super.saveAction(entity, this::checkBeforeSaveOrUpdate); | |||
| } | |||
| @@ -1,21 +1,14 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.domain.po.InvestFollowRecordEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.enums.EnumFollowType; | |||
| import com.iformall.mapper.InvestFollowRecordDao; | |||
| import com.iformall.service.invest.InvestDemandService; | |||
| import com.iformall.service.invest.InvestFollowRecordService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.service.invest.InvestTaskService; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| @@ -29,22 +22,6 @@ public class InvestFollowRecordServiceImpl extends InvestBaseServiceImpl<InvestF | |||
| @Autowired | |||
| private InvestTaskService taskService ; | |||
| @Override | |||
| public InvestPageResult<InvestFollowRecordEntity> queryPage(InvestPageQuery<InvestFollowRecordEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| Page page = buildQueryPage(params); | |||
| InvestFollowRecordEntity queryTask = params.getQueryData(); | |||
| LambdaQueryWrapper<InvestFollowRecordEntity> queryWrapper = new LambdaQueryWrapper<>(queryTask); | |||
| IPage<InvestFollowRecordEntity> records = this.page(page, queryWrapper); | |||
| InvestPageResult<InvestFollowRecordEntity> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(records.getRecords())) { | |||
| return investPage; | |||
| } | |||
| BeanUtils.copyProperties(records, investPage); | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public boolean save(InvestFollowRecordEntity entity) { | |||
| return super.saveAction(entity, this::checkBeforeSaveOrUpdate); | |||
| @@ -1,42 +1,17 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.domain.po.InvestOperateRecordEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestUserContext; | |||
| import com.iformall.mapper.InvestOperateRecordDao; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.service.invest.InvestOperateRecordService; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.stereotype.Service; | |||
| @Service | |||
| public class InvestOperateRecordServiceImpl extends InvestBaseServiceImpl<InvestOperateRecordDao, InvestOperateRecordEntity> implements InvestOperateRecordService { | |||
| @Override | |||
| public InvestPageResult<InvestOperateRecordEntity> queryPage(InvestPageQuery<InvestOperateRecordEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| //1、分页信息 | |||
| Page<InvestOperateRecordEntity> queryPage = buildQueryPage(params); | |||
| //2、查询数据 | |||
| InvestOperateRecordEntity queryParams = params.getQueryData(); | |||
| LambdaQueryWrapper<InvestOperateRecordEntity> queryWrapper = new LambdaQueryWrapper<>(queryParams); | |||
| IPage<InvestOperateRecordEntity> taskPage = this.page(queryPage, queryWrapper); | |||
| InvestPageResult<InvestOperateRecordEntity> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(taskPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| BeanUtils.copyProperties(taskPage, investPage); | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public boolean save(InvestOperateRecordEntity entity) { | |||
| return super.saveAction(entity, this::checkBeforeSaveOrUpdate); | |||
| @@ -1,20 +1,10 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.domain.po.InvestRemindEntity; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestUserContext; | |||
| import com.iformall.mapper.InvestRemindDao; | |||
| import com.iformall.service.MallUserInfoService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.service.invest.InvestRemindService; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.Objects; | |||
| @@ -23,24 +13,6 @@ import java.util.Objects; | |||
| @Service | |||
| public class InvestRemindServiceImpl extends InvestBaseServiceImpl<InvestRemindDao, InvestRemindEntity> implements InvestRemindService { | |||
| @Override | |||
| public InvestPageResult<InvestRemindEntity> queryPage(InvestPageQuery<InvestRemindEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| //1、分页信息 | |||
| Page<InvestRemindEntity> queryPage = buildQueryPage(params); | |||
| //2、查询数据 | |||
| InvestRemindEntity queryParams = params.getQueryData(); | |||
| LambdaQueryWrapper<InvestRemindEntity> queryWrapper = new LambdaQueryWrapper<>(queryParams); | |||
| IPage<InvestRemindEntity> taskPage = this.page(queryPage, queryWrapper); | |||
| InvestPageResult<InvestRemindEntity> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(taskPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| BeanUtils.copyProperties(taskPage, investPage); | |||
| return investPage; | |||
| } | |||
| @Override | |||
| public boolean save(InvestRemindEntity entity) { | |||
| return super.saveAction(entity, this::checkBeforeSaveOrUpdate); | |||
| @@ -1,30 +1,16 @@ | |||
| package com.iformall.service.invest.impl; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||
| import com.iformall.common.TableLog; | |||
| import com.iformall.domain.po.InvestTaskEntity; | |||
| import com.iformall.domain.po.MallUserInfo; | |||
| import com.iformall.domain.po.WxShop; | |||
| import com.iformall.domain.vo.invest.InvestPageQuery; | |||
| import com.iformall.domain.vo.invest.InvestPageResult; | |||
| import com.iformall.domain.vo.invest.InvestTaskVo; | |||
| import com.iformall.mapper.InvestTaskDao; | |||
| import com.iformall.service.MallUserInfoService; | |||
| import com.iformall.service.WxShopService; | |||
| import com.iformall.service.invest.InvestHelper; | |||
| import com.iformall.service.invest.InvestTaskService; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.apache.commons.compress.utils.Lists; | |||
| import org.springframework.beans.BeanUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.*; | |||
| import java.util.stream.Collectors; | |||
| @Service | |||
| @@ -35,58 +21,6 @@ public class InvestTaskServiceImpl extends InvestBaseServiceImpl<InvestTaskDao, | |||
| @Autowired | |||
| private MallUserInfoService userInfoService; | |||
| @Override | |||
| public InvestPageResult<InvestTaskVo> queryPage(InvestPageQuery<InvestTaskEntity> params) { | |||
| InvestHelper.allNotNull(params); | |||
| Page<InvestTaskEntity> queryPage = buildQueryPage(params); | |||
| //1、任务信息 | |||
| InvestTaskEntity queryTask = params.getQueryData(); | |||
| LambdaQueryWrapper<InvestTaskEntity> queryWrapper = new LambdaQueryWrapper<>(queryTask); | |||
| IPage<InvestTaskEntity> taskPage = this.page(queryPage, queryWrapper); | |||
| InvestPageResult<InvestTaskVo> investPage = new InvestPageResult<>(); | |||
| if (CollectionUtils.isEmpty(taskPage.getRecords())) { | |||
| return investPage; | |||
| } | |||
| List<InvestTaskEntity> taskList = taskPage.getRecords(); | |||
| //2、目标信息 | |||
| Collection<WxShop> shops = shopService.getByIds(taskList.stream().map(InvestTaskEntity::getTargetId).collect(Collectors.toList())); | |||
| Map<Long, WxShop> shopsMap = shops.stream().collect(Collectors.toMap(WxShop::getId, shop -> shop)); | |||
| //3、用户信息 | |||
| Collection<MallUserInfo> users = userInfoService.findList(null); | |||
| Map<Long, MallUserInfo> usersMap = users.parallelStream().collect(Collectors.toMap(MallUserInfo::getId, MallUserInfo -> MallUserInfo)); | |||
| List<InvestTaskVo> resultList = new ArrayList<>(); | |||
| for (InvestTaskEntity item : taskList) { | |||
| WxShop shop = shopsMap.get(item.getTargetId()); | |||
| resultList.add(buildResultItem(item, shop, usersMap)); | |||
| } | |||
| BeanUtils.copyProperties(taskPage, investPage); | |||
| investPage.setRecords(resultList); | |||
| investPage.setTotal(taskPage.getTotal()); | |||
| return investPage; | |||
| } | |||
| private InvestTaskVo buildResultItem(InvestTaskEntity item, WxShop shop, Map<Long, MallUserInfo> usersMap) { | |||
| List<MallUserInfo> ownerInfo = Lists.newArrayList(); | |||
| List<Long> ownerList = JSON.parseArray(item.getOwner(), Long.class); | |||
| if (CollectionUtils.isNotEmpty(ownerList)) { | |||
| for (Long userId : ownerList) { | |||
| ownerInfo.add(usersMap.get(userId)); | |||
| } | |||
| } | |||
| InvestTaskVo resultItemVo = InvestTaskVo.builder() | |||
| .targetInfo(shop) | |||
| .ownerInfo(ownerInfo) | |||
| .build(); | |||
| BeanUtils.copyProperties(item, resultItemVo); | |||
| return resultItemVo; | |||
| } | |||
| @Override | |||
| public boolean save(InvestTaskEntity entity) { | |||
| return super.saveAction(entity, this::checkBeforeSaveOrUpdate); | |||