Browse Source

[招商]adjust

release_toaliyun_real
Burce 6 years ago
parent
commit
b626b2c069
7 changed files with 150 additions and 12 deletions
  1. +8
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestOperateRecordController.java
  2. +4
    -1
      mallinkService/src/main/java/com/iformall/domain/po/invest/InvestOperateRecordEntity.java
  3. +21
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/invest/InvestOperateRecordQuery.java
  4. +32
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/invest/InvestOperateRecordVo.java
  5. +4
    -0
      mallinkService/src/main/java/com/iformall/service/invest/InvestBizService.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/service/invest/InvestOperateRecordService.java
  7. +80
    -7
      mallinkService/src/main/java/com/iformall/service/invest/impl/InvestBizServiceImpl.java

+ 8
- 3
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestOperateRecordController.java View File

@@ -3,8 +3,11 @@ package com.iformall.controller.invest;
import com.iformall.annotation.SystemServiceLog; import com.iformall.annotation.SystemServiceLog;
import com.iformall.common.InvestResultData; import com.iformall.common.InvestResultData;
import com.iformall.domain.po.invest.InvestOperateRecordEntity; import com.iformall.domain.po.invest.InvestOperateRecordEntity;
import com.iformall.domain.vo.invest.InvestOperateRecordQuery;
import com.iformall.domain.vo.invest.InvestOperateRecordVo;
import com.iformall.domain.vo.invest.InvestPageQuery; import com.iformall.domain.vo.invest.InvestPageQuery;
import com.iformall.domain.vo.invest.InvestPageResult; import com.iformall.domain.vo.invest.InvestPageResult;
import com.iformall.service.invest.InvestBizService;
import com.iformall.service.invest.InvestOperateRecordService; import com.iformall.service.invest.InvestOperateRecordService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -30,6 +33,8 @@ import java.util.Arrays;
public class InvestOperateRecordController extends InvestBaseController { public class InvestOperateRecordController extends InvestBaseController {
@Autowired @Autowired
private InvestOperateRecordService investOperateRecordService; private InvestOperateRecordService investOperateRecordService;
@Autowired
private InvestBizService bizService;


/** /**
* 分页列表 * 分页列表
@@ -37,8 +42,8 @@ public class InvestOperateRecordController extends InvestBaseController {
@SystemServiceLog @SystemServiceLog
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@GetMapping("/list") @GetMapping("/list")
public InvestResultData<InvestPageResult<InvestOperateRecordEntity>> list(InvestPageQuery<InvestOperateRecordEntity> params) {
return execute(params, p -> investOperateRecordService.queryPage(p));
public InvestResultData<InvestPageResult<InvestOperateRecordVo>> list(InvestOperateRecordQuery params) {
return execute(params, p -> bizService.queryPageOperateRecord(p));
} }




@@ -47,7 +52,7 @@ public class InvestOperateRecordController extends InvestBaseController {
*/ */
//@GetMapping("/info/{id}") //@GetMapping("/info/{id}")
public InvestResultData info(@PathVariable("id") Long id){ public InvestResultData info(@PathVariable("id") Long id){
return execute(id, p -> investOperateRecordService.getById(p));
return execute(id, p -> investOperateRecordService.getByIdNotNull(p));
} }


/** /**


+ 4
- 1
mallinkService/src/main/java/com/iformall/domain/po/invest/InvestOperateRecordEntity.java View File

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date; import java.util.Date;


import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iformall.domain.po.invest.InvestBaseEntity;
import com.iformall.enums.EnumTableOperateType; import com.iformall.enums.EnumTableOperateType;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -23,6 +22,10 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class InvestOperateRecordEntity extends InvestBaseEntity { public class InvestOperateRecordEntity extends InvestBaseEntity {


public static final String TLB_CUSTOMER = "invest_customer" ;
public static final String TLB_DEMAND = "invest_demand" ;
public static final String TLB_TASK = "invest_task" ;

/** /**
* 表名称 * 表名称
*/ */


+ 21
- 0
mallinkService/src/main/java/com/iformall/domain/vo/invest/InvestOperateRecordQuery.java View File

@@ -0,0 +1,21 @@
package com.iformall.domain.vo.invest;

import com.iformall.enums.EnumFollowType;
import lombok.Data;

@Data
public class InvestOperateRecordQuery extends InvestPageQuery {

/**
* 跟踪类型:0-招商任务;1-客户需求
*/
@io.swagger.annotations.ApiModelProperty(value = "跟踪类型:0-招商任务;1-客户需求", name = "reocrdType")
private EnumFollowType reocrdType;

/**
* 跟踪类型的主键ID
*/
@io.swagger.annotations.ApiModelProperty(value = "跟踪类型的主键ID", name = "followId")
private Long tid;

}

+ 32
- 0
mallinkService/src/main/java/com/iformall/domain/vo/invest/InvestOperateRecordVo.java View File

@@ -0,0 +1,32 @@
package com.iformall.domain.vo.invest;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxBrand;
import com.iformall.domain.po.invest.InvestCustomerEntity;
import com.iformall.domain.po.invest.InvestFollowRecordEntity;
import com.iformall.domain.po.invest.InvestOperateRecordEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Collection;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
public class InvestOperateRecordVo extends InvestOperateRecordEntity {

/**
* 表名称
*/
@JsonIgnore
private String tbl;

/**
* 更新内容
*/
@JsonIgnore
private String content;

private Collection<TableTriple> record;
}

+ 4
- 0
mallinkService/src/main/java/com/iformall/service/invest/InvestBizService.java View File

@@ -16,6 +16,8 @@ public interface InvestBizService {


InvestPageResult<InvestRemindVo> queryPageRemind(InvestPageQuery<InvestRemindEntity> params); InvestPageResult<InvestRemindVo> queryPageRemind(InvestPageQuery<InvestRemindEntity> params);


InvestPageResult<InvestOperateRecordVo> queryPageOperateRecord(InvestOperateRecordQuery params);

List<MallUserInfo> queryUserList() ; List<MallUserInfo> queryUserList() ;


boolean saveCustomerAndDemand(InvestDemandDto customerDemandDto) ; boolean saveCustomerAndDemand(InvestDemandDto customerDemandDto) ;
@@ -28,6 +30,8 @@ public interface InvestBizService {


InvestRemindVo findRemindById(Long id) ; InvestRemindVo findRemindById(Long id) ;


InvestOperateRecordVo findOperateById(InvestOperateRecordQuery params) ;

InvestFollowRecordVo findFollowRecordById(Long id) ; InvestFollowRecordVo findFollowRecordById(Long id) ;


} }

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/invest/InvestOperateRecordService.java View File

@@ -12,7 +12,7 @@ import com.iformall.domain.vo.invest.InvestPageResult;
* @email * @email
* @date 2019-09-23 18:40:43 * @date 2019-09-23 18:40:43
*/ */
public interface InvestOperateRecordService extends IService<InvestOperateRecordEntity> {
public interface InvestOperateRecordService extends IService<InvestOperateRecordEntity>,InvestBaseService<InvestOperateRecordEntity> {


InvestPageResult<InvestOperateRecordEntity> queryPage(InvestPageQuery<InvestOperateRecordEntity> params); InvestPageResult<InvestOperateRecordEntity> queryPage(InvestPageQuery<InvestOperateRecordEntity> params);
} }


+ 80
- 7
mallinkService/src/main/java/com/iformall/service/invest/impl/InvestBizServiceImpl.java View File

@@ -4,11 +4,14 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimaps;
import com.iformall.domain.dto.InvestDemandDto; import com.iformall.domain.dto.InvestDemandDto;
import com.iformall.domain.dto.InvestTaskDto; import com.iformall.domain.dto.InvestTaskDto;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.invest.*; import com.iformall.domain.po.invest.*;
import com.iformall.domain.vo.invest.*; import com.iformall.domain.vo.invest.*;
import com.iformall.enums.EnumFollowType;
import com.iformall.enums.EnumNegotiationType; import com.iformall.enums.EnumNegotiationType;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
import com.iformall.service.WxBrandService; import com.iformall.service.WxBrandService;
@@ -19,6 +22,7 @@ import org.apache.commons.collections.MapUtils;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -38,6 +42,8 @@ public class InvestBizServiceImpl implements InvestBizService {
@Autowired @Autowired
private InvestFollowRecordService followRecordService; private InvestFollowRecordService followRecordService;
@Autowired @Autowired
private InvestOperateRecordService operateRecordService;
@Autowired
private InvestRemindService remindService; private InvestRemindService remindService;
@Autowired @Autowired
private WxShopService shopService; private WxShopService shopService;
@@ -105,19 +111,18 @@ public class InvestBizServiceImpl implements InvestBizService {
shopParams = queryParams.getShop(); shopParams = queryParams.getShop();
taskParams = queryParams.getTask(); taskParams = queryParams.getTask();
} }
LambdaQueryWrapper<InvestTaskEntity> taskQueryWrapper = null;
LambdaQueryWrapper<InvestTaskEntity> taskQueryWrapper = new LambdaQueryWrapper<>();
InvestPageResult<InvestTaskVo> investPage = new InvestPageResult<>(); InvestPageResult<InvestTaskVo> investPage = new InvestPageResult<>();
if (Objects.nonNull(shopParams)) { if (Objects.nonNull(shopParams)) {
Collection<WxShop> shops = shopService.selectList(new QueryWrapper<>(shopParams)); Collection<WxShop> shops = shopService.selectList(new QueryWrapper<>(shopParams));
if (CollectionUtils.isEmpty(shops)) { if (CollectionUtils.isEmpty(shops)) {
return investPage; return investPage;
} }
taskQueryWrapper = new LambdaQueryWrapper<>();
taskQueryWrapper.in(InvestTaskEntity::getTargetId, getIds(shops, WxShop::getId)); taskQueryWrapper.in(InvestTaskEntity::getTargetId, getIds(shops, WxShop::getId));
} }
if (Objects.nonNull(taskQueryWrapper) && Objects.nonNull(taskParams)) {
taskQueryWrapper.eq(InvestTaskEntity::getOwner, taskParams.getOwner());
taskQueryWrapper.apply(StringUtils.isNoneEmpty(taskParams.getOwner()), "`owner` REGEXP {0}", taskParams.getOwner());
if (Objects.nonNull(taskParams)) {
taskQueryWrapper.apply(StringUtils.isNotEmpty(taskParams.getOwner()), "`owner` REGEXP {0}", taskParams.getOwner());
taskParams.setOwner(null);
} }


InvestPageResult<InvestTaskEntity> taskPage = taskService.queryPage(buildPageQuery(params, taskParams), taskQueryWrapper); InvestPageResult<InvestTaskEntity> taskPage = taskService.queryPage(buildPageQuery(params, taskParams), taskQueryWrapper);
@@ -234,14 +239,63 @@ public class InvestBizServiceImpl implements InvestBizService {
remindVo.setOwnerInfo(usersMap.get(remindVo.getOwner())); remindVo.setOwnerInfo(usersMap.get(remindVo.getOwner()));
} }



BeanUtils.copyProperties(recordPage, investPage); BeanUtils.copyProperties(recordPage, investPage);
investPage.setRecords(resultList); investPage.setRecords(resultList);
investPage.setTotal(recordPage.getTotal());


return investPage; return investPage;
} }


@Override
public InvestPageResult<InvestOperateRecordVo> queryPageOperateRecord(InvestOperateRecordQuery params) {
InvestHelper.notNull(params, params.getReocrdType(), params.getTid());
LambdaQueryWrapper<InvestOperateRecordEntity> recordQueryWrapper = new LambdaQueryWrapper<>();
InvestDemandEntity demandEntity = null;
if (Objects.equals(params.getReocrdType(), EnumFollowType.DEMAND)) {
InvestCustomerEntity customerEntity = customerService.getByIdNotNull(params.getTid());
demandEntity = demandService.getOne(new LambdaQueryWrapper<InvestDemandEntity>().eq(InvestDemandEntity::getCustomerId, customerEntity.getId()));
buildQueryWrapper(recordQueryWrapper, InvestOperateRecordEntity.TLB_CUSTOMER, customerEntity.getId());
} else if (Objects.equals(params.getReocrdType(), EnumFollowType.TASK)) {
buildQueryWrapper(recordQueryWrapper, InvestOperateRecordEntity.TLB_TASK, params.getTid());
}

List<InvestOperateRecordEntity> demandRecord = null;
if (Objects.nonNull(demandEntity)) {
LambdaQueryWrapper<InvestOperateRecordEntity> demandQueryWrapper = new LambdaQueryWrapper<>();
buildQueryWrapper(demandQueryWrapper, InvestOperateRecordEntity.TLB_DEMAND, demandEntity.getId());
demandRecord = operateRecordService.list(demandQueryWrapper);
}

ImmutableListMultimap<Long, InvestOperateRecordEntity> demandRecordMap = getMultiMap(demandRecord);

InvestPageResult<InvestOperateRecordEntity> recordPage = operateRecordService.queryPage(buildPageQuery(params, null), recordQueryWrapper);
InvestPageResult<InvestOperateRecordVo> investPage = new InvestPageResult<>();
if (CollectionUtils.isNotEmpty(recordPage.getRecords())) {
return investPage;
}

Collection<InvestOperateRecordVo> resultList = new ArrayList<>();
Collection<InvestOperateRecordEntity> primaryRecord = recordPage.getRecords();
for (InvestOperateRecordEntity recordEntity : primaryRecord) {
InvestOperateRecordVo itemVo = new InvestOperateRecordVo();
BeanUtils.copyProperties(recordEntity, itemVo);
List<TableTriple> record = JSONArray.parseArray(recordEntity.getContent(), TableTriple.class);
//List<InvestOperateRecordEntity> innerRecord = demandRecordMap.get(recordEntity.get) ;
itemVo.setRecord(record);
resultList.add(itemVo) ;
}

BeanUtils.copyProperties(recordPage, investPage);
investPage.setRecords(resultList);
return investPage;
}

private void buildQueryWrapper(LambdaQueryWrapper<InvestOperateRecordEntity> wrapper, String tbl, Long tId) {
if (ObjectUtils.allNotNull(tbl, tId)) {
wrapper.eq(InvestOperateRecordEntity::getTbl, tbl);
wrapper.eq(InvestOperateRecordEntity::getTid, tId);
}
}

private List<MallUserInfo> getMallUserInfos(Map<Long, MallUserInfo> usersMap, InvestFollowRecordEntity item) { private List<MallUserInfo> getMallUserInfos(Map<Long, MallUserInfo> usersMap, InvestFollowRecordEntity item) {
List<MallUserInfo> ownerInfo = null; List<MallUserInfo> ownerInfo = null;
Map contentMap = JSON.parseObject(item.getContent(), Map.class); Map contentMap = JSON.parseObject(item.getContent(), Map.class);
@@ -318,6 +372,12 @@ public class InvestBizServiceImpl implements InvestBizService {
return remindVo; return remindVo;
} }


@Override
public InvestOperateRecordVo findOperateById(InvestOperateRecordQuery params) {

return null;
}

@Override @Override
public InvestFollowRecordVo findFollowRecordById(Long id) { public InvestFollowRecordVo findFollowRecordById(Long id) {
InvestFollowRecordEntity followRecordEntity = followRecordService.getByIdNotNull(id); InvestFollowRecordEntity followRecordEntity = followRecordService.getByIdNotNull(id);
@@ -430,6 +490,19 @@ public class InvestBizServiceImpl implements InvestBizService {
return function.apply(params); return function.apply(params);
} }


private <T, R> ImmutableListMultimap<R, T> getMultiMap(Collection<T> dataList) {
return Multimaps.index(dataList, new com.google.common.base.Function<T, R>() {
@Nullable
@Override
public R apply(@Nullable T input) {
if (input instanceof InvestBaseEntity) {
return (R) ((InvestBaseEntity) input).getId();
}
return null;
}
});
}

private <T, R> Map<R, T> getMap(Collection<T> dataList, Function<T, R> keyMapper) { private <T, R> Map<R, T> getMap(Collection<T> dataList, Function<T, R> keyMapper) {
return dataList.parallelStream().collect(Collectors.toMap(keyMapper, entity -> entity)); return dataList.parallelStream().collect(Collectors.toMap(keyMapper, entity -> entity));
} }


Loading…
Cancel
Save