Просмотр исходного кода

[招商]adjust

release_toaliyun_real
Burce 6 лет назад
Родитель
Сommit
95fb7b2bd6
26 измененных файлов: 394 добавлений и 314 удалений
  1. +6
    -0
      mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java
  2. +33
    -16
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestDemandController.java
  3. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestFollowRecordController.java
  4. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestOperateRecordController.java
  5. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestRemindController.java
  6. +24
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestTaskController.java
  7. +3
    -1
      mallinkAdmin/src/main/java/com/iformall/log/SystemLogAspect.java
  8. +46
    -20
      mallinkAdmin/src/test/java/com/iformall/service/test/InvestTests.java
  9. +9
    -1
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  10. +9
    -178
      mallinkService/src/main/java/com/iformall/domain/po/BaseInvestEntity.java
  11. +2
    -7
      mallinkService/src/main/java/com/iformall/domain/po/InvestCustomerEntity.java
  12. +2
    -6
      mallinkService/src/main/java/com/iformall/domain/po/InvestDemandEntity.java
  13. +0
    -1
      mallinkService/src/main/java/com/iformall/domain/po/InvestTaskEntity.java
  14. +2
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumInvestType.java
  15. +5
    -0
      mallinkService/src/main/java/com/iformall/service/WxBrandService.java
  16. +6
    -0
      mallinkService/src/main/java/com/iformall/service/WxBusinessService.java
  17. +4
    -1
      mallinkService/src/main/java/com/iformall/service/WxShopService.java
  18. +7
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java
  19. +7
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java
  20. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java
  21. +9
    -3
      mallinkService/src/main/java/com/iformall/service/invest/InvestDemandService.java
  22. +3
    -3
      mallinkService/src/main/java/com/iformall/service/invest/InvestTaskService.java
  23. +45
    -13
      mallinkService/src/main/java/com/iformall/service/invest/impl/InvestCustomerServiceImpl.java
  24. +121
    -5
      mallinkService/src/main/java/com/iformall/service/invest/impl/InvestDemandServiceImpl.java
  25. +0
    -1
      mallinkService/src/main/java/com/iformall/service/invest/impl/InvestRemindServiceImpl.java
  26. +43
    -49
      mallinkService/src/main/java/com/iformall/service/invest/impl/InvestTaskServiceImpl.java

+ 6
- 0
mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java Просмотреть файл

@@ -24,4 +24,10 @@ public class MyBatisConfiguration {
return multiTenancy; return multiTenancy;
} }


@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor page = new PaginationInterceptor();
page.setDialectType("mysql");
return page;
}
} }

+ 33
- 16
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestDemandController.java Просмотреть файл

@@ -1,9 +1,15 @@
package com.iformall.controller.invest; package com.iformall.controller.invest;


import java.util.Arrays; import java.util.Arrays;
import java.util.List;

import com.iformall.annotation.SystemServiceLog;
import com.iformall.common.ErrorCode;
import com.iformall.common.InvestResultData;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.InvestDemandEntity; import com.iformall.domain.po.InvestDemandEntity;
import com.iformall.domain.vo.invest.InvestDemandVo;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.exception.MallinkException;
import com.iformall.service.invest.InvestDemandService; import com.iformall.service.invest.InvestDemandService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -31,31 +37,41 @@ public class InvestDemandController {
/** /**
* 分页列表 * 分页列表
*/ */
@ApiOperation("分页列表接口")
@PostMapping("/list")
public ResultData list(@RequestBody InvestDemandEntity params){
List page = investDemandService.queryPage(params);

return new ResultData(page);
@SystemServiceLog
@ApiOperation(value = "分页列表接口")
@GetMapping("/list")
public InvestResultData<InvestPage<InvestDemandVo>> list(@ModelAttribute InvestDemandEntity params) {
try {
InvestPage<InvestDemandVo> page = investDemandService.queryPage(params);
return new InvestResultData(page);
} catch (MallinkException e) {
log.error("list error", e);
return new InvestResultData(e.getErrorCode(), e.getMessage());
} catch (Exception e) {
log.error("list error", e);
return new InvestResultData(ErrorCode.SYS_BEAN_EMPTY_PROPERTY_ERROR);
}
} }




/** /**
* 信息 * 信息
*/ */
@SystemServiceLog
@GetMapping("/info/{id}") @GetMapping("/info/{id}")
public ResultData info(@PathVariable("id") Long id){
InvestDemandEntity investDemand = investDemandService.getById(id);
public InvestResultData<InvestDemandVo> info(@PathVariable("id") Long id){
InvestDemandVo investDemand = investDemandService.findById(id);


return new ResultData(investDemand);
return new InvestResultData(investDemand);
} }


/** /**
* 保存 * 保存
*/ */
@SystemServiceLog
@PostMapping("/save") @PostMapping("/save")
public ResultData save(@RequestBody InvestDemandEntity investDemand){
investDemandService.save(investDemand);
public ResultData save(InvestDemandVo investDemand) {
investDemandService.saveCustomerAndDemand(investDemand);


return new ResultData(); return new ResultData();
} }
@@ -63,9 +79,10 @@ public class InvestDemandController {
/** /**
* 修改 * 修改
*/ */
@SystemServiceLog
@PostMapping("/update") @PostMapping("/update")
public ResultData update(@RequestBody InvestDemandEntity investDemand){
investDemandService.updateById(investDemand);
public ResultData update(InvestDemandVo investDemand) {
investDemandService.updateCustomerAndDemand(investDemand);


return new ResultData(); return new ResultData();
} }
@@ -73,8 +90,8 @@ public class InvestDemandController {
/** /**
* 删除 * 删除
*/ */
@GetMapping("/delete")
public ResultData delete(@RequestBody Long[] ids){
//@GetMapping("/delete")
public ResultData delete(Long[] ids) {
investDemandService.removeByIds(Arrays.asList(ids)); investDemandService.removeByIds(Arrays.asList(ids));


return new ResultData(); return new ResultData();


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestFollowRecordController.java Просмотреть файл

@@ -32,7 +32,7 @@ public class InvestFollowRecordController {
* 分页列表 * 分页列表
*/ */
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@PostMapping("/list")
@GetMapping("/list")
public ResultData list(@RequestBody InvestFollowRecordEntity params){ public ResultData list(@RequestBody InvestFollowRecordEntity params){
List page = investFollowRecordService.queryPage(params); List page = investFollowRecordService.queryPage(params);




+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestOperateRecordController.java Просмотреть файл

@@ -33,7 +33,7 @@ public class InvestOperateRecordController {
* 分页列表 * 分页列表
*/ */
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@PostMapping("/list")
@GetMapping("/list")
public ResultData list(@RequestBody InvestOperateRecordEntity params){ public ResultData list(@RequestBody InvestOperateRecordEntity params){
List page = investOperateRecordService.queryPage(params); List page = investOperateRecordService.queryPage(params);




+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestRemindController.java Просмотреть файл

@@ -34,7 +34,7 @@ public class InvestRemindController {
* 分页列表 * 分页列表
*/ */
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@PostMapping("/list")
@GetMapping("/list")
public ResultData list(@RequestBody InvestRemindEntity params){ public ResultData list(@RequestBody InvestRemindEntity params){
List page = investRemindService.queryPage(params); List page = investRemindService.queryPage(params);




+ 24
- 6
mallinkAdmin/src/main/java/com/iformall/controller/invest/InvestTaskController.java Просмотреть файл

@@ -1,10 +1,15 @@
package com.iformall.controller.invest; package com.iformall.controller.invest;


import java.util.Arrays; import java.util.Arrays;
import java.util.List;


import com.iformall.annotation.SystemServiceLog;
import com.iformall.common.ErrorCode;
import com.iformall.common.InvestResultData;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.InvestTaskEntity; import com.iformall.domain.po.InvestTaskEntity;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.domain.vo.invest.InvestTaskVo;
import com.iformall.exception.MallinkException;
import com.iformall.service.invest.InvestTaskService; import com.iformall.service.invest.InvestTaskService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -32,17 +37,27 @@ public class InvestTaskController {
/** /**
* 分页列表 * 分页列表
*/ */
@SystemServiceLog
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@PostMapping("/list")
public ResultData list(InvestTaskEntity params){
List page = investTaskService.queryPage(params);
return new ResultData(page);
@GetMapping("/list")
public InvestResultData<InvestPage<InvestTaskVo>> list(@ModelAttribute InvestTaskEntity params){
try {
InvestPage<InvestTaskVo> page = investTaskService.queryPage(params);
return new InvestResultData(page);
} catch (MallinkException e) {
log.error("list error", e);
return new InvestResultData(e.getErrorCode(), e.getMessage());
} catch (Exception e) {
log.error("list error", e);
return new InvestResultData(ErrorCode.SYS_BEAN_EMPTY_PROPERTY_ERROR);
}
} }




/** /**
* 信息 * 信息
*/ */
@SystemServiceLog
@GetMapping("/info/{id}") @GetMapping("/info/{id}")
public ResultData info(@PathVariable("id") Long id){ public ResultData info(@PathVariable("id") Long id){
InvestTaskEntity investTask = investTaskService.getById(id); InvestTaskEntity investTask = investTaskService.getById(id);
@@ -53,6 +68,7 @@ public class InvestTaskController {
/** /**
* 保存 * 保存
*/ */
@SystemServiceLog
@PostMapping("/save") @PostMapping("/save")
public ResultData save(@RequestBody InvestTaskEntity investTask){ public ResultData save(@RequestBody InvestTaskEntity investTask){
investTaskService.save(investTask); investTaskService.save(investTask);
@@ -63,6 +79,7 @@ public class InvestTaskController {
/** /**
* 修改 * 修改
*/ */
@SystemServiceLog
@PostMapping("/update") @PostMapping("/update")
public ResultData update(@RequestBody InvestTaskEntity investTask){ public ResultData update(@RequestBody InvestTaskEntity investTask){
investTaskService.updateById(investTask); investTaskService.updateById(investTask);
@@ -73,7 +90,8 @@ public class InvestTaskController {
/** /**
* 删除 * 删除
*/ */
@GetMapping("/delete")
@SystemServiceLog
@PostMapping("/delete")
public ResultData delete(@RequestBody Long[] ids){ public ResultData delete(@RequestBody Long[] ids){
investTaskService.removeByIds(Arrays.asList(ids)); investTaskService.removeByIds(Arrays.asList(ids));




+ 3
- 1
mallinkAdmin/src/main/java/com/iformall/log/SystemLogAspect.java Просмотреть файл

@@ -25,6 +25,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Date; import java.util.Date;


@Aspect @Aspect
@@ -142,7 +143,8 @@ public class SystemLogAspect {
} }
} }
} }
return description;
//TODO 调试使用
return String.format("%s%s",description, Arrays.asList(arguments));
} }


/** /**


+ 46
- 20
mallinkAdmin/src/test/java/com/iformall/service/test/InvestTests.java Просмотреть файл

@@ -1,11 +1,13 @@
package com.iformall.service.test; package com.iformall.service.test;


import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.enums.*; import com.iformall.enums.*;
import com.iformall.mapper.WxBrandMapper; import com.iformall.mapper.WxBrandMapper;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
@@ -124,7 +126,7 @@ public class InvestTests {
for (String name : names) { for (String name : names) {
InvestCustomerEntity customerEntity = new InvestCustomerEntity(); InvestCustomerEntity customerEntity = new InvestCustomerEntity();
customerEntity.setBrandId(idCounter.longValue()); customerEntity.setBrandId(idCounter.longValue());
customerEntity.setBusiness(businessCounter.intValue());
customerEntity.setBusinessId(businessCounter.intValue());
customerEntity.setName(name); customerEntity.setName(name);
customerEntity.setTenantId(tenantId); customerEntity.setTenantId(tenantId);
customerEntity.setPhone("15811234898"); customerEntity.setPhone("15811234898");
@@ -138,26 +140,37 @@ public class InvestTests {
} }


@Test @Test
public void createTask() {
public void createTaskBatch() {
List<MallUserInfo> mallUsers = mallUsers(); List<MallUserInfo> mallUsers = mallUsers();
AtomicLong idCounter = new AtomicLong(10000); AtomicLong idCounter = new AtomicLong(10000);
AtomicInteger businessCounter = new AtomicInteger(1); AtomicInteger businessCounter = new AtomicInteger(1);
for (MallUserInfo userInfo : mallUsers) { for (MallUserInfo userInfo : mallUsers) {
InvestTaskEntity taskEntity = new InvestTaskEntity();
taskEntity.setTargetId(idCounter.longValue());
taskEntity.setOwner(JSON.toJSONString(Arrays.asList(userInfo.getId())));
taskEntity.setStatus(EnumTaskStatus.NEGOTIATING);
taskEntity.setTenantId(userInfo.getTenantId());
Map<String, Object> content = Maps.newHashMap();
content.put("business", businessCounter.intValue());
content.put("lastDate", DateUtils.formatDateTime(new Date()));
taskEntity.setContent(JSON.toJSONString(content));
taskService.save(taskEntity);
createTask(idCounter.longValue(), JSON.toJSONString(Arrays.asList(userInfo.getId())), businessCounter.intValue(), DateUtils.formatDateTime(new Date()));
idCounter.incrementAndGet(); idCounter.incrementAndGet();
businessCounter.incrementAndGet(); businessCounter.incrementAndGet();
} }
} }


private void createTask(Long targetId, String ownerJson, int businessId, String lastDate) {
InvestTaskEntity taskEntity = new InvestTaskEntity();
taskEntity.setTargetId(targetId);
taskEntity.setOwner(ownerJson);
JSONArray userIds = JSONArray.parseArray(ownerJson);
EnumTaskStatus taskStatus;
if (userIds.size() == 0) {
taskStatus = EnumTaskStatus.CREATED;
} else {
taskStatus = EnumTaskStatus.NEGOTIATING;
}
taskEntity.setStatus(taskStatus);
taskEntity.setTenantId(tenantId);
Map<String, Object> content = Maps.newHashMap();
content.put("business", businessId);
content.put("lastDate", lastDate);
taskEntity.setContent(JSON.toJSONString(content));
taskService.save(taskEntity);
}

@Test @Test
public void createDemand() { public void createDemand() {
List<InvestCustomerEntity> customers = customerService.list(); List<InvestCustomerEntity> customers = customerService.list();
@@ -168,10 +181,10 @@ public class InvestTests {
InvestDemandEntity demandEntity = new InvestDemandEntity(); InvestDemandEntity demandEntity = new InvestDemandEntity();
demandEntity.setCustomerId(customers.get(rand.nextInt(customers.size())).getId()); demandEntity.setCustomerId(customers.get(rand.nextInt(customers.size())).getId());
demandEntity.setTargetId(idCounter.longValue()); demandEntity.setTargetId(idCounter.longValue());
demandEntity.setTargetType(EnumInvestType.SHOP);
demandEntity.setOwner(userInfo.getId()); demandEntity.setOwner(userInfo.getId());
demandEntity.setTenantId(userInfo.getTenantId()); demandEntity.setTenantId(userInfo.getTenantId());
Map<String, Object> intent = Maps.newHashMap(); Map<String, Object> intent = Maps.newHashMap();
intent.put("shop", idCounter.longValue()); //意向商铺
intent.put("rent_area", 100); //意向租凭面积(平米) intent.put("rent_area", 100); //意向租凭面积(平米)
intent.put("opening_time", DateUtils.formatDateTime(new Date())); //预计开业时间 intent.put("opening_time", DateUtils.formatDateTime(new Date())); //预计开业时间
demandEntity.setIntent(JSON.toJSONString(intent)); demandEntity.setIntent(JSON.toJSONString(intent));
@@ -239,13 +252,7 @@ public class InvestTests {


@Test @Test
public void query() throws JsonProcessingException { public void query() throws JsonProcessingException {
MappingJackson2HttpMessageConverter converter = null;
for (HttpMessageConverter<?> httpMessageConverter : httpMessageConverters) {
if (httpMessageConverter instanceof MappingJackson2HttpMessageConverter)
converter = (MappingJackson2HttpMessageConverter) httpMessageConverter;
}

ObjectMapper mapper = converter.getObjectMapper();
ObjectMapper mapper = objectMapper();


List operates = operateRecordService.queryPage(null); List operates = operateRecordService.queryPage(null);
List follows = followRecordService.queryPage(null); List follows = followRecordService.queryPage(null);
@@ -261,4 +268,23 @@ public class InvestTests {
log.info("demands: {}", mapper.writeValueAsString(demands)); log.info("demands: {}", mapper.writeValueAsString(demands));
} }


@Bean
public ObjectMapper objectMapper() {
MappingJackson2HttpMessageConverter converter = null;
for (HttpMessageConverter<?> httpMessageConverter : httpMessageConverters) {
if (httpMessageConverter instanceof MappingJackson2HttpMessageConverter)
converter = (MappingJackson2HttpMessageConverter) httpMessageConverter;
}

return converter.getObjectMapper();
}

@Test
public void pager() throws Exception {
InvestDemandEntity demandQuery = new InvestDemandEntity();
demandQuery.setPageIndex(1);
demandQuery.setPageSize(10);
InvestPage page = demandService.queryPage(demandQuery);
log.debug("page : {}", objectMapper().writeValueAsString(page));
}
} }

+ 9
- 1
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -516,7 +516,15 @@ public enum ErrorCode{


// 品牌 51000 begin // 品牌 51000 begin
BRAND_NOT_FOUND(51000, "品牌不存在"), BRAND_NOT_FOUND(51000, "品牌不存在"),
// 品牌 52000 end
// 品牌 51999 end

// 业态 52000 begin
BUSINESS_NOT_FOUND(52000, "业态不存在"),
// 业态 52999 end

// 招商管理 53000 begin
CUSTOMER_NOT_FOUND(53000, "客户信息不存在"),
// 招商管理 53999 end


; ;




+ 9
- 178
mallinkService/src/main/java/com/iformall/domain/po/BaseInvestEntity.java Просмотреть файл

@@ -35,32 +35,33 @@ public class BaseInvestEntity implements Serializable {
* 租户ID * 租户ID
*/ */
@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String tenantId; private String tenantId;


/** /**
* 创建时间 * 创建时间
*/ */
@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate", example = "2018-10-01 12:18:48")
@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate", example = "2018-10-01 12:18:48",readOnly = true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private Date createDate; private Date createDate;
/** /**
* 更新时间 * 更新时间
*/ */
@io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate", example = "2018-10-01 12:18:48")
@io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate", example = "2018-10-01 12:18:48",readOnly = true)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateDate; private Date updateDate;


@io.swagger.annotations.ApiModelProperty(value = "倒序字段集合", name = "descs")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@TableField(exist = false) @TableField(exist = false)
private String sortColumn;
private List<String> descs;


@io.swagger.annotations.ApiModelProperty(value = "升序字段集合", name = "ascs")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@TableField(exist = false) @TableField(exist = false)
private String sortOrder;

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@TableField(exist = false)
private String sortColumns;
private List<String> ascs;


@io.swagger.annotations.ApiModelProperty(value = "当前页", name = "pageIndex",example = "1") @io.swagger.annotations.ApiModelProperty(value = "当前页", name = "pageIndex",example = "1")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@@ -72,174 +73,4 @@ public class BaseInvestEntity implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Integer pageSize ; private Integer pageSize ;


public String getSortColumns() {
if(StringUtils.isBlank(sortColumn)){
return sortColumns;
}

try {
//扫描子类SortColumn注解的属性,替换sortColumn
if(StringUtils.isNotBlank(sortColumn)) {
List<Field> fieldList = new ArrayList<>() ;
Class tempClass = this.getClass();
while (tempClass != null) {//当父类为null的时候说明到达了最上层的父类(Object类).
fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields()));
tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己
}

//扫描注解,优先解析注解
for (Field field : fieldList) {
SortColumn sortColumnField = field.getAnnotation(SortColumn.class);
if (sortColumnField != null && field.getName().equals(sortColumn)) {
return sortColumnField.column() + " "+sortOrder;
}
}

//判断是否合法
boolean find = false;
for (Field field : fieldList){
if (field.getName().equals(sortColumn)) {
find = true;
break;
}
}
if(!find) {
return null;
}

//默认驼峰解析
return underscoreName(sortColumn) +" "+sortOrder;
}
} catch (Exception e) {
log.error("BaseEntity.getSortColumn解析失败",e);
e.printStackTrace();
}
return sortColumns;
}

/**
* 转换为下划线
*
* @param camelCaseName
* @return
*/
private String underscoreName(String camelCaseName) {
StringBuilder result = new StringBuilder();
if (camelCaseName != null && camelCaseName.length() > 0) {
result.append(camelCaseName.substring(0, 1).toLowerCase());
for (int i = 1; i < camelCaseName.length(); i++) {
char ch = camelCaseName.charAt(i);
if (Character.isUpperCase(ch)) {
result.append("_");
result.append(Character.toLowerCase(ch));
} else {
result.append(ch);
}
}
}
return result.toString();
}

public void setSortColumns(SortField... fields)
{
if (fields == null || fields.length == 0) {
return;
}
for (int k = 0; k < fields.length; k++) {
if (fields[k] == null) {
return;
}
}
StringBuilder sb = new StringBuilder(fields[0].toString());
for (int k = 1; k < fields.length; k++) {
sb.append(",");
sb.append(fields[k].toString());
}
this.sortColumns=sb.toString();
}

/**
* json数组转Long集合
*
* @return
*/
public List<Long> parseJsonArray(String json) {
if (Objects.nonNull(json)) {
List<Long> ids = JSONArray.parseArray(json, Long.class);
return ids;
}
return null;
}

public enum SortField {
Id_ASC("`id` ASC"),
Id_DESC("`id` DESC"),

CreateDate_ASC("`create_date` ASC"),
CreateDate_DESC("`create_date` DESC"),

UpdateDate_ASC("`update_date` ASC"),
UpdateDate_DESC("`update_date` DESC"),

Createtime_ASC("`createtime` ASC"),
Createtime_DESC("`createtime` DESC"),

CreateTime_ASC("`create_time` ASC"),
CreateTime_DESC("`create_time` DESC"),

ReportTime_ASC("`reportTime` ASC"),
ReportTime_DESC("`reportTime` DESC"),

ActiveTime_ASC("`active_time` ASC"),
ActiveTime_DESC("`active_time` DESC"),

TopTime_ASC("`top_time` ASC"),
TopTime_DESC("`top_time` DESC"),

MerchantId_ASC("`merchant_id` ASC"),
MerchantId_DESC("`merchant_id` DESC"),

LimitDate_ASC("`limit_date` ASC"),
LimitDate_DESC("`limit_date` DESC"),

SortNum_ASC("`sort_num` ASC"),
SortNum_DESC("`sort_num` DESC"),

Sort_ASC("`sort` ASC"),
Sort_DESC("`sort` DESC"),

Points_ASC("`points` ASC"),
Points_DESC("`points` DESC"),

Period_ASC("`period` ASC"),
Period_DESC("`period` DESC"),

UsedPower_ASC("`usedPower` ASC"),
UsedPower_DESC("`usedPower` DESC"),

Date_ASC("`date` ASC"),
Date_DESC("`date` DESC"),

TradeAmt_ASC("`trade_amt` ASC"),
TradeAmt_DESC("`trade_amt` DESC"),

ReportDate_ASC("`report_date` ASC"),
ReportDate_DESC("`report_date` DESC"),
;
private String value;

SortField(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return this.getValue();
}
}


} }

+ 2
- 7
mallinkService/src/main/java/com/iformall/domain/po/InvestCustomerEntity.java Просмотреть файл

@@ -1,17 +1,12 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;


import java.io.Serializable;
import java.util.Date;


import com.iformall.enums.EnumCustomerRatingType; import com.iformall.enums.EnumCustomerRatingType;
import com.iformall.enums.EnumCustomerType; import com.iformall.enums.EnumCustomerType;
import com.iformall.enums.EnumInvestChannel; import com.iformall.enums.EnumInvestChannel;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;


/** /**
* 客户列表 * 客户列表
@@ -37,8 +32,8 @@ public class InvestCustomerEntity extends BaseInvestEntity {
/** /**
* 经营业态 * 经营业态
*/ */
@io.swagger.annotations.ApiModelProperty(value = "经营业态", name = "business")
private Integer business;
@io.swagger.annotations.ApiModelProperty(value = "经营业态", name = "businessId")
private Integer businessId;
/** /**
* 品牌ID * 品牌ID
*/ */


+ 2
- 6
mallinkService/src/main/java/com/iformall/domain/po/InvestDemandEntity.java Просмотреть файл

@@ -1,16 +1,11 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;


import java.io.Serializable;
import java.util.Date;


import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iformall.enums.EnumInvestType; import com.iformall.enums.EnumInvestType;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;


/** /**
* 客户需求 * 客户需求
@@ -36,7 +31,8 @@ public class InvestDemandEntity extends BaseInvestEntity {
/** /**
* 客户意向 * 客户意向
*/ */
@io.swagger.annotations.ApiModelProperty(value = "客户意向", name = "intent")
@io.swagger.annotations.ApiModelProperty(value = "客户意向", name = "intent",
example = "{\"rent_area\":100,\"opening_time\": 2019-09-03}")
private String intent; private String intent;
/** /**
* 目标类型:0-商铺招租;1-其他 * 目标类型:0-商铺招租;1-其他


+ 0
- 1
mallinkService/src/main/java/com/iformall/domain/po/InvestTaskEntity.java Просмотреть файл

@@ -32,7 +32,6 @@ public class InvestTaskEntity extends BaseInvestEntity {
* 目标类型:0-商铺招租;1-其他 * 目标类型:0-商铺招租;1-其他
*/ */
@io.swagger.annotations.ApiModelProperty(value = "目标类型:0-商铺招租;1-其他", name = "targetType") @io.swagger.annotations.ApiModelProperty(value = "目标类型:0-商铺招租;1-其他", name = "targetType")
@JsonIgnore
private EnumInvestType targetType; private EnumInvestType targetType;
/** /**
* 目标ID * 目标ID


+ 2
- 0
mallinkService/src/main/java/com/iformall/enums/EnumInvestType.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.enums; package com.iformall.enums;


import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;


/** /**
* 招商类型:0-商铺招租;1-其他 * 招商类型:0-商铺招租;1-其他
@@ -27,6 +28,7 @@ public enum EnumInvestType {
this.info = info; this.info = info;
} }


@JsonValue
public Integer getCode() { public Integer getCode() {
return code; return code;
} }


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/WxBrandService.java Просмотреть файл

@@ -3,7 +3,10 @@ package com.iformall.service;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBrand; import com.iformall.domain.po.WxBrand;
import com.iformall.domain.po.WxShop;


import java.io.Serializable;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -30,6 +33,8 @@ public interface WxBrandService {
*/ */
WxBrand getById(Long id); WxBrand getById(Long id);


List<WxBrand> getByIds(Collection<? extends Serializable> ids);

/** /**
* 根据Id删除实体 * 根据Id删除实体
* *


+ 6
- 0
mallinkService/src/main/java/com/iformall/service/WxBusinessService.java Просмотреть файл

@@ -2,7 +2,11 @@ package com.iformall.service;


import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxBrand;
import com.iformall.domain.po.WxBusiness; import com.iformall.domain.po.WxBusiness;

import java.io.Serializable;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -41,6 +45,8 @@ public interface WxBusinessService {
*/ */
WxBusiness getById(Integer id); WxBusiness getById(Integer id);


List<WxBusiness> getByIds(Collection<? extends Serializable> ids);





List<Map<String,Object>> businessDataList(WxBusiness wxBusiness,Long userid); List<Map<String,Object>> businessDataList(WxBusiness wxBusiness,Long userid);


+ 4
- 1
mallinkService/src/main/java/com/iformall/service/WxShopService.java Просмотреть файл

@@ -1,5 +1,6 @@
package com.iformall.service; package com.iformall.service;


import java.io.Serializable;
import java.util.*; import java.util.*;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
@@ -30,7 +31,9 @@ public interface WxShopService {
* @return * @return
*/ */
WxShop getById(Long id); WxShop getById(Long id);

List<WxShop> getByIds(Collection<? extends Serializable> ids);

/** /**
* 保存或更新实体 * 保存或更新实体
* *


+ 7
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java Просмотреть файл

@@ -18,6 +18,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.io.Serializable;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -42,6 +44,11 @@ public class WxBrandServiceImpl implements WxBrandService {
return wxBrandMapper.selectById(id); return wxBrandMapper.selectById(id);
} }


@Override
public List<WxBrand> getByIds(Collection<? extends Serializable> ids) {
return wxBrandMapper.selectBatchIds(ids);
}

@Override @Override
public void deleteById(Long id) { public void deleteById(Long id) {
wxBrandMapper.deleteById(id); wxBrandMapper.deleteById(id);


+ 7
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java Просмотреть файл

@@ -19,9 +19,11 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -64,6 +66,11 @@ public class WxBusinessServiceImpl implements WxBusinessService {
return wxBusinessMapper.selectById(id); return wxBusinessMapper.selectById(id);
} }


@Override
public List<WxBusiness> getByIds(Collection<? extends Serializable> ids) {
return wxBusinessMapper.selectBatchIds(ids);
}



@Override @Override
public List<Map<String, Object>> businessDataList(WxBusiness wxBusiness, Long userid) { public List<Map<String, Object>> businessDataList(WxBusiness wxBusiness, Long userid) {


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java Просмотреть файл

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.Serializable;
import java.util.*; import java.util.*;


@Service @Service
@@ -70,6 +71,10 @@ public class WxShopServiceImpl implements WxShopService {
return wxShopMapper.selectById(id); return wxShopMapper.selectById(id);
} }


public List<WxShop> getByIds(Collection<? extends Serializable> ids) {
return wxShopMapper.selectBatchIds(ids) ;
}

@Override @Override
public ResultData saveOrUpdate(WxShop record) { public ResultData saveOrUpdate(WxShop record) {
if (record.getId() == null) { if (record.getId() == null) {


+ 9
- 3
mallinkService/src/main/java/com/iformall/service/invest/InvestDemandService.java Просмотреть файл

@@ -2,8 +2,8 @@ package com.iformall.service.invest;


import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.InvestDemandEntity; import com.iformall.domain.po.InvestDemandEntity;
import java.util.List;
import com.iformall.domain.vo.invest.InvestDemandVo;
import com.iformall.domain.vo.invest.InvestPage;


/** /**
* 客户需求 * 客户需求
@@ -14,6 +14,12 @@ import java.util.List;
*/ */
public interface InvestDemandService extends IService<InvestDemandEntity> { public interface InvestDemandService extends IService<InvestDemandEntity> {


List queryPage(InvestDemandEntity params);
InvestPage<InvestDemandVo> queryPage(InvestDemandEntity params) throws Exception;

boolean saveCustomerAndDemand(InvestDemandVo customerDemandVo) ;

boolean updateCustomerAndDemand(InvestDemandVo customerDemandVo) ;

InvestDemandVo findById(Long id) ;
} }



+ 3
- 3
mallinkService/src/main/java/com/iformall/service/invest/InvestTaskService.java Просмотреть файл

@@ -2,8 +2,8 @@ package com.iformall.service.invest;


import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.InvestTaskEntity; import com.iformall.domain.po.InvestTaskEntity;
import java.util.List;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.domain.vo.invest.InvestTaskVo;


/** /**
* 招商任务 * 招商任务
@@ -14,6 +14,6 @@ import java.util.List;
*/ */
public interface InvestTaskService extends IService<InvestTaskEntity> { public interface InvestTaskService extends IService<InvestTaskEntity> {


List queryPage(InvestTaskEntity params);
InvestPage<InvestTaskVo> queryPage(InvestTaskEntity params);
} }



+ 45
- 13
mallinkService/src/main/java/com/iformall/service/invest/impl/InvestCustomerServiceImpl.java Просмотреть файл

@@ -34,33 +34,65 @@ public class InvestCustomerServiceImpl extends ServiceImpl<InvestCustomerDao, In
@TableLog @TableLog
@Override @Override
public boolean save(InvestCustomerEntity entity) { public boolean save(InvestCustomerEntity entity) {
WxBrand brand = brandService.getById(entity.getBrandId());
if (Objects.isNull(brand)) {
throw new MallinkException(ErrorCode.BRAND_NOT_FOUND);
}

if (Objects.isNull(entity.getType())) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),
ErrorCode.SYS_PARAMETER_NOT_NULL.getMessage("type"));
}
return super.save(entity);
checkBusiness(entity);
checkBrand(entity);
checkType(entity);
return super.save(entity);
} }


@TableLog @TableLog
@Override @Override
public boolean update(InvestCustomerEntity entity, Wrapper<InvestCustomerEntity> updateWrapper) { public boolean update(InvestCustomerEntity entity, Wrapper<InvestCustomerEntity> updateWrapper) {
return super.update(entity, updateWrapper);
checkBusiness(entity);
checkBrand(entity);
checkType(entity);
return super.update(entity, updateWrapper);
} }


@TableLog @TableLog
@Override @Override
public boolean saveOrUpdate(InvestCustomerEntity entity) { public boolean saveOrUpdate(InvestCustomerEntity entity) {
return super.saveOrUpdate(entity);
checkBusiness(entity);
checkBrand(entity);
checkType(entity);
return super.saveOrUpdate(entity);
} }


@TableLog @TableLog
@Override @Override
public boolean updateById(InvestCustomerEntity entity) { public boolean updateById(InvestCustomerEntity entity) {
return super.updateById(entity);
checkBusiness(entity);
checkBrand(entity);
checkType(entity);
return super.updateById(entity);
}

private void checkBusiness(InvestCustomerEntity entity) {
WxBusiness business = businessService.getById(entity.getBusinessId()) ;
if (Objects.isNull(business)) {
throw new MallinkException(ErrorCode.BUSINESS_NOT_FOUND);
}
} }

/**
* 校验客户类型
* @param entity
*/
private void checkType(InvestCustomerEntity entity) {
if (Objects.isNull(entity.getType())) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),
ErrorCode.SYS_PARAMETER_NOT_NULL.getMessage("type"));
}
}

/**
* 校验品牌
* @param entity
*/
private void checkBrand(InvestCustomerEntity entity) {
WxBrand brand = brandService.getById(entity.getBrandId());
if (Objects.isNull(brand)) {
throw new MallinkException(ErrorCode.BRAND_NOT_FOUND);
}
}
} }

+ 121
- 5
mallinkService/src/main/java/com/iformall/service/invest/impl/InvestDemandServiceImpl.java Просмотреть файл

@@ -1,47 +1,163 @@
package com.iformall.service.invest.impl; package com.iformall.service.invest.impl;


import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iformall.common.TableLog; import com.iformall.common.TableLog;
import com.iformall.domain.po.InvestDemandEntity;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.invest.InvestDemandVo;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.mapper.InvestDemandDao; import com.iformall.mapper.InvestDemandDao;
import com.iformall.service.MallUserInfoService;
import com.iformall.service.WxBrandService;
import com.iformall.service.WxShopService;
import com.iformall.service.invest.InvestCustomerService;
import com.iformall.service.invest.InvestDemandService; import com.iformall.service.invest.InvestDemandService;
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; import org.springframework.stereotype.Service;


import java.util.List;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;


import java.util.*;
import java.util.stream.Collectors;



@Service @Service
public class InvestDemandServiceImpl extends ServiceImpl<InvestDemandDao, InvestDemandEntity> implements InvestDemandService { public class InvestDemandServiceImpl extends ServiceImpl<InvestDemandDao, InvestDemandEntity> implements InvestDemandService {


@Autowired
private WxShopService shopService;
@Autowired
private MallUserInfoService userInfoService;
@Autowired
private InvestCustomerService customerService;
@Autowired
private WxBrandService brandService;

@Override
public InvestPage<InvestDemandVo> queryPage(InvestDemandEntity params) {
InvestHelper.checkAllNotNull(params);
Page page = InvestHelper.buildQueryPage(params);
InvestPage<InvestDemandVo> investPage = new InvestPage<>();
//1、客户需求
IPage<InvestDemandEntity> demandPage = this.page(page);
if (CollectionUtils.isEmpty(demandPage.getRecords())) {
return investPage;
}

List<InvestDemandEntity> demandList = demandPage.getRecords();
//2、客户信息
Collection<InvestCustomerEntity> customers = customerService.listByIds(demandList
.stream().map(InvestDemandEntity::getCustomerId).collect(Collectors.toList()));
Map<Long, InvestCustomerEntity> customersMap = customers.stream().collect(Collectors.toMap(InvestCustomerEntity::getId, customer -> customer));

//3、目标信息
Collection<WxShop> shops = shopService.getByIds(demandList.stream().map(InvestDemandEntity::getTargetId).collect(Collectors.toList()));
Map<Long, WxShop> shopsMap = shops.stream().collect(Collectors.toMap(WxShop::getId, shop -> shop));

//4 品牌
Collection<WxBrand> brands = brandService.getByIds(customers.stream().map(InvestCustomerEntity::getBrandId).collect(Collectors.toList()));
Map<Long, WxBrand> brandMap = brands.stream().collect(Collectors.toMap(WxBrand::getId, brand -> brand));

List<InvestDemandVo> resultList = new ArrayList<>();
for (InvestDemandEntity demandEntity : demandList) {
InvestCustomerEntity customer = customersMap.get(demandEntity.getCustomerId());
WxShop shop = shopsMap.get(demandEntity.getTargetId());
WxBrand brand = null;
if (Objects.nonNull(customer)) {
brand = brandMap.get(customer.getBrandId());
}
resultList.add(buildCustomerDemandVo(demandEntity, customer, brand, shop));
}

BeanUtils.copyProperties(demandPage, investPage);
investPage.setRecords(resultList);
investPage.setTotal(demandPage.getTotal());
return investPage;
}

@Override
public boolean saveCustomerAndDemand(InvestDemandVo customerDemandVo) {
savaOrUpdateCustomerDemand(customerDemandVo);
return true;
}

@Override
public boolean updateCustomerAndDemand(InvestDemandVo customerDemandVo) {
savaOrUpdateCustomerDemand(customerDemandVo);
return true;
}


private void savaOrUpdateCustomerDemand(InvestDemandVo customerDemandVo) {
InvestHelper.checkAllNotNull(customerDemandVo);
InvestHelper.checkAllNotNull(customerDemandVo.getBrand(), customerDemandVo.getCustomer());
InvestCustomerEntity customerEntity = new InvestCustomerEntity();
BeanUtils.copyProperties(customerDemandVo, customerEntity);
customerService.saveOrUpdate(customerEntity);
InvestDemandEntity demandEntity = new InvestDemandEntity();
BeanUtils.copyProperties(customerDemandVo, demandEntity);
this.saveOrUpdate(demandEntity);
}

@Override @Override
public List queryPage(InvestDemandEntity params) {
return this.list() ;
public InvestDemandVo findById(Long id) {
InvestHelper.checkAllNotNull(id);
InvestDemandEntity demandEntity = this.getById(id);
InvestHelper.checkAllNotNull(demandEntity);
InvestCustomerEntity customerEntity = customerService.getById(demandEntity.getCustomerId());
InvestHelper.checkAllNotNull(customerEntity);
WxBrand brand = brandService.getById(customerEntity.getBrandId());
WxShop shop = shopService.getById(demandEntity.getTargetId());
InvestDemandVo customerDemandVo = buildCustomerDemandVo(demandEntity, customerEntity, brand, shop);
return customerDemandVo;
} }


private InvestDemandVo buildCustomerDemandVo(InvestDemandEntity demandEntity, InvestCustomerEntity customer, WxBrand brand, WxShop shop) {
InvestDemandVo customerDemandVo = InvestDemandVo.builder()
.brand(brand)
.customer(customer)
.targetInfo(shop)
.build();
BeanUtils.copyProperties(demandEntity, customerDemandVo);
return customerDemandVo;
}


@TableLog @TableLog
@Override @Override
public boolean save(InvestDemandEntity entity) { public boolean save(InvestDemandEntity entity) {
checkBeforeSaveOrUpdate(entity);
return super.save(entity); return super.save(entity);
} }


@TableLog @TableLog
@Override @Override
public boolean update(InvestDemandEntity entity, Wrapper<InvestDemandEntity> updateWrapper) { public boolean update(InvestDemandEntity entity, Wrapper<InvestDemandEntity> updateWrapper) {
checkBeforeSaveOrUpdate(entity);
return super.update(entity, updateWrapper); return super.update(entity, updateWrapper);
} }


@TableLog @TableLog
@Override @Override
public boolean saveOrUpdate(InvestDemandEntity entity) { public boolean saveOrUpdate(InvestDemandEntity entity) {
checkBeforeSaveOrUpdate(entity);
return super.saveOrUpdate(entity); return super.saveOrUpdate(entity);
} }


@TableLog @TableLog
@Override @Override
public boolean updateById(InvestDemandEntity entity) { public boolean updateById(InvestDemandEntity entity) {
checkBeforeSaveOrUpdate(entity);
return super.updateById(entity); return super.updateById(entity);
} }

private void checkBeforeSaveOrUpdate(InvestDemandEntity entity) {
InvestHelper.checkCustomerExit(customerService, entity.getCustomerId());
InvestHelper.checkUserExit(userInfoService, entity.getOwner());
InvestHelper.checkShop(shopService, entity);
}

} }

+ 0
- 1
mallinkService/src/main/java/com/iformall/service/invest/impl/InvestRemindServiceImpl.java Просмотреть файл

@@ -8,7 +8,6 @@ import com.iformall.service.invest.InvestRemindService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.util.List; import java.util.List;
import java.util.Map;


import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;




+ 43
- 49
mallinkService/src/main/java/com/iformall/service/invest/impl/InvestTaskServiceImpl.java Просмотреть файл

@@ -1,24 +1,23 @@
package com.iformall.service.invest.impl; package com.iformall.service.invest.impl;


import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.iformall.common.ErrorCode;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iformall.common.TableLog; 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.enums.EnumInvestType;
import com.iformall.enums.EnumShopStatus;
import com.iformall.exception.MallinkException;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.invest.InvestPage;
import com.iformall.domain.vo.invest.InvestTaskVo;
import com.iformall.mapper.InvestTaskDao; import com.iformall.mapper.InvestTaskDao;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
import com.iformall.service.WxShopService; import com.iformall.service.WxShopService;
import com.iformall.service.invest.InvestHelper;
import com.iformall.service.invest.InvestTaskService; import com.iformall.service.invest.InvestTaskService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
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;


import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;


import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -33,17 +32,38 @@ public class InvestTaskServiceImpl extends ServiceImpl<InvestTaskDao, InvestTask
private MallUserInfoService userInfoService; private MallUserInfoService userInfoService;


@Override @Override
public List queryPage(InvestTaskEntity params) {
return this.list() ;
public InvestPage<InvestTaskVo> queryPage(InvestTaskEntity params) {
InvestHelper.checkAllNotNull(params);
Page page = InvestHelper.buildQueryPage(params);
InvestPage<InvestTaskVo> investPage = new InvestPage<>();
//1、任务信息
IPage<InvestTaskEntity> taskPage = this.page(page);
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));

List<InvestTaskVo> resultList = new ArrayList<>();
for (InvestTaskEntity demandEntity : taskList) {
WxShop shop = shopsMap.get(demandEntity.getTargetId());
resultList.add(InvestTaskVo.builder().targetInfo(shop).build());
}

BeanUtils.copyProperties(taskPage, investPage);
investPage.setRecords(resultList);
investPage.setTotal(taskPage.getTotal());
return investPage;
} }


@TableLog @TableLog
@Override @Override
public boolean save(InvestTaskEntity entity) { public boolean save(InvestTaskEntity entity) {
// 1 check shop 状态
checkShop(entity);
// 2 check user
checkUserExit(entity);
checkBeforeSaveOrUpdate(entity);


return super.save(entity); return super.save(entity);
} }
@@ -52,9 +72,7 @@ public class InvestTaskServiceImpl extends ServiceImpl<InvestTaskDao, InvestTask
@Override @Override
public boolean update(InvestTaskEntity entity, Wrapper<InvestTaskEntity> updateWrapper) { public boolean update(InvestTaskEntity entity, Wrapper<InvestTaskEntity> updateWrapper) {
// 1 check shop 状态 // 1 check shop 状态
checkShop(entity);
// 2 check user
checkUserExit(entity);
checkBeforeSaveOrUpdate(entity);
return super.update(entity, updateWrapper); return super.update(entity, updateWrapper);
} }


@@ -62,9 +80,7 @@ public class InvestTaskServiceImpl extends ServiceImpl<InvestTaskDao, InvestTask
@Override @Override
public boolean saveOrUpdate(InvestTaskEntity entity) { public boolean saveOrUpdate(InvestTaskEntity entity) {
// 1 check shop 状态 // 1 check shop 状态
checkShop(entity);
// 2 check user
checkUserExit(entity);
checkBeforeSaveOrUpdate(entity);
return super.saveOrUpdate(entity); return super.saveOrUpdate(entity);
} }


@@ -72,37 +88,15 @@ public class InvestTaskServiceImpl extends ServiceImpl<InvestTaskDao, InvestTask
@Override @Override
public boolean updateById(InvestTaskEntity entity) { public boolean updateById(InvestTaskEntity entity) {
// 1 check shop 状态 // 1 check shop 状态
checkShop(entity);
// 2 check user
checkUserExit(entity);
checkBeforeSaveOrUpdate(entity);
return super.updateById(entity); return super.updateById(entity);
} }


private void checkShop(InvestTaskEntity entity) {
if (EnumInvestType.SHOP.equals(entity.getTargetType())) {
WxShop shop = shopService.getById(entity.getTargetId());
if (Objects.isNull(shop)) {
throw new MallinkException(ErrorCode.SHOP_IS_NOT_FOUND);
}

if (Objects.equals(shop.getStatus(), EnumShopStatus.RENT.getCode())) {
throw new MallinkException(ErrorCode.SHOP_IS_RENT);
}
}
}


/**
* 校验用户是否存在
* @param entity
*/
private void checkUserExit(InvestTaskEntity entity) {
List<Long> userIds = entity.parseJsonArray(entity.getOwner());
if (CollectionUtils.isNotEmpty(userIds)) {
List<Long> usersFromDb = userInfoService.getByIds(userIds).stream().map(MallUserInfo::getId).collect(Collectors.toList());
List<Long> notExsitIds = userIds.stream().filter(uid -> !usersFromDb.contains(uid)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(notExsitIds)) {
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), notExsitIds + ErrorCode.USER_IS_EMPTY.getMessage());
}
}
private void checkBeforeSaveOrUpdate(InvestTaskEntity entity) {
// 1 check shop 状态
InvestHelper.checkShop(shopService, entity);
// 2 check user
InvestHelper.checkUserExit(userInfoService, entity.getOwner());
} }
} }

Загрузка…
Отмена
Сохранить