Commit 0cf84405 authored by kretee's avatar kretee

feat: 维修工估价员接口

parent 6aa6990a
package com.onsiteservice.admin.controller.service;
import com.onsiteservice.admin.controller.service.dto.PageServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.dto.SaveServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceValuatorVO;
import com.onsiteservice.admin.service.service.ServiceValuatorService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
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.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import static com.onsiteservice.core.result.ResultGenerator.fail;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* <P>估价员模块</P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 08:51
*/
@Api(tags = "估价员模块")
@RestController
@RequestMapping("/valuator/")
@Validated
public class ServiceValuatorController {
@Resource
private ServiceValuatorService serviceValuatorService;
@ApiOperation(value = "分页查询列表")
@PostMapping("page")
public Result<PageInfoVO<ServiceValuatorVO>> getPage(@RequestBody @NonNull @Validated PageServiceValuatorDTO dto) {
return serviceValuatorService.getPage(dto);
}
@ApiOperation(value = "根据id查询")
@GetMapping("get/{id}")
public Result<ServiceValuatorVO> getDetails(@ApiParam(name = "id", value = "估价员id") @PathVariable @Positive Long id) {
return success(serviceValuatorService.selectById(id));
}
@ApiOperation(value = "新增")
@PostMapping("save")
public Result save(@RequestBody @NonNull @Validated SaveServiceValuatorDTO dto, @CurrentUserId Long userId) {
return serviceValuatorService.save(dto, userId) == 1 ? success() : fail("新增失败");
}
@ApiOperation(value = "修改")
@PutMapping("update")
public Result saveOrUpdate(@RequestBody @NonNull @Validated UpdateServiceValuatorDTO dto, @CurrentUserId Long userId) {
return serviceValuatorService.update(dto, userId) == 1 ? success() : fail("修改失败");
}
@ApiOperation(value = "根据id删除")
@DeleteMapping("/{id}")
public Result deleteById(@ApiParam(name = "id", value = "估价员id") @PathVariable @Positive Long id, @CurrentUserId Long userId) {
return serviceValuatorService.delete(id, userId) == 1 ? success() : fail("删除失败");
}
}
package com.onsiteservice.admin.controller.service;
import com.onsiteservice.admin.controller.service.dto.PageServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.SaveServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerKindVO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerVO;
import com.onsiteservice.admin.service.service.ServiceWorkerService;
import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.entity.service.ServiceWorker;
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.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import java.util.List;
import static com.onsiteservice.core.result.ResultGenerator.fail;
import static com.onsiteservice.core.result.ResultGenerator.success;
/**
* <P>维修工模块</P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 08:51
*/
@Api(tags = "维修工模块")
@RestController
@RequestMapping("/worker/")
@Validated
public class ServiceWorkerController {
@Resource
private ServiceWorkerService serviceWorkerService;
@ApiOperation(value = "分页查询列表")
@PostMapping("page")
public Result<PageInfoVO<ServiceWorkerVO>> getPage(@RequestBody @NonNull @Validated PageServiceWorkerDTO dto) {
return serviceWorkerService.getPage(dto);
}
@ApiOperation(value = "根据id查询")
@GetMapping("get/{id}")
public Result<ServiceWorkerVO> getDetails(@ApiParam(name = "id", value = "维修工id") @PathVariable @Positive Long id) {
return success(serviceWorkerService.selectById(id));
}
@ApiOperation(value = "新增")
@PostMapping("save")
public Result save(@RequestBody @NonNull @Validated SaveServiceWorkerDTO dto, @CurrentUserId Long userId) {
return serviceWorkerService.save(dto, userId) == 1 ? success() : fail("新增失败");
}
@ApiOperation(value = "修改")
@PostMapping("update")
public Result update(@RequestBody @NonNull @Validated UpdateServiceWorkerDTO dto, @CurrentUserId Long userId) {
return serviceWorkerService.update(dto, userId) == 1 ? success() : fail("修改失败");
}
@ApiOperation(value = "根据id删除")
@DeleteMapping("delete/{id}")
public Result deleteById(@ApiParam(name = "id", value = "维修工id") @PathVariable @Positive Long id, @CurrentUserId Long userId) {
return serviceWorkerService.delete(id, userId) == 1 ? success() : fail("删除失败");
}
@ApiOperation(value = "维修工种类")
@PostMapping("kind")
public Result<List<ServiceWorkerKindVO>> kind() {
return success(serviceWorkerService.kind());
}
}
package com.onsiteservice.admin.controller.service.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 16:34
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PageServiceValuatorDTO extends PageParams {
}
package com.onsiteservice.admin.controller.service.dto;
import com.onsiteservice.dao.common.page.PageParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 16:34
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PageServiceWorkerDTO extends PageParams {
}
package com.onsiteservice.admin.controller.service.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 17:19
*/
@ApiModel("添加估价员请求模型")
@Data
public class SaveServiceValuatorDTO {
@ApiModelProperty("姓名")
@NotBlank(message = "请输入维修工姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
@NotBlank(message = "请输入维修工手机")
private String phone;
/**
* 维修工类型
*/
@ApiModelProperty("维修工类型")
@NotEmpty(message = "请选择工种")
private Boolean kind;
}
package com.onsiteservice.admin.controller.service.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 17:19
*/
@ApiModel("添加维修工请求模型")
@Data
public class SaveServiceWorkerDTO {
@ApiModelProperty("姓名")
@NotBlank(message = "请输入维修工姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
@NotBlank(message = "请输入维修工手机")
private String phone;
/**
* 维修工类型
*/
@ApiModelProperty("维修工类型")
@NotEmpty(message = "请选择工种")
private Boolean kind;
}
package com.onsiteservice.admin.controller.service.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 17:19
*/
@ApiModel("编辑估价员请求模型")
@Data
public class UpdateServiceValuatorDTO {
@ApiModelProperty("维修工id")
@NotEmpty(message = "请输入维修工id")
private Long id;
@ApiModelProperty("姓名")
@NotBlank(message = "请输入维修工姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
@NotBlank(message = "请输入维修工手机")
private String phone;
/**
* 维修工类型
*/
@ApiModelProperty("维修工类型")
@NotEmpty(message = "请选择工种")
private Boolean kind;
}
package com.onsiteservice.admin.controller.service.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
/**
* <P></P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 17:19
*/
@ApiModel("编辑维修工请求模型")
@Data
public class UpdateServiceWorkerDTO {
@ApiModelProperty("维修工id")
@NotEmpty(message = "请输入维修工id")
private Long id;
@ApiModelProperty("姓名")
@NotBlank(message = "请输入维修工姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
@NotBlank(message = "请输入维修工手机")
private String phone;
/**
* 维修工类型
*/
@ApiModelProperty("维修工类型")
@NotEmpty(message = "请选择工种")
private Boolean kind;
}
package com.onsiteservice.admin.controller.service.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Data
public class ServiceValuatorVO {
private Long id;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String phone;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date modifyTime;
}
\ No newline at end of file
package com.onsiteservice.admin.controller.service.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceWorkerKindVO {
private Integer id;
private String name;
}
\ No newline at end of file
package com.onsiteservice.admin.controller.service.vo;
import lombok.Data;
import java.util.Date;
@Data
public class ServiceWorkerVO {
private Long id;
private String name;
private String phone;
private Boolean kind;
private Date createTime;
private Date modifyTime;
}
\ No newline at end of file
package com.onsiteservice.admin.mapper.service;
import com.onsiteservice.admin.controller.service.dto.PageServiceValuatorDTO;
import com.onsiteservice.entity.service.ServiceValuator;
import java.util.List;
public interface ServiceValuatorBizMapper {
List<ServiceValuator> selectServiceValuatorPage(PageServiceValuatorDTO dto);
}
package com.onsiteservice.admin.mapper.service;
import com.onsiteservice.admin.controller.service.dto.PageServiceWorkerDTO;
import com.onsiteservice.entity.service.ServiceWorker;
import java.util.List;
public interface ServiceWorkerBizMapper {
List<ServiceWorker> selectServiceWorkerPage(PageServiceWorkerDTO dto);
}
package com.onsiteservice.admin.service.service;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.service.dto.PageServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.dto.SaveServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceValuatorDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceValuatorVO;
import com.onsiteservice.admin.mapper.service.ServiceValuatorBizMapper;
import com.onsiteservice.constant.enums.BizCodeEnum;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.common.page.PageParams;
import com.onsiteservice.dao.mapper.service.ServiceValuatorMapper;
import com.onsiteservice.dao.mapper.user.UserMapper;
import com.onsiteservice.entity.service.ServiceValuator;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.entity.user.User;
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.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceValuatorService服务类
*/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ServiceValuatorService extends AbstractMapper<ServiceValuator> {
@Resource
private ServiceValuatorBizMapper serviceValuatorBizMapper;
@Resource
private UserMapper userMapper;
/**
* 分页查询列表
*/
public Result<PageInfoVO<ServiceValuatorVO>> getPage(PageServiceValuatorDTO dto) {
PageHelper.startPage(dto.getPage(), dto.getSize());
List<ServiceValuator> serviceValuatorList = serviceValuatorBizMapper.selectServiceValuatorPage(dto);
List<ServiceValuatorVO> serviceValuatorVOList = serviceValuatorList.parallelStream().map(e -> AttrCopyUtils.copy(e, new ServiceValuatorVO())).collect(Collectors.toList());
return ResultGenerator.success(new PageInfoVO<>(serviceValuatorVOList));
}
public ServiceValuatorVO selectById(Long id) {
log.info("valuator selectById id: {}", id);
ServiceValuator serviceValuator = this.selectByPrimaryKey(id);
if (Objects.isNull(serviceValuator)) {
throw new ServiceException(BizCodeEnum.SERVICE_VALUATOR_NOT_EXIST);
}
return AttrCopyUtils.copy(serviceValuator, new ServiceValuatorVO());
}
public int save(SaveServiceValuatorDTO dto, Long userId) {
log.info("valuator save dto: {}, userId: {}", dto, userId);
checkAuth(userId);
Condition c = new Condition(ServiceWorker.class);
c.createCriteria().andEqualTo("phone", dto.getPhone());
List<ServiceValuator> serviceValuatorList = this.selectByCondition(c);
if (CollectionUtils.isEmpty(serviceValuatorList)) {
throw new ServiceException(BizCodeEnum.SERVICE_VALUATOR_HAS_EXIST);
}
return this.insertSelective(AttrCopyUtils.copy(dto, new ServiceValuator()));
}
public int update(UpdateServiceValuatorDTO dto, Long userId) {
log.info("valuator update dto: {}, userId: {}", dto, userId);
checkAuth(userId);
return this.updateByPrimaryKeySelective(AttrCopyUtils.copy(dto, new ServiceValuator()));
}
public int delete(Long id, Long userId) {
log.info("valuator delete id: {}, userId: {}", id, userId);
checkAuth(userId);
return this.deleteByPrimaryKey(id);
}
private void checkAuth(Long userId) {
User user = userMapper.selectByPrimaryKey(userId);
if (Objects.isNull(user) || !user.getAdmin()) {
throw new ServiceException(BizCodeEnum.NO_AUTH);
}
}
}
package com.onsiteservice.admin.service.service;
import com.github.pagehelper.PageHelper;
import com.onsiteservice.admin.controller.service.dto.PageServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.SaveServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.dto.UpdateServiceWorkerDTO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerKindVO;
import com.onsiteservice.admin.controller.service.vo.ServiceWorkerVO;
import com.onsiteservice.admin.mapper.service.ServiceWorkerBizMapper;
import com.onsiteservice.constant.enums.BizCodeEnum;
import com.onsiteservice.constant.enums.ServiceWorkerEnum;
import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.core.result.Result;
import com.onsiteservice.core.result.ResultGenerator;
import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.common.page.PageInfoVO;
import com.onsiteservice.dao.mapper.service.ServiceWorkerMapper;
import com.onsiteservice.dao.mapper.user.UserMapper;
import com.onsiteservice.entity.order.ServiceOrder;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.entity.user.User;
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.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
@Resource
private ServiceWorkerMapper serviceWorkerMapper;
@Resource
private ServiceWorkerBizMapper serviceWorkerBizMapper;
@Resource
private UserMapper userMapper;
/**
* 分页查询列表
*/
public Result<PageInfoVO<ServiceWorkerVO>> getPage(PageServiceWorkerDTO dto) {
log.info("worker getPage dto: {}", dto);
PageHelper.startPage(dto.getPage(), dto.getSize());
List<ServiceWorker> serviceWorkerList = serviceWorkerBizMapper.selectServiceWorkerPage(dto);
List<ServiceWorkerVO> serviceWorkerVOList = serviceWorkerList.parallelStream().map(e -> AttrCopyUtils.copy(e, new ServiceWorkerVO())).collect(Collectors.toList());
return ResultGenerator.success(new PageInfoVO<>(serviceWorkerVOList));
}
public ServiceWorkerVO selectById(Long id) {
log.info("worker selectById id: {}", id);
ServiceWorker serviceWorker = this.selectByPrimaryKey(id);
if (Objects.isNull(serviceWorker)) {
throw new ServiceException(BizCodeEnum.SERVICE_WORKER_NOT_EXIST);
}
return AttrCopyUtils.copy(serviceWorker, new ServiceWorkerVO());
}
public int save(SaveServiceWorkerDTO dto, Long userId) {
log.info("worker save dto: {}, userId: {}", dto, userId);
checkAuth(userId);
Condition c = new Condition(ServiceWorker.class);
c.createCriteria().andEqualTo("phone", dto.getPhone());
List<ServiceWorker> serviceWorkerList = this.selectByCondition(c);
if (CollectionUtils.isEmpty(serviceWorkerList)) {
throw new ServiceException(BizCodeEnum.SERVICE_WORKER_HAS_EXIST);
}
return this.insertSelective(AttrCopyUtils.copy(dto, new ServiceWorker()));
}
public int update(UpdateServiceWorkerDTO dto, Long userId) {
log.info("worker update dto: {}, userId: {}", dto, userId);
checkAuth(userId);
return this.updateByPrimaryKeySelective(AttrCopyUtils.copy(dto, new ServiceWorker()));
}
public int delete(Long id, Long userId) {
log.info("worker delete id: {}, userId: {}", id, userId);
checkAuth(userId);
return this.deleteByPrimaryKey(id);
}
public List<ServiceWorkerKindVO> kind() {
return Arrays.stream(ServiceWorkerEnum.values()).parallel()
.map(e -> ServiceWorkerKindVO.builder().id(e.getId()).name(e.getName()).build())
.collect(Collectors.toList());
}
private void checkAuth(Long userId) {
User user = userMapper.selectByPrimaryKey(userId);
if (Objects.isNull(user) || !user.getAdmin()) {
throw new ServiceException(BizCodeEnum.NO_AUTH);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.admin.mapper.service.ServiceValuatorBizMapper">
<select id="selectServiceValuatorPage" resultType="com.onsiteservice.entity.service.ServiceValuator">
select * from service_valuator order by create_time asc
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.admin.mapper.service.ServiceWorkerBizMapper">
<select id="selectServiceWorkerPage" resultType="com.onsiteservice.entity.service.ServiceWorker">
select * from service_worker order by create_time asc
</select>
</mapper>
...@@ -23,13 +23,25 @@ public enum BizCodeEnum { ...@@ -23,13 +23,25 @@ public enum BizCodeEnum {
SERVICE_ORDER_CANNOT_DISPATCH("订单未支付,不能派单"), SERVICE_ORDER_CANNOT_DISPATCH("订单未支付,不能派单"),
SERVICE_ORDER_CANNOT_FINISH("订单未派单,不能完成本次服务"), SERVICE_ORDER_CANNOT_FINISH("订单未派单,不能完成本次服务"),
/** /**
* 权限相关 * 权限相关
*/ */
NO_AUTH_VALUATION_ORDER("您不能指派估价员"), NO_AUTH_VALUATION_ORDER("您不能指派估价员"),
NO_AUTH_SEND_ORDER("您不能发送订单"), NO_AUTH_SEND_ORDER("您不能发送订单"),
NO_AUTH_DISPATCH_ORDER("您不能派单"), NO_AUTH_DISPATCH_ORDER("您不能派单"),
NO_AUTH("无操作权限"),
/**
* 维修工模块
*/
SERVICE_WORKER_NOT_EXIST("维修工不存在"),
SERVICE_WORKER_HAS_EXIST("该手机号对应维修工已存在"),
/**
* 估价员模块
*/
SERVICE_VALUATOR_NOT_EXIST("估价员不存在"),
SERVICE_VALUATOR_HAS_EXIST("该手机号对应估价员已存在"),
/** /**
* 区域分组 * 区域分组
......
package com.onsiteservice.constant.enums;
import lombok.Getter;
/**
* <P>维修工枚举类</P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 16:08
*/
public enum ServiceWorkerEnum {
CLEANER(2, "清洁工"),
MAINTENANCE_WORKER(1, "维修工");
@Getter
private Integer id;
@Getter
private String name;
private ServiceWorkerEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
}
package com.onsiteservice.dao.mapper.service;
import com.onsiteservice.dao.common.Mapper;
import com.onsiteservice.entity.service.ServiceValuatorAssign;
public interface ServiceValuatorAssignMapper extends Mapper<ServiceValuatorAssign> {
}
\ No newline at end of file
package com.onsiteservice.dao.mapper.service;
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.dao.mapper.service;
import com.onsiteservice.dao.common.Mapper;
import com.onsiteservice.entity.service.ServiceWorkerAssign;
public interface ServiceWorkerAssignMapper extends Mapper<ServiceWorkerAssign> {
}
\ No newline at end of file
package com.onsiteservice.dao.mapper.service;
import com.onsiteservice.dao.common.Mapper;
import com.onsiteservice.entity.service.ServiceWorker;
public interface ServiceWorkerMapper extends Mapper<ServiceWorker> {
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper">
<resultMap id="BaseResultMap" type="com.onsiteservice.entity.service.ServiceValuatorAssign">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="valuator_id" jdbcType="BIGINT" property="valuatorId" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="assign_time" jdbcType="TIMESTAMP" property="assignTime" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.dao.mapper.service.ServiceValuatorMapper">
<resultMap id="BaseResultMap" type="com.onsiteservice.entity.service.ServiceValuator">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.dao.mapper.service.ServiceWorkerAssignMapper">
<resultMap id="BaseResultMap" type="com.onsiteservice.entity.service.ServiceWorkerAssign">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="worker_id" jdbcType="BIGINT" property="workerId" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="assign_time" jdbcType="TIMESTAMP" property="assignTime" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.dao.mapper.service.ServiceWorkerMapper">
<resultMap id="BaseResultMap" type="com.onsiteservice.entity.service.ServiceWorker">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="kind" jdbcType="BIT" property="kind" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
</resultMap>
</mapper>
\ No newline at end of file
package com.onsiteservice.entity.service;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@ApiModel("估价员表")
@Table(name = "service_valuator")
public class ServiceValuator implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("")
private Long id;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String phone;
/**
* 创建时间
*/
@Column(name = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
/**
* 修改时间
*/
@Column(name = "modify_time")
@ApiModelProperty("修改时间")
private Date modifyTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.onsiteservice.entity.service;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@ApiModel("估价员表")
@Table(name = "service_valuator_assign")
public class ServiceValuatorAssign implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("")
private Long id;
/**
* 估价员id
*/
@Column(name = "valuator_id")
@ApiModelProperty("估价员id")
private Long valuatorId;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty("订单id")
private Long orderId;
/**
* 指派时间
*/
@Column(name = "assign_time")
@ApiModelProperty("指派时间")
private Date assignTime;
/**
* 创建时间
*/
@Column(name = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
/**
* 修改时间
*/
@Column(name = "modify_time")
@ApiModelProperty("修改时间")
private Date modifyTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.onsiteservice.entity.service;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@ApiModel("工作人员表")
@Table(name = "service_worker")
public class ServiceWorker implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("")
private Long id;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String phone;
/**
* 维修工类型
*/
@ApiModelProperty("维修工类型")
private Boolean kind;
/**
* 创建时间
*/
@Column(name = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
/**
* 修改时间
*/
@Column(name = "modify_time")
@ApiModelProperty("修改时间")
private Date modifyTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.onsiteservice.entity.service;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@ApiModel("工作人员表")
@Table(name = "service_worker_assign")
public class ServiceWorkerAssign implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("")
private Long id;
/**
* 维修工id
*/
@Column(name = "worker_id")
@ApiModelProperty("维修工id")
private Long workerId;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty("订单id")
private Long orderId;
/**
* 指派时间
*/
@Column(name = "assign_time")
@ApiModelProperty("指派时间")
private Date assignTime;
/**
* 创建时间
*/
@Column(name = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
/**
* 修改时间
*/
@Column(name = "modify_time")
@ApiModelProperty("修改时间")
private Date modifyTime;
private static final long serialVersionUID = 1L;
}
\ 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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import static com.onsiteservice.core.result.ResultGenerator.success;
import static com.onsiteservice.core.result.ResultGenerator.fail;
/**
* <P>估价员模块</P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 08:51
*/
@Api(tags = "估价员模块")
@RestController
@RequestMapping("/valuator/")
@Validated
public class ServiceValuatorController {
@Resource
private ServiceValuatorService serviceValuatorService;
@ApiOperation(value = "分页查询列表", notes = "作者: 潘维吉")
@PostMapping("/page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(serviceValuatorService.getPage(param), "获取分页列表");
}
@ApiOperation(value = "根据id查询", notes = "作者: 潘维吉")
@GetMapping("/{id}")
public Result<ServiceValuator> getDetails(@PathVariable @Positive Long id) {
return success(serviceValuatorService.selectByPrimaryKey(id), "根据id获取详情");
}
}
package com.onsiteservice.miniapp.controller.worker;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.miniapp.service.worker.ServiceWorkerService;
import com.onsiteservice.core.result.Result;
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 lombok.NonNull;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.Positive;
import static com.onsiteservice.core.result.ResultGenerator.success;
import static com.onsiteservice.core.result.ResultGenerator.fail;
/**
* <P>维修工模块</P>
*
* @author 李宁
* @version v1.0
* @since 2022/7/11 08:51
*/
@Api(tags = "维修工模块")
@RestController
@RequestMapping("/worker/")
@Validated
public class ServiceWorkerController {
@Resource
private ServiceWorkerService serviceWorkerService;
@ApiOperation(value = "分页查询列表")
@PostMapping("page")
public Result<PageInfoVO> getPage(@RequestBody @NonNull @Validated PageParams param) {
return success(serviceWorkerService.getPage(param), "获取分页列表");
}
@ApiOperation(value = "根据id查询")
@GetMapping("get/{id}")
public Result<ServiceWorker> getDetails(@PathVariable @Positive Long id) {
return success(serviceWorkerService.selectByPrimaryKey(id), "根据id获取详情");
}
}
package com.onsiteservice.miniapp.mapper.service;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceValuatorAssignBizMapper业务接口
*/
public interface ServiceValuatorAssignBizMapper {
}
package com.onsiteservice.miniapp.mapper.service;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceValuatorBizMapper业务接口
*/
public interface ServiceValuatorBizMapper {
}
package com.onsiteservice.miniapp.mapper.service;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceWorkerAssignBizMapper业务接口
*/
public interface ServiceWorkerAssignBizMapper {
}
package com.onsiteservice.miniapp.mapper.service;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceWorkerBizMapper业务接口
*/
public interface ServiceWorkerBizMapper {
}
...@@ -123,7 +123,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -123,7 +123,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
serviceOrder.setAccountNo(userId); serviceOrder.setAccountNo(userId);
// 订单号 // 订单号
serviceOrder.setOrderNo(RandomUtils.orderNum()); serviceOrder.setOrderNo(RandomUtils.orderNum());
// 手机号 // 客户手机号
serviceOrder.setPhone(serviceAddress.getPhone()); serviceOrder.setPhone(serviceAddress.getPhone());
return this.insertSelective(serviceOrder); return this.insertSelective(serviceOrder);
...@@ -147,6 +147,10 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -147,6 +147,10 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
// TODO 短信通知估价员 去估价 // TODO 短信通知估价员 去估价
// TODO 短信 "您的订单已为您指派估价员,请保持手机畅通!"
// TODO 小程序通知客户 "您的订单已为您指派估价员,请保持手机畅通!"
return this.updateByPrimaryKeySelective(serviceOrder); return this.updateByPrimaryKeySelective(serviceOrder);
} }
...@@ -201,8 +205,13 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -201,8 +205,13 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder); int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
// TODO 调用微信支付接口 // TODO 调用微信支付接口
// TODO 短信 通知管理员 -> 用户已经支付完成,请尽快指派维修工
// TODO 小程序 通知管理员 -> 用户已经支付完成,请尽快指派维修工
return result; return result;
} }
...@@ -222,15 +231,16 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -222,15 +231,16 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.DISPATCH.getStatus()); serviceOrder.setOrderStatus(ServiceOrderStatusEnum.DISPATCH.getStatus());
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder); int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
// TODO 小程序通知 您的订单已为您指派维修工~~~ // TODO 短信 "您的订单已为您指派维修工,请保持手机畅通!"
// TODO 小程序通知 您的订单已为您指派维修工~~~
return result; return result;
} }
/** /**
* 完成 TODO 任务已派单的 "?天" 自动完成 * 完成 TODO 添加定时任务已派单的 "?天" 自动完成
*/ */
public int finishOrder(FinishServiceOrderDTO dto, Long userId) { public int finishOrder(FinishServiceOrderDTO dto, Long userId) {
log.info("finishOrder dto: {}, userId: {}", dto, userId); log.info("finishOrder dto: {}, userId: {}", dto, userId);
...@@ -258,6 +268,10 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -258,6 +268,10 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
} }
/**
* 未派单订单 用户可实时退款
* 已派单订单 需要管理员审批
*/
public int refundOrder(RefundServiceOrderDTO dto, Long userId) { public int refundOrder(RefundServiceOrderDTO dto, Long userId) {
log.info("refundOrder dto: {}, userId: {}", dto, userId); log.info("refundOrder dto: {}, userId: {}", dto, userId);
......
package com.onsiteservice.miniapp.service.worker;
import com.onsiteservice.entity.service.ServiceValuator;
import com.onsiteservice.dao.mapper.service.ServiceValuatorMapper;
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 org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceValuatorService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ServiceValuatorService extends AbstractMapper<ServiceValuator> {
@Resource
private ServiceValuatorMapper serviceValuatorMapper;
@Resource
private ServiceValuatorBizMapper serviceValuatorBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(ServiceValuator serviceValuator) {
if (serviceValuator.getId() == null) {
return this.insertSelective(serviceValuator);
} else {
return this.updateByPrimaryKeySelective(serviceValuator);
}
}
}
package com.onsiteservice.miniapp.service.worker;
import com.onsiteservice.entity.service.ServiceWorker;
import com.onsiteservice.dao.mapper.service.ServiceWorkerMapper;
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 org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @author 潘维吉
* @date 2022-07-11 16:07
* @description ServiceWorkerService服务类
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
@Resource
private ServiceWorkerMapper serviceWorkerMapper;
@Resource
private ServiceWorkerBizMapper serviceWorkerBizMapper;
/**
* 分页查询列表
*/
public PageInfoVO getPage(PageParams param) {
PageHelper.startPage(param.getPage(), param.getSize());
return new PageInfoVO(this.selectAll());
}
/**
* 保存或更新方法
*/
public int saveOrUpdate(ServiceWorker serviceWorker) {
if (serviceWorker.getId() == null) {
return this.insertSelective(serviceWorker);
} else {
return this.updateByPrimaryKeySelective(serviceWorker);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceValuatorAssignBizMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceValuatorBizMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceWorkerAssignBizMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.onsiteservice.miniapp.mapper.service.ServiceWorkerBizMapper">
</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