Commit 6e3d3f64 authored by kretee's avatar kretee

feat: miniapp维修工估价员接口

parent 0cf84405
......@@ -4,4 +4,6 @@ import com.onsiteservice.dao.common.Mapper;
import com.onsiteservice.entity.service.ServiceValuator;
public interface ServiceValuatorMapper extends Mapper<ServiceValuator> {
}
\ No newline at end of file
package com.onsiteservice.miniapp.controller.worker;
import com.onsiteservice.entity.service.ServiceValuator;
import com.onsiteservice.miniapp.service.worker.ServiceValuatorService;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.miniapp.controller.worker.vo.ServiceValuatorVO;
import com.onsiteservice.miniapp.service.worker.ServiceValuatorService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.NonNull;
import io.swagger.annotations.ApiParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
import static com.onsiteservice.core.result.ResultGenerator.success;
import static com.onsiteservice.core.result.ResultGenerator.fail;
/**
* <P>估价员模块</P>
......@@ -35,16 +32,16 @@ public class ServiceValuatorController {
private ServiceValuatorService serviceValuatorService;
@ApiOperation(value = "分页查询列表", notes = "作者: 潘维吉")
@PostMapping("/page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(serviceValuatorService.getPage(param), "获取分页列表");
@ApiOperation(value = "查询全部估价员")
@PostMapping("all")
public Result<List<ServiceValuatorVO>> all() {
return success(serviceValuatorService.all());
}
@ApiOperation(value = "根据id查询", notes = "作者: 潘维吉")
@GetMapping("/{id}")
public Result<ServiceValuator> getDetails(@PathVariable @Positive Long id) {
return success(serviceValuatorService.selectByPrimaryKey(id), "根据id获取详情");
@ApiOperation(value = "根据id查询")
@GetMapping("get/{name}")
public Result<List<ServiceValuatorVO>> getDetails(@ApiParam(name = "name", value = "估价员姓名") @PathVariable @Positive String name) {
return success(serviceValuatorService.selectByName(name));
}
......
package com.onsiteservice.miniapp.controller.worker;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.miniapp.controller.worker.vo.ServiceWorkerVO;
import com.onsiteservice.miniapp.service.worker.ServiceWorkerService;
import com.onsiteservice.core.result.Result;
......@@ -8,6 +9,7 @@ import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -15,6 +17,8 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
import static com.onsiteservice.core.result.ResultGenerator.success;
import static com.onsiteservice.core.result.ResultGenerator.fail;
......@@ -35,16 +39,16 @@ public class ServiceWorkerController {
private ServiceWorkerService serviceWorkerService;
@ApiOperation(value = "分页查询列表")
@PostMapping("page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(serviceWorkerService.getPage(param), "获取分页列表");
@ApiOperation(value = "查询全部维修工")
@PostMapping("all")
public Result<List<ServiceWorkerVO>> all() {
return success(serviceWorkerService.all());
}
@ApiOperation(value = "根据id查询")
@GetMapping("get/{id}")
public Result<ServiceWorker> getDetails(@PathVariable @Positive Long id) {
return success(serviceWorkerService.selectByPrimaryKey(id), "根据id获取详情");
public Result<List<ServiceWorkerVO>> getDetails(@ApiParam(name = "name", value = "维修工姓名") @PathVariable @Positive String name) {
return success(serviceWorkerService.selectByName(name));
}
......
package com.onsiteservice.miniapp.controller.worker.vo;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/12 10:06
*/
@Data
public class ServiceValuatorVO {
private List<Date> assignTime;
private Long id;
private String name;
private String phone;
}
package com.onsiteservice.miniapp.controller.worker.vo;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/12 10:06
*/
@Data
public class ServiceWorkerVO {
private List<Date> assignTime;
private Long id;
private String name;
private String phone;
private String kindName;
}
package com.onsiteservice.miniapp.mapper.service;
import com.onsiteservice.entity.service.ServiceValuator;
import java.util.List;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
......@@ -9,4 +13,7 @@ package com.onsiteservice.miniapp.mapper.service;
public interface ServiceValuatorBizMapper {
List<ServiceValuator> selectByNameLike(String name);
}
package com.onsiteservice.miniapp.mapper.service;
import com.onsiteservice.entity.service.ServiceWorker;
import java.util.List;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
......@@ -9,4 +13,7 @@ package com.onsiteservice.miniapp.mapper.service;
public interface ServiceWorkerBizMapper {
List<ServiceWorker> selectByNameLike(String name);
}
package com.onsiteservice.miniapp.service.worker;
import com.onsiteservice.entity.service.ServiceValuator;
import com.google.common.collect.Lists;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper;
import com.onsiteservice.dao.mapper.service.ServiceValuatorMapper;
import com.onsiteservice.entity.service.ServiceValuator;
import com.onsiteservice.entity.service.ServiceValuatorAssign;
import com.onsiteservice.miniapp.controller.worker.vo.ServiceValuatorVO;
import com.onsiteservice.miniapp.mapper.service.ServiceValuatorBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.util.AttrCopyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author 潘维吉
......@@ -19,30 +27,53 @@ import javax.annotation.Resource;
* @description ServiceValuatorService服务类
*/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ServiceValuatorService extends AbstractMapper<ServiceValuator> {
@Resource
private ServiceValuatorMapper serviceValuatorMapper;
private ServiceValuatorAssignMapper serviceValuatorAssignMapper;
@Resource
private ServiceValuatorBizMapper serviceValuatorBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
public List<ServiceValuatorVO> all() {
List<ServiceValuator> serviceValuatorList = this.selectAll();
return handle(serviceValuatorList);
}
public List<ServiceValuatorVO> selectByName(String name) {
log.info("valuator selectByName name: {}", name);
List<ServiceValuator> serviceValuatorList = serviceValuatorBizMapper.selectByNameLike(name);
return handle(serviceValuatorList);
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(ServiceValuator serviceValuator) {
if (serviceValuator.getId() == null) {
return this.insertSelective(serviceValuator);
} else {
return this.updateByPrimaryKeySelective(serviceValuator);
private List<ServiceValuatorVO> handle(List<ServiceValuator> serviceValuatorList){
if (CollectionUtils.isEmpty(serviceValuatorList)) {
return Lists.newArrayList();
}
// 估价员id列表
List<Long> valuatorIds = serviceValuatorList.parallelStream().map(ServiceValuator::getId).collect(Collectors.toList());
// 已被指派的时间
List<ServiceValuatorAssign> serviceValuatorAssignList = serviceValuatorAssignMapper.selectByIdList(valuatorIds);
Map<Long, List<ServiceValuatorAssign>> serviceValuatorAssignMap =
serviceValuatorAssignList.parallelStream().collect(Collectors.groupingBy(ServiceValuatorAssign::getValuatorId));
return serviceValuatorList.parallelStream().map(e1 -> {
ServiceValuatorVO serviceValuatorVO = AttrCopyUtils.copy(e1, new ServiceValuatorVO());
List<ServiceValuatorAssign> assigns = serviceValuatorAssignMap.getOrDefault(e1.getId(), Lists.newArrayList());
List<Date> assignTimes = assigns.parallelStream().map(ServiceValuatorAssign::getAssignTime).collect(Collectors.toList());
serviceValuatorVO.setAssignTime(assignTimes);
return new ServiceValuatorVO();
}).collect(Collectors.toList());
}
}
package com.onsiteservice.miniapp.service.worker;
import com.google.common.collect.Lists;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.mapper.service.ServiceWorkerAssignMapper;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.dao.mapper.service.ServiceWorkerMapper;
import com.onsiteservice.entity.service.ServiceWorkerAssign;
import com.onsiteservice.miniapp.controller.worker.vo.ServiceWorkerVO;
import com.onsiteservice.miniapp.mapper.service.ServiceWorkerBizMapper;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.util.AttrCopyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author 潘维吉
......@@ -19,30 +25,51 @@ import javax.annotation.Resource;
* @description ServiceWorkerService服务类
*/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
@Resource
private ServiceWorkerMapper serviceWorkerMapper;
private ServiceWorkerAssignMapper serviceWorkerAssignMapper;
@Resource
private ServiceWorkerBizMapper serviceWorkerBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
public List<ServiceWorkerVO> all() {
List<ServiceWorker> serviceWorkerList = this.selectAll();
return handle(serviceWorkerList);
}
public List<ServiceWorkerVO> selectByName(String name) {
log.info("worker selectByName name: {}", name);
List<ServiceWorker> serviceWorkerList = serviceWorkerBizMapper.selectByNameLike(name);
return handle(serviceWorkerList);
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(ServiceWorker serviceWorker) {
if (serviceWorker.getId() == null) {
return this.insertSelective(serviceWorker);
} else {
return this.updateByPrimaryKeySelective(serviceWorker);
private List<ServiceWorkerVO> handle(List<ServiceWorker> serviceWorkerList) {
if (CollectionUtils.isEmpty(serviceWorkerList)) {
return Lists.newArrayList();
}
// 估价员id列表
List<Long> workerIds = serviceWorkerList.parallelStream().map(ServiceWorker::getId).collect(Collectors.toList());
// 已被指派的时间
List<ServiceWorkerAssign> serviceWorkerAssignList = serviceWorkerAssignMapper.selectByIdList(workerIds);
Map<Long, List<ServiceWorkerAssign>> serviceWorkerAssignMap =
serviceWorkerAssignList.parallelStream().collect(Collectors.groupingBy(ServiceWorkerAssign::getWorkerId));
return serviceWorkerList.parallelStream().map(e1 -> {
ServiceWorkerVO serviceWorkerVO = AttrCopyUtils.copy(e1, new ServiceWorkerVO());
List<ServiceWorkerAssign> assigns = serviceWorkerAssignMap.getOrDefault(e1.getId(), Lists.newArrayList());
List<Date> assignTimes = assigns.parallelStream().map(ServiceWorkerAssign::getAssignTime).collect(Collectors.toList());
serviceWorkerVO.setAssignTime(assignTimes);
return new ServiceWorkerVO();
}).collect(Collectors.toList());
}
}
......@@ -3,4 +3,9 @@
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceValuatorBizMapper">
<select id="selectByNameLike" resultType="com.onsiteservice.entity.service.ServiceValuator">
select * from service_valuator where name like '%${name}%' order by create_time asc
</select>
</mapper>
......@@ -3,4 +3,9 @@
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceWorkerBizMapper">
<select id="selectByNameLike" resultType="com.onsiteservice.entity.service.ServiceWorker">
select * from service_worker where name like '%${name}%' order by create_time asc
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment