refactor(customer):导入项目客户模块初始工程

This commit is contained in:
JIAN 2024-08-15 13:01:57 +08:00
parent 1db850a6cf
commit 464df04806
152 changed files with 8116 additions and 25 deletions

View File

@ -1,7 +1,7 @@
package com.jzo2o.api.publics;
import com.jzo2o.api.publics.dto.response.BooleanResDTO;
import com.jzo2o.common.enums.SmsBussinessTypeEnum;
import com.jzo2o.common.enums.SmsBusinessTypeEnum;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -16,12 +16,12 @@ public interface SmsCodeApi {
* 校验短信验证码
*
* @param phone 验证手机号
* @param bussinessType 业务类型
* @param businessType 业务类型
* @param verifyCode 验证码
* @return 验证结果
*/
@GetMapping("/verify")
BooleanResDTO verify(@RequestParam("phone") String phone,
@RequestParam("bussinessType") SmsBussinessTypeEnum bussinessType,
@RequestParam("businessType") SmsBusinessTypeEnum businessType,
@RequestParam("verifyCode") String verifyCode);
}
}

10
jzo2o-customer/Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM openjdk:11-jdk
LABEL maintainer="研究院研发组 <research-maint@itcast.cn>"
RUN echo "Asia/Shanghai" > /etc/timezone
ARG PACKAGE_PATH=./target/jzo2o-customer.jar
ADD ${PACKAGE_PATH:-./} app.jar
EXPOSE 8080
EXPOSE 9999
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS app.jar"]

107
jzo2o-customer/pom.xml Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>jzo2o-customer</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<artifactId>jzo2o-parent</artifactId>
<groupId>com.jzo2o</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>com.jzo2o</groupId>
<artifactId>jzo2o-mvc</artifactId>
</dependency>
<dependency>
<groupId>com.jzo2o</groupId>
<artifactId>jzo2o-knife4j-web</artifactId>
</dependency>
<dependency>
<groupId>com.jzo2o</groupId>
<artifactId>jzo2o-mysql</artifactId>
</dependency>
<dependency>
<groupId>com.jzo2o</groupId>
<artifactId>jzo2o-api</artifactId>
</dependency>
<dependency>
<groupId>com.jzo2o</groupId>
<artifactId>jzo2o-redis</artifactId>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--canal-->
<!-- <dependency>-->
<!-- <groupId>com.jzo2o</groupId>-->
<!-- <artifactId>jzo2o-canal-sync</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>com.jzo2o</groupId>-->
<!-- <artifactId>jzo2o-es</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>cn.xiaozhibang</groupId>
<artifactId>evaluation-sdk</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.jzo2o</groupId>-->
<!-- <artifactId>jzo2o-xxl-job</artifactId>-->
<!-- </dependency>-->
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.jzo2o.customer.CustomerApplicaiton</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,22 @@
package com.jzo2o.customer;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy
@SpringBootApplication
@Slf4j
@EnableCaching
@MapperScan("com.jzo2o.customer.mapper")
public class CustomerApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(CustomerApplication.class)
.build(args)
.run(args);
log.info("家政服务-客户中心启动");
}
}

View File

@ -0,0 +1,264 @@
package com.jzo2o.customer.client;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import cn.xiaozhibang.evaluation.sdk.core.TokenHelper;
import cn.xiaozhibang.evaluation.sdk.model.domain.CurrentUser;
import com.jzo2o.common.constants.ErrorInfo;
import com.jzo2o.common.constants.UserType;
import com.jzo2o.common.expcetions.CommonException;
import com.jzo2o.common.model.CurrentUserInfo;
import com.jzo2o.customer.properties.EvaluationProperties;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Map;
/**
* 评价系统对接http工具类
*
* @author itcast
* @create 2023/9/8 17:52
**/
@Component
public class EvaluationHttpClient {
@Resource
private EvaluationProperties evaluationProperties;
/**
* 默认连接超时时间
*/
private static final Integer DEFAULT_CONNECTION_TIMEOUT = 3000;
/**
* 默认读取超时时间
*/
private static final Integer DEFAULT_READ_TIMEOUT = 5000;
/**
* post请求
*
* @param currentUserInfo 当前用户信息
* @param url 请求地址
* @param parameters 请求参数
* @param body 请求体
* @return 响应数据
*/
public <T> String post(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters, T body) {
return post(currentUserInfo, url, parameters, body, null, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_READ_TIMEOUT);
}
/**
* post请求自定义请求头
*
* @param currentUserInfo 当前用户信息
* @param url 请求地址
* @param parameters 请求参数
* @param body 请求体
* @param headers 请求头
* @return 响应数据
*/
public <T> String post(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters, T body, Map<String, String> headers) {
return post(currentUserInfo, url, parameters, body, headers, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_READ_TIMEOUT);
}
/**
* post请求自定义连接时间
*
* @param currentUserInfo 当前用户信息
* @param url 请求地址
* @param parameters 请求参数
* @param body 请求体
* @param headers 请求头
* @param connectionTimeout 连接超时时间
* @param readTimeout 读取超时时间
* @return 响应数据
*/
public <T> String post(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters, T body, Map<String, String> headers, Integer connectionTimeout, Integer readTimeout) {
//生成token
String token = this.generateToken(currentUserInfo);
//组装请求参数
if (ObjectUtil.isNotEmpty(parameters)) {
url = getCompleteUrl(url, parameters);
}
//组装请求
HttpRequest httpRequest = HttpRequest.post(url)
.header(Header.AUTHORIZATION, token)
.setConnectionTimeout(connectionTimeout)
.setReadTimeout(readTimeout);
//组装header
if (ObjectUtil.isNotEmpty(headers)) {
headers.forEach(httpRequest::header);
}
//组装请求体
if (ObjectUtil.isNotEmpty(body)) {
httpRequest.body(JSONUtil.toJsonStr(body));
}
//发起请求
String result = httpRequest.execute().body();
//校验http响应结果
checkResult(result);
return result;
}
/**
* get请求
*
* @param currentUserInfo 当前用户信息
* @param url 请求地址
* @param parameters 请求参数
* @return 响应数据
*/
public String get(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters) {
return get(currentUserInfo, url, parameters, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_READ_TIMEOUT);
}
/**
* get请求自定义连接时间
*
* @param currentUserInfo 当前用户信息
* @param url 请求地址
* @param parameters 请求参数
* @param connectionTimeout 连接超时时间
* @param readTimeout 读取超时时间
* @return 响应数据
*/
public String get(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters, Integer connectionTimeout, Integer readTimeout) {
//生成token
String token = this.generateToken(currentUserInfo);
//组装请求参数
if (ObjectUtil.isNotEmpty(parameters)) {
url = getCompleteUrl(url, parameters);
}
//发起请求
String result = HttpRequest.get(url)
.header(Header.AUTHORIZATION, token)
.setConnectionTimeout(connectionTimeout)
.setReadTimeout(readTimeout)
.execute().body();
//校验http响应结果
checkResult(result);
return result;
}
/**
* delete请求
*
* @param currentUserInfo 当前用户信息
* @param url 请求路径
* @param parameters 请求参数
* @return 响应数据
*/
public String delete(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters) {
return delete(currentUserInfo, url, parameters, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_READ_TIMEOUT);
}
/**
* delete请求自定义连接时间
*
* @param currentUserInfo 当前用户信息
* @param url 请求路径
* @param parameters 请求参数
* @param connectionTimeout 连接超时时间
* @param readTimeout 读取超时时间
* @return 响应数据
*/
public String delete(CurrentUserInfo currentUserInfo, String url, Map<String, Object> parameters, Integer connectionTimeout, Integer readTimeout) {
//生成token
String token = this.generateToken(currentUserInfo);
//组装请求参数
if (ObjectUtil.isNotEmpty(parameters)) {
url = getCompleteUrl(url, parameters);
}
//发起请求
String result = HttpRequest.delete(url)
.header(Header.AUTHORIZATION, token)
.setConnectionTimeout(connectionTimeout)
.setReadTimeout(readTimeout)
.execute().body();
//校验http响应结果
checkResult(result);
return result;
}
/**
* 校验http响应结果
*
* @param result http响应
*/
private void checkResult(String result) {
String code = JSONUtil.parseObj(result).get("code").toString();
if (ObjectUtil.equal("608", code)) {
throw new CommonException(ErrorInfo.Code.HTTP_EVALUATION_FAILED, "禁止重复提交");
}
if (ObjectUtil.notEqual("200", code)) {
throw new CommonException(ErrorInfo.Code.HTTP_EVALUATION_FAILED, "对接评价系统http请求失败");
}
}
/**
* 拼接请求参数
*
* @param url 请求路径
* @param parameters 参数
* @return 完整请求地址
*/
private String getCompleteUrl(String url, Map<String, Object> parameters) {
StringBuilder stringBuilder = new StringBuilder(url);
if (ObjectUtil.isNotEmpty(parameters)) {
stringBuilder.append("?");
parameters.forEach((k, v) -> {
stringBuilder.append(k);
stringBuilder.append("=");
stringBuilder.append(v.toString());
stringBuilder.append("&");
});
}
return stringBuilder.substring(0, stringBuilder.length() - 1);
}
/**
* 生成评价系统token
*
* @param currentUserInfo 当前用户信息
* @return token
*/
public String generateToken(CurrentUserInfo currentUserInfo) {
//配置中心读取应用配置
String appId = evaluationProperties.getAppId();
String accessKeyId = evaluationProperties.getAccessKeyId();
String accessKeySecret = evaluationProperties.getAccessKeySecret();
//当前用户信息
CurrentUser currentUser = new CurrentUser();
currentUser.setId(currentUserInfo.getId().toString());
currentUser.setNickName(currentUserInfo.getName());
currentUser.setUserAvatar(currentUserInfo.getAvatar());
//生成token
if (ObjectUtil.equal(UserType.OPERATION, currentUserInfo.getUserType())) {
return TokenHelper.generateTokenOfAdmin(appId, accessKeyId, accessKeySecret, currentUser);
} else {
return TokenHelper.generateTokenOfUser(appId, accessKeyId, accessKeySecret, currentUser);
}
}
}

View File

@ -0,0 +1,20 @@
package com.jzo2o.customer.config;
import com.jzo2o.common.utils.JwtTool;
import com.jzo2o.customer.properties.ApplicationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
@Configuration
public class JwtConfiguration {
@Resource
private ApplicationProperties applicationProperties;
@Bean
public JwtTool jwtTool() {
return new JwtTool(applicationProperties.getJwtKey());
}
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class SecurityConfig {
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}

View File

@ -0,0 +1,5 @@
package com.jzo2o.customer.constants;
public class EsIndexConstants {
public static final String SERVE_PROVIDER_INFO = "serve_provider_info";
}

View File

@ -0,0 +1,11 @@
package com.jzo2o.customer.constants;
/**
* redis常量
*/
public class RedisConstants {
public static class RedisKey {
}
}

View File

@ -0,0 +1,72 @@
package com.jzo2o.customer.controller.agency;
import com.jzo2o.api.customer.dto.request.InstitutionStaffPageQueryReqDTO;
import com.jzo2o.api.customer.dto.response.InstitutionStaffResDTO;
import com.jzo2o.common.model.CurrentUserInfo;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.dto.request.InstitutionStaffUpsertReqDTO;
import com.jzo2o.customer.model.dto.response.InstitutionStaffSimpleResDTO;
import com.jzo2o.customer.service.IInstitutionStaffService;
import com.jzo2o.mvc.utils.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 机构下属服务人员 前端控制器
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@RestController("agencyInstitutionStaffController")
@RequestMapping("/agency/institution-staff")
@Api(tags = "机构端 - 机构下属服务人员相关接口")
public class InstitutionStaffController {
@Resource
private IInstitutionStaffService institutionStaffService;
@PostMapping
@ApiOperation("新增机构下属服务人员")
public void add(@RequestBody InstitutionStaffUpsertReqDTO institutionStaffUpsertReqDTO) {
institutionStaffService.add(institutionStaffUpsertReqDTO);
}
@PutMapping("/{id}")
@ApiOperation("更新机构下属服务人员")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "机构下属服务人员id", required = true, dataTypeClass = Long.class)
})
public void update(@PathVariable("id") Long id, @RequestBody InstitutionStaffUpsertReqDTO institutionStaffUpsertReqDTO) {
institutionStaffService.update(id, institutionStaffUpsertReqDTO);
}
@DeleteMapping("/{id}")
@ApiOperation("根据id删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "机构下属服务人员id", required = true, dataTypeClass = Long.class)
})
public void delete(@PathVariable("id") Long id) {
institutionStaffService.delete(id);
}
@GetMapping("/page")
@ApiOperation("分页查询")
public PageResult<InstitutionStaffResDTO> page(InstitutionStaffPageQueryReqDTO institutionStaffPageQueryReqDTO) {
institutionStaffPageQueryReqDTO.setInstitutionId(UserContext.currentUserId());
return institutionStaffService.pageQuery(institutionStaffPageQueryReqDTO);
}
@GetMapping("/queryInstitutionStaffList")
@ApiOperation("机构下属服务人员列表")
public List<InstitutionStaffSimpleResDTO> queryInstitutionStaffList() {
return institutionStaffService.queryInstitutionStaffList();
}
}

View File

@ -0,0 +1,35 @@
package com.jzo2o.customer.controller.agency;
import com.jzo2o.customer.model.dto.request.InstitutionResetPasswordReqDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderInfoResDTO;
import com.jzo2o.customer.service.IServeProviderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* <p>
* 服务人员/机构表 前端控制器
* </p>
*
* @author itcast
* @since 2023-07-17
*/
@RestController("agencyServeProviderController")
@RequestMapping("/agency/serve-provider")
@Api(tags = "机构端 - 服务人员或机构相关接口")
public class ServeProviderController {
@Resource
private IServeProviderService serveProviderService;
@GetMapping("/currentUserInfo")
@ApiOperation("获取当前用户信息")
public ServeProviderInfoResDTO currentUserInfo() {
return serveProviderService.currentUserInfo();
}
}

View File

@ -0,0 +1,52 @@
package com.jzo2o.customer.controller.agency;
import com.jzo2o.customer.model.dto.request.ServePickUpReqDTO;
import com.jzo2o.customer.model.dto.request.ServeScopeSetReqDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderSettingsGetResDTO;
import com.jzo2o.customer.model.dto.response.ServeSettingsStatusResDTO;
import com.jzo2o.customer.service.IServeProviderSettingsService;
import com.jzo2o.mvc.utils.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author 86188
*/
@RestController("agencyServeProviderSettingsController")
@RequestMapping("/agency/serve-settings")
@Api(tags = "机构端 - 服务设置相关接口")
public class ServeProviderSettingsController {
@Resource
private IServeProviderSettingsService serveProviderSettingsService;
@PutMapping("/serve-scope")
@ApiOperation("服务范围设置")
public void setServeScope(@RequestBody @Validated ServeScopeSetReqDTO serveScopeSetReqDTO) {
serveProviderSettingsService.setServeScope(serveScopeSetReqDTO);
}
@GetMapping
@ApiOperation("获取设置")
public ServeProviderSettingsGetResDTO getServeScope() {
return serveProviderSettingsService.getServeScope();
}
@PutMapping("/pick-up")
@ApiOperation("接单设置")
public void setPickUp(@RequestBody ServePickUpReqDTO servePickUpReqDTO) {
// serveProviderSettingsService.setPickUp(servePickUpReqDTO);
serveProviderSettingsService.setPickUp(UserContext.currentUserId(), servePickUpReqDTO.getCanPickUp());
}
@GetMapping("/status")
@ApiOperation("获取所有设置状态")
public ServeSettingsStatusResDTO getStatus() {
return serveProviderSettingsService.getSettingStatus();
}
}

View File

@ -0,0 +1,54 @@
package com.jzo2o.customer.controller.agency;
import com.jzo2o.api.foundations.dto.response.ServeItemSimpleResDTO;
import com.jzo2o.api.foundations.dto.response.ServeTypeSimpleResDTO;
import com.jzo2o.customer.model.dto.request.ServeSkillAddReqDTO;
import com.jzo2o.customer.model.dto.response.ServeSkillCategoryResDTO;
import com.jzo2o.customer.service.IServeSkillService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 服务技能表 前端控制器
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@RestController("agencyServeSkillController")
@RequestMapping("/agency/serve-skill")
@Api(tags = "机构端 - 服务技能相关接口")
public class ServeSkillController {
@Resource
private IServeSkillService serveSkillService;
@PostMapping("/batchUpsert")
@ApiOperation("批量新增或修改服务技能")
public void listServeType(@RequestBody List<ServeSkillAddReqDTO> serveSkillAddReqDTOList) {
serveSkillService.batchUpsert(serveSkillAddReqDTOList);
}
@GetMapping("/category")
@ApiOperation("查询服务技能目录")
public List<ServeSkillCategoryResDTO> category() {
return serveSkillService.category();
}
@GetMapping("/queryCurrentUserServeSkillTypeList")
@ApiOperation("查询当前用户的服务技能类型")
public List<ServeTypeSimpleResDTO> queryCurrentUserServeSkillTypeList() {
return serveSkillService.queryCurrentUserServeSkillTypeList();
}
@GetMapping("/queryCurrentUserServeSkillItemList")
@ApiOperation("查询当前用户的服务技能")
public List<ServeItemSimpleResDTO> queryCurrentUserServeSkillItemList() {
return serveSkillService.queryCurrentUserServeSkillItemList();
}
}

View File

@ -0,0 +1,37 @@
package com.jzo2o.customer.controller.consumer;
import com.jzo2o.customer.service.ICommonUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 普通用户相关接口
*
* @author itcast
* @create 2023/7/7 19:34
**/
@RestController("consumerCommonUserController")
@RequestMapping("/consumer/common-user")
@Api(tags = "用户端 - 普通用户相关接口")
public class CommonUserController {
@Resource
private ICommonUserService commonUserService;
@PutMapping
@ApiOperation("更新用户手机号")
@ApiImplicitParams({
@ApiImplicitParam(name = "phoneCode", value = "微信手机号授权码", required = true, dataTypeClass = String.class)
})
public void update(@RequestParam("phoneCode") String phoneCode) {
commonUserService.updatePhone(phoneCode);
}
}

View File

@ -0,0 +1,85 @@
package com.jzo2o.customer.controller.consumer;
import com.jzo2o.api.customer.dto.request.EvaluationSubmitReqDTO;
import com.jzo2o.customer.model.dto.request.AuditReqDTO;
import com.jzo2o.customer.model.dto.request.EvaluationPageByTargetReqDTO;
import com.jzo2o.customer.model.dto.request.LikeOrCancelReqDTO;
import com.jzo2o.customer.model.dto.response.AllEvaluationSystemInfoResDTO;
import com.jzo2o.customer.model.dto.response.BooleanResDTO;
import com.jzo2o.customer.model.dto.response.EvaluationAndOrdersResDTO;
import com.jzo2o.customer.model.dto.response.EvaluationResDTO;
import com.jzo2o.customer.service.EvaluationService;
import com.jzo2o.mvc.utils.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 评价相关接口
*
* @author itcast
* @create 2023/9/11 16:14
**/
@RestController("consumerEvaluationController")
@RequestMapping("/consumer/evaluation")
@Api(tags = "用户端 - 评价相关接口")
public class EvaluationController {
@Resource
private EvaluationService evaluationService;
@PostMapping
@ApiOperation("发表评价")
public BooleanResDTO submit(@RequestBody EvaluationSubmitReqDTO evaluationSubmitReqDTO) {
evaluationSubmitReqDTO.setCurrentUserInfo(UserContext.currentUser());
return evaluationService.submit(evaluationSubmitReqDTO);
}
@GetMapping("/pageByTarget")
@ApiOperation("根据对象属性分页查询评价列表")
public List<EvaluationResDTO> pageByTargetId(EvaluationPageByTargetReqDTO evaluationPageByTargetReqDTO) {
return evaluationService.pageByTarget(evaluationPageByTargetReqDTO);
}
@DeleteMapping("/{id}")
@ApiOperation("删除评价")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "评价id", required = true, dataTypeClass = String.class)
})
public void delete(@PathVariable("id") String id) {
evaluationService.delete(id);
}
@PostMapping("/likeOrCancel")
@ApiOperation("点赞或取消点赞接口")
public void likeOrCancel(@RequestBody LikeOrCancelReqDTO likeOrCancelReqDTO) {
evaluationService.likeOrCancel(likeOrCancelReqDTO);
}
@PostMapping("/userReport")
@ApiOperation("用户举报")
public void userReport(@RequestBody AuditReqDTO auditReqDTO) {
evaluationService.userReport(auditReqDTO);
}
@GetMapping("/pageByCurrentUser")
@ApiOperation("分页查询当前用户评价列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "页码默认为1", defaultValue = "1", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "pageSize", value = "页面大小默认为10", defaultValue = "10", dataTypeClass = Integer.class)
})
public List<EvaluationAndOrdersResDTO> pageByCurrentUser(@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
return evaluationService.pageByCurrentUser(pageNo, pageSize);
}
@GetMapping("/findAllSystemInfo")
@ApiOperation("查询评价配置信息")
public AllEvaluationSystemInfoResDTO findAllSystemInfo() {
return evaluationService.findAllSystemInfo(UserContext.currentUser());
}
}

View File

@ -0,0 +1,30 @@
package com.jzo2o.customer.controller.inner;
import com.jzo2o.api.customer.CommonUserApi;
import com.jzo2o.api.customer.dto.response.CommonUserResDTO;
import com.jzo2o.common.utils.BeanUtils;
import com.jzo2o.customer.service.ICommonUserService;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 内部接口-普通用户相关接口
*
* @author itcast
* @create 2023/7/7 19:34
**/
@RestController
@RequestMapping("inner/common-user")
@Api(tags = "内部接口 - 普通用户相关接口")
public class InnerCommonUserController implements CommonUserApi {
@Resource
private ICommonUserService commonUserService;
@Override
public CommonUserResDTO findById(Long id) {
return BeanUtils.toBean(commonUserService.getById(id), CommonUserResDTO.class);
}
}

View File

@ -0,0 +1,42 @@
package com.jzo2o.customer.controller.inner;
import com.jzo2o.api.customer.EvaluationApi;
import com.jzo2o.api.customer.dto.request.EvaluationSubmitReqDTO;
import com.jzo2o.api.customer.dto.response.EvaluationScoreResDTO;
import com.jzo2o.customer.service.EvaluationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 评价相关接口
*
* @author itcast
* @create 2023/9/11 16:14
**/
@RestController("innerEvaluationController")
@RequestMapping("/inner/evaluation")
@Api(tags = "内部接口 - 评价相关接口")
public class InnerEvaluationController implements EvaluationApi {
@Resource
private EvaluationService evaluationService;
@Override
@GetMapping("/queryServeProviderScoreByOrdersId")
@ApiOperation("根据订单id列表查询师傅评分")
public EvaluationScoreResDTO queryServeProviderScoreByOrdersId(@RequestParam("orderIds") List<Long> orderIds) {
Map<String, Double> scoreMap = evaluationService.queryServeProviderScoreByOrdersId(orderIds);
return new EvaluationScoreResDTO(scoreMap);
}
@Override
@PostMapping("/autoEvaluate")
@ApiOperation("自动评价")
public void autoEvaluate(@RequestBody EvaluationSubmitReqDTO evaluationSubmitReqDTO) {
evaluationService.autoEvaluate(evaluationSubmitReqDTO);
}
}

View File

@ -0,0 +1,69 @@
package com.jzo2o.customer.controller.inner;
import cn.hutool.core.bean.BeanUtil;
import com.jzo2o.api.customer.InstitutionStaffApi;
import com.jzo2o.api.customer.dto.request.InstitutionStaffAddReqDTO;
import com.jzo2o.api.customer.dto.response.InstitutionStaffResDTO;
import com.jzo2o.customer.model.domain.InstitutionStaff;
import com.jzo2o.customer.service.IInstitutionStaffService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 内部接口 - 机构下属服务人员相关接口
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@RestController
@RequestMapping("/inner/institution-staff")
@Api(tags = "内部接口 - 机构下属服务人员相关接口")
public class InnerInstitutionStaffController implements InstitutionStaffApi {
@Resource
private IInstitutionStaffService institutionStaffService;
@Override
@GetMapping("/findByIds")
@ApiOperation("根据id列表查询")
public List<InstitutionStaffResDTO> findByIds(@RequestParam("ids") List<Long> ids) {
return BeanUtil.copyToList(institutionStaffService.listByIds(ids), InstitutionStaffResDTO.class);
}
@GetMapping("/findById")
@ApiOperation("根据id查询")
@Override
public InstitutionStaffResDTO findById(Long id) {
InstitutionStaff institutionStaff = institutionStaffService.getById(id);
InstitutionStaffResDTO institutionStaffResDTO = BeanUtil.toBean(institutionStaff, InstitutionStaffResDTO.class);
return institutionStaffResDTO;
}
@Override
@GetMapping({"/findByIdAndInstitutionId/{id}"})
public InstitutionStaffResDTO findByIdAndInstitutionId(@PathVariable("id") Long id, @RequestParam("institutionId") Long institutionId) {
return institutionStaffService.findByIdAndInstitutionId(id, institutionId);
}
@Override
public List<InstitutionStaffResDTO> findByInstitutionId(Long institutionId) {
return institutionStaffService.findByInstitutionId(institutionId);
}
@Override
@PostMapping("/add")
@ApiOperation("内部接口生成服务人员")
public void add(@RequestBody InstitutionStaffAddReqDTO institutionStaffAddReqDTO) {
institutionStaffService.add(institutionStaffAddReqDTO);
}
}

View File

@ -0,0 +1,64 @@
package com.jzo2o.customer.controller.inner;
import com.jzo2o.api.customer.ServeProviderApi;
import com.jzo2o.api.customer.dto.response.ServeProviderResDTO;
import com.jzo2o.api.customer.dto.response.ServeProviderSimpleResDTO;
import com.jzo2o.customer.service.IServeProviderService;
import com.jzo2o.customer.service.IServeProviderSettingsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务人员/机构表 前端控制器
* </p>
*
* @author itcast
* @since 2023-07-17
*/
@RestController
@RequestMapping("/inner/serve-provider")
@Api(tags = "内部接口 - 服务人员、机构相关接口")
public class InnerServeProviderController implements ServeProviderApi {
@Resource
private IServeProviderService serveProviderService;
@Resource
private IServeProviderSettingsService serveProviderSettingsService;
@Override
@GetMapping("/{id}")
@ApiOperation("服务人员/机构详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "服务人员/机构id", required = true, dataTypeClass = Long.class)
})
public ServeProviderResDTO getDetail(@PathVariable("id") Long id) {
return serveProviderService.findServeProviderInfo(id);
}
@Override
@GetMapping("/batchCityCode")
@ApiOperation("批量获取服务人员或机构所在城市编码")
public Map<Long, String> batchCityCode(@RequestParam(value = "ids") List<Long> ids) {
return serveProviderSettingsService.findManyCityCodeOfServeProvider(ids);
}
@Override
public Map<Long, Integer> batchGetProviderType(List<Long> ids) {
return null;
}
@Override
public List<ServeProviderSimpleResDTO> batchGet(List<Long> ids) {
return serveProviderService.batchGet(ids);
}
}

View File

@ -0,0 +1,36 @@
package com.jzo2o.customer.controller.inner;
import com.jzo2o.api.customer.ServeSkillApi;
import com.jzo2o.customer.service.IServeSkillService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 内部接口-服务技能相关接口
*
* @author itcast
* @create 2023/7/25 10:36
**/
@RestController
@RequestMapping("/inner/serve-skill")
@Api(tags = "内部接口 - 服务技能相关接口")
public class InnerServeSkillController implements ServeSkillApi {
@Resource
private IServeSkillService serveSkillService;
@Override
@GetMapping("/queryServeSkillListByServeProvider")
@ApiOperation("查询服务者的服务技能")
public List<Long> queryServeSkillListByServeProvider(@RequestParam("providerId") Long providerId,
@RequestParam("providerType") Integer providerType,
@RequestParam("cityCode") String cityCode) {
return serveSkillService.queryServeSkillListByServeProvider(providerId, providerType, cityCode);
}
}

View File

@ -0,0 +1,46 @@
package com.jzo2o.customer.controller.open;
import com.jzo2o.common.constants.UserType;
import com.jzo2o.customer.model.dto.request.LoginForCustomerReqDTO;
import com.jzo2o.customer.model.dto.request.LoginForWorkReqDTO;
import com.jzo2o.customer.model.dto.response.LoginResDTO;
import com.jzo2o.customer.service.ILoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author itcast
*/
@RestController("openLoginController")
@RequestMapping("/open/login")
@Api(tags = "白名单接口 - 客户登录相关接口")
public class LoginController {
@Resource
private ILoginService loginService;
@PostMapping("/worker")
@ApiOperation("服务人员/机构人员登录接口")
public LoginResDTO loginForWorker(@RequestBody LoginForWorkReqDTO loginForWorkReqDTO) {
if(UserType.INSTITUTION == loginForWorkReqDTO.getUserType()){
return loginService.loginForPassword(loginForWorkReqDTO);
}else{
return loginService.loginForVerify(loginForWorkReqDTO);
}
}
/**
* c端用户登录接口
*/
@PostMapping("/common/user")
@ApiOperation("c端用户登录接口")
public LoginResDTO loginForCommonUser(@RequestBody LoginForCustomerReqDTO loginForCustomerReqDTO) {
return loginService.loginForCommonUser(loginForCustomerReqDTO);
}
}

View File

@ -0,0 +1,31 @@
package com.jzo2o.customer.controller.operation;
import cn.hutool.core.bean.BeanUtil;
import com.jzo2o.customer.model.dto.response.AgencyCertificationResDTO;
import com.jzo2o.customer.service.IAgencyCertificationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author itcast
*/
@RestController("operationAgencyCertificationController")
@RequestMapping("/operation/agency-certification")
@Api(tags = "运营端 - 机构认证信息相关接口")
public class AgencyCertificationController {
@Resource
private IAgencyCertificationService agencyCertificationService;
@GetMapping("/{id}")
@ApiOperation("根据机构id查询认证信息")
public AgencyCertificationResDTO queryById(@PathVariable("id") Long id) {
return BeanUtil.toBean(agencyCertificationService.getById(id), AgencyCertificationResDTO.class);
}
}

View File

@ -0,0 +1,32 @@
package com.jzo2o.customer.controller.operation;
import cn.hutool.core.bean.BeanUtil;
import com.jzo2o.customer.model.dto.response.BankAccountResDTO;
//import com.jzo2o.customer.service.IBankAccountService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author itcast
*/
@RestController("operationBankAccountController")
@RequestMapping("/operation/bank-account")
@Api(tags = "运营端 - 银行账户信息相关接口")
public class BankAccountController {
// @Resource
// private IBankAccountService bankAccountService;
@GetMapping("/{id}")
@ApiOperation("根据服务人员/机构id查询银行账户信息")
public BankAccountResDTO queryByServeProviderId(@PathVariable("id") Long id) {
// return BeanUtil.toBean(bankAccountService.getById(id), BankAccountResDTO.class);
return new BankAccountResDTO();
}
}

View File

@ -0,0 +1,36 @@
package com.jzo2o.customer.controller.operation;
import com.jzo2o.api.customer.dto.request.CommonUserPageQueryReqDTO;
import com.jzo2o.api.customer.dto.request.CommonUserUpdateReqDTO;
import com.jzo2o.api.customer.dto.response.CommonUserResDTO;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.service.ICommonUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author itcast
*/
@RestController("operationCommonUserController")
@RequestMapping("/operation/common-user")
@Api(tags = "运营端 - 普通用户相关接口")
public class CommonUserController {
@Resource
private ICommonUserService commonUserService;
@GetMapping("/page")
@ApiOperation("普通用户分页查询")
public PageResult<CommonUserResDTO> page(CommonUserPageQueryReqDTO commonUserPageQueryReqDTO) {
return commonUserService.page(commonUserPageQueryReqDTO);
}
@PutMapping("/updateStatus")
@ApiOperation("账号冻结/解冻")
public void updateStatus(@RequestBody CommonUserUpdateReqDTO commonUserUpdateReqDTO) {
commonUserService.updateStatus(commonUserUpdateReqDTO);
}
}

View File

@ -0,0 +1,41 @@
package com.jzo2o.customer.controller.operation;
import com.jzo2o.api.customer.dto.request.EvaluationSubmitReqDTO;
import com.jzo2o.common.model.CurrentUserInfo;
import com.jzo2o.customer.model.dto.request.AuditReqDTO;
import com.jzo2o.customer.model.dto.request.EvaluationPageByTargetReqDTO;
import com.jzo2o.customer.model.dto.request.LikeOrCancelReqDTO;
import com.jzo2o.customer.model.dto.response.EvaluationAndOrdersResDTO;
import com.jzo2o.customer.model.dto.response.EvaluationResDTO;
import com.jzo2o.customer.model.dto.response.EvaluationTokenDto;
import com.jzo2o.customer.service.EvaluationService;
import com.jzo2o.mvc.utils.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 评价相关接口
*
* @author itcast
* @create 2023/9/11 16:14
**/
@RestController("operationEvaluationController")
@RequestMapping("/operation/evaluation")
@Api(tags = "运营端 - 评价相关接口")
public class EvaluationController {
@Resource
private EvaluationService evaluationService;
@GetMapping("/token")
@ApiOperation("获取评价系统token")
public EvaluationTokenDto getToken() {
return evaluationService.getEvaluationInfo();
}
}

View File

@ -0,0 +1,38 @@
package com.jzo2o.customer.controller.operation;
import com.jzo2o.api.customer.dto.request.InstitutionStaffPageQueryReqDTO;
import com.jzo2o.api.customer.dto.response.InstitutionStaffResDTO;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.service.IInstitutionStaffService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 运营端 - 机构下属服务人员相关接口
* </p>
*
* @author itcast
* @since 2023-07-03
*/
@Validated
@RestController("operationInstitutionStaffController")
@RequestMapping("/operation/institution-staff")
@Api(tags = "运营端 - 机构下属服务人员相关接口")
public class InstitutionStaffController {
@Resource
private IInstitutionStaffService institutionStaffService;
@GetMapping("/page")
@ApiOperation("分页查询")
public PageResult<InstitutionStaffResDTO> page(InstitutionStaffPageQueryReqDTO institutionStaffPageQueryReqDTO) {
return institutionStaffService.pageQuery(institutionStaffPageQueryReqDTO);
}
}

View File

@ -0,0 +1,72 @@
package com.jzo2o.customer.controller.operation;
import com.jzo2o.api.customer.dto.request.ServerProviderUpdateStatusReqDTO;
import com.jzo2o.api.customer.dto.response.ServeProviderResDTO;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.dto.request.ServeProviderPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderBasicInformationResDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderListResDTO;
import com.jzo2o.customer.service.IServeProviderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
/**
* <p>
* 服务人员/机构相关接口
* </p>
*
* @author itcast
* @since 2023-07-03
*/
@Validated
@RestController("operationServeProviderController")
@RequestMapping("/operation/serve-provider")
@Api(tags = "运营端 - 服务人员或机构相关接口")
public class ServeProviderController {
@Resource
private IServeProviderService serveProviderService;
@GetMapping("/pageQueryAgency")
@ApiOperation("机构分页查询")
public PageResult<ServeProviderListResDTO> pageQueryAgency(ServeProviderPageQueryReqDTO serveProviderPageQueryReqDTO) {
return serveProviderService.pageQueryAgency(serveProviderPageQueryReqDTO);
}
@GetMapping("/pageQueryWorker")
@ApiOperation("服务人员分页查询")
public PageResult<ServeProviderListResDTO> pageQueryWorker(ServeProviderPageQueryReqDTO serveProviderPageQueryReqDTO) {
return serveProviderService.pageQueryWorker(serveProviderPageQueryReqDTO);
}
@GetMapping("/{id}")
@ApiOperation("服务人员/机构详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "服务人员/机构id", required = true, dataTypeClass = Long.class)
})
public ServeProviderResDTO detail(@NotNull(message = "id不能为空") @PathVariable("id") Long id) {
return serveProviderService.findServeProviderInfo(id);
}
@PutMapping("/updateStatus")
@ApiOperation("账号冻结/解冻")
public void updateStatus(@RequestBody ServerProviderUpdateStatusReqDTO serverProviderUpdateStatusReqDTO) {
serveProviderService.updateStatus(serverProviderUpdateStatusReqDTO);
}
@GetMapping("/basicInformation/{id}")
@ApiOperation("服务人员/机构基本信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "服务人员/机构id", required = true, dataTypeClass = Long.class)
})
public ServeProviderBasicInformationResDTO findBasicInformationById(@NotNull(message = "id不能为空") @PathVariable("id") Long id) {
return serveProviderService.findBasicInformationById(id);
}
}

View File

@ -0,0 +1,31 @@
package com.jzo2o.customer.controller.operation;
import cn.hutool.core.bean.BeanUtil;
import com.jzo2o.customer.model.dto.response.WorkerCertificationResDTO;
import com.jzo2o.customer.service.IWorkerCertificationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author itcast
*/
@RestController("operationWorkerCertificationController")
@RequestMapping("/operation/worker-certification")
@Api(tags = "运营端 - 服务人员认证信息相关接口")
public class WorkerCertificationController {
@Resource
private IWorkerCertificationService workerCertificationService;
@GetMapping("/{id}")
@ApiOperation("根据服务人员id查询认证信息")
public WorkerCertificationResDTO queryById(@PathVariable("id") Long id) {
return BeanUtil.toBean(workerCertificationService.getById(id), WorkerCertificationResDTO.class);
}
}

View File

@ -0,0 +1,44 @@
package com.jzo2o.customer.controller.worker;
import com.jzo2o.customer.model.dto.request.EvaluationPageByTargetReqDTO;
import com.jzo2o.customer.model.dto.response.EvaluationAndOrdersResDTO;
import com.jzo2o.customer.model.dto.response.EvaluationResDTO;
import com.jzo2o.customer.service.EvaluationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 评价相关接口
*
* @author itcast
* @create 2023/9/11 16:14
**/
@RestController("workerEvaluationController")
@RequestMapping("/worker/evaluation")
@Api(tags = "服务端 - 评价相关接口")
public class EvaluationController {
@Resource
private EvaluationService evaluationService;
@GetMapping("/pageByCurrentUserAndScoreLevel")
@ApiOperation("根据评价等级分页查询当前用户评价列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "scoreLevel", value = "评价等级1差评2中评3好评", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "pageNo", value = "页码默认为1", defaultValue = "1", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "pageSize", value = "页面大小默认为10", defaultValue = "10", dataTypeClass = Integer.class)
})
public List<EvaluationAndOrdersResDTO> pageByCurrentUserAndScoreLevel(@RequestParam(value = "scoreLevel", required = false) Integer scoreLevel,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
return evaluationService.pageByCurrentUserAndScoreLevel(scoreLevel,pageNo, pageSize);
}
}

View File

@ -0,0 +1,32 @@
package com.jzo2o.customer.controller.worker;
import com.jzo2o.customer.model.dto.response.ServeProviderInfoResDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderSettingsGetResDTO;
import com.jzo2o.customer.service.IServeProviderService;
import com.jzo2o.customer.service.IServeProviderSettingsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author 86188
*/
@RestController("workerServeProviderController")
@RequestMapping("/worker/serve-provider")
@Api(tags = "服务端 - 服务人员相关接口")
public class ServeProviderController {
@Resource
private IServeProviderService serveProviderService;
@GetMapping("/currentUserInfo")
@ApiOperation("获取当前用户信息")
public ServeProviderInfoResDTO currentUserInfo() {
return serveProviderService.currentUserInfo();
}
}

View File

@ -0,0 +1,52 @@
package com.jzo2o.customer.controller.worker;
import com.jzo2o.customer.model.dto.request.ServePickUpReqDTO;
import com.jzo2o.customer.model.dto.request.ServeScopeSetReqDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderSettingsGetResDTO;
import com.jzo2o.customer.model.dto.response.ServeSettingsStatusResDTO;
import com.jzo2o.customer.service.IServeProviderSettingsService;
import com.jzo2o.mvc.utils.UserContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author 86188
*/
@RestController("workerServeProviderSettingsController")
@RequestMapping("/worker/serve-settings")
@Api(tags = "服务端 - 服务设置相关接口")
public class ServeProviderSettingsController {
@Resource
private IServeProviderSettingsService serveProviderSettingsService;
@PutMapping("/serve-scope")
@ApiOperation("服务范围设置")
public void setServeScope(@RequestBody @Validated ServeScopeSetReqDTO serveScopeSetReqDTO) {
serveProviderSettingsService.setServeScope(serveScopeSetReqDTO);
}
@GetMapping
@ApiOperation("获取设置")
public ServeProviderSettingsGetResDTO getServeScope() {
return serveProviderSettingsService.getServeScope();
}
@PutMapping("/pick-up")
@ApiOperation("接单设置")
public void setPickUp(@RequestBody ServePickUpReqDTO servePickUpReqDTO) {
// serveProviderSettingsService.setPickUp(servePickUpReqDTO);
serveProviderSettingsService.setPickUp(UserContext.currentUserId(), servePickUpReqDTO.getCanPickUp());
}
@GetMapping("/status")
@ApiOperation("获取所有设置状态")
public ServeSettingsStatusResDTO getStatus() {
return serveProviderSettingsService.getSettingStatus();
}
}

View File

@ -0,0 +1,54 @@
package com.jzo2o.customer.controller.worker;
import com.jzo2o.api.foundations.dto.response.ServeItemSimpleResDTO;
import com.jzo2o.api.foundations.dto.response.ServeTypeSimpleResDTO;
import com.jzo2o.customer.model.dto.request.ServeSkillAddReqDTO;
import com.jzo2o.customer.model.dto.response.ServeSkillCategoryResDTO;
import com.jzo2o.customer.service.IServeSkillService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 服务技能表 前端控制器
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@RestController("workerServeSkillController")
@RequestMapping("/worker/serve-skill")
@Api(tags = "服务端 - 服务技能相关接口")
public class ServeSkillController {
@Resource
private IServeSkillService serveSkillService;
@PostMapping("/batchUpsert")
@ApiOperation("批量新增或修改服务技能")
public void listServeType(@RequestBody List<ServeSkillAddReqDTO> serveSkillAddReqDTOList) {
serveSkillService.batchUpsert(serveSkillAddReqDTOList);
}
@GetMapping("/category")
@ApiOperation("查询服务技能目录")
public List<ServeSkillCategoryResDTO> category() {
return serveSkillService.category();
}
@GetMapping("/queryCurrentUserServeSkillTypeList")
@ApiOperation("查询当前用户的服务技能类型")
public List<ServeTypeSimpleResDTO> queryCurrentUserServeSkillTypeList() {
return serveSkillService.queryCurrentUserServeSkillTypeList();
}
@GetMapping("/queryCurrentUserServeSkillItemList")
@ApiOperation("查询当前用户的服务技能")
public List<ServeItemSimpleResDTO> queryCurrentUserServeSkillItemList() {
return serveSkillService.queryCurrentUserServeSkillItemList();
}
}

View File

@ -0,0 +1,26 @@
package com.jzo2o.customer.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author itcast
*/
@Getter
@AllArgsConstructor
public enum CertificationStatusEnum {
INIT(0, "初始态"),
PROGRESSING(1, "认证中"),
SUCCESS(2, "认证成功"),
FAIL(3, "认证失败");
/**
* 状态值
*/
private final int status;
/**
* 描述
*/
private final String description;
}

View File

@ -0,0 +1,62 @@
//package com.jzo2o.customer.handler;
//
//import com.jzo2o.canal.listeners.AbstractCanalRabbitMqMsgListener;
//import com.jzo2o.common.expcetions.BadRequestException;
//import com.jzo2o.common.expcetions.CommonException;
//import com.jzo2o.common.model.Location;
//import com.jzo2o.common.utils.BeanUtils;
//import com.jzo2o.common.utils.CollUtils;
//import com.jzo2o.customer.constants.EsIndexConstants;
//import com.jzo2o.customer.model.domain.ServeProviderInfo;
//import com.jzo2o.customer.model.domain.ServeProviderSync;
//import com.jzo2o.es.core.ElasticSearchTemplate;
//import lombok.Data;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.core.ExchangeTypes;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.Exchange;
//import org.springframework.amqp.rabbit.annotation.Queue;
//import org.springframework.amqp.rabbit.annotation.QueueBinding;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.List;
//
///**
// * @author 86188
// */
//@Data
//@Component
//@Slf4j
//public class ServeProviderHandler extends AbstractCanalRabbitMqMsgListener<ServeProviderSync> {
// @Resource
// private ElasticSearchTemplate elasticSearchTemplate;
//
// @RabbitListener(bindings = @QueueBinding(
// value = @Queue(name = "canal-mq-jzo2o-customer-provider"),
// exchange = @Exchange(name = "exchange.canal-jzo2o", type = ExchangeTypes.TOPIC),
// key = "canal-mq-jzo2o-customer-provider"),
// concurrency = "1"
// )
// public void onMessage(Message message) throws Exception {
// parseMsg(message);
// }
//
// @Override
// public void batchSave(List<ServeProviderSync> data) {
// List<ServeProviderInfo> serveProviderInfos = BeanUtils.copyToList(data, ServeProviderInfo.class, (sync, info) -> {
// info.setLocation(new Location(sync.getLon(), sync.getLat()));
// });
// log.debug("serveProviderInfos : {}", serveProviderInfos);
//
// if(!elasticSearchTemplate.opsForDoc().batchUpsert(EsIndexConstants.SERVE_PROVIDER_INFO, serveProviderInfos)){
// throw new CommonException("服务人员或机构信息同步异常");
// }
// }
//
// @Override
// public void batchDelete(List<Long> ids) {
// elasticSearchTemplate.opsForDoc().batchDelete(EsIndexConstants.SERVE_PROVIDER_INFO, ids);
// }
//}

View File

@ -0,0 +1,39 @@
//package com.jzo2o.customer.handler;
//
//import com.jzo2o.rabbitmq.plugins.ErrorMessageRecoverer;
//import com.jzo2o.rabbitmq.plugins.RabbitMqResender;
//import com.xxl.job.core.handler.annotation.XxlJob;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
///**
// * xxl-job定时任务
// */
//@Component
//@Slf4j
//public class XxlJobHandler {
//
// @Resource
// private RabbitMqResender rabbitMqResender;
//
// /**
// * rabbitmq异常消息拉取并重新发回队列
// */
// @XxlJob("rabbitmqErrorMsgPullAndResend")
// public void rabbitmqErrorMsgPullAndResend(){
//
// log.debug("rabbitmq异常消息重新");
// for (int count = 0; count < 100; count++) {
// try {
// if(!rabbitMqResender.getOneMessageAndProcess()) {
// break;
// }
// }catch (Exception e){
// log.error("rabbitmq异常消息拉取失败,e:",e);
// }
// }
// }
//
//}

View File

@ -0,0 +1,63 @@
//package com.jzo2o.customer.listener;
//
//import cn.hutool.core.util.NumberUtil;
//import cn.hutool.core.util.ObjectUtil;
//import cn.hutool.json.JSONUtil;
//import com.jzo2o.common.constants.MqConstants;
//import com.jzo2o.customer.model.dto.ScoreStatisticsMsg;
//import com.jzo2o.customer.properties.EvaluationProperties;
//import com.jzo2o.customer.service.IServeProviderService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.core.ExchangeTypes;
//import org.springframework.amqp.rabbit.annotation.Exchange;
//import org.springframework.amqp.rabbit.annotation.Queue;
//import org.springframework.amqp.rabbit.annotation.QueueBinding;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
///**
// * 监听mq消息
// *
// * @author itcast
// **/
//@Slf4j
//@Component
//public class EvaluationListener {
// @Resource
// private EvaluationProperties evaluationProperties;
// @Resource
// private IServeProviderService serveProviderService;
//
// /**
// *
// * @param msg 消息
// */
// @RabbitListener(bindings = @QueueBinding(
// value = @Queue(name = MqConstants.Queues.SCORE_STATISTICS),
// exchange = @Exchange(name = MqConstants.Exchanges.EVALUATION_SCORE, type = ExchangeTypes.TOPIC),
// key = MqConstants.RoutingKeys.SCORE_STATISTICS
// ))
// public void listenTradeUpdatePayStatusMsg(String msg) {
// log.info("接收到评价系统评分同步的消息 ({})-> {}", MqConstants.Queues.SCORE_STATISTICS, msg);
// ScoreStatisticsMsg scoreStatisticsMsg = JSONUtil.toBean(msg, ScoreStatisticsMsg.class);
//
// //如果是服务项评分数据直接跳过
// if (ObjectUtil.equal(scoreStatisticsMsg.getTargetTypeId(), evaluationProperties.getServeItem().getTargetTypeId())) {
// return;
// }
//
// Long scoreCount = scoreStatisticsMsg.getScoreCount();
// Long goodLevelCount = scoreStatisticsMsg.getGoodLevelCount();
//
// //综合评分
// Double score = (null == scoreCount) ? 5.0 : NumberUtil.round(scoreStatisticsMsg.getTotalScore() * 1.0 / scoreCount, 1).doubleValue();
//
// //好评率
// String goodLevelRate =(null == scoreCount) ? "0.0%" : NumberUtil.decimalFormat("#.##%", NumberUtil.div(goodLevelCount, scoreCount, 4));
//
// //更新分数
// serveProviderService.updateScoreById(Long.valueOf(scoreStatisticsMsg.getTargetId()), score, goodLevelRate);
// }
//}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.AddressBook;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 地址薄 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-06
*/
public interface AddressBookMapper extends BaseMapper<AddressBook> {
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.AgencyCertification;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 机构认证信息表 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-09-06
*/
public interface AgencyCertificationMapper extends BaseMapper<AgencyCertification> {
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.CommonUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-04
*/
public interface CommonUserMapper extends BaseMapper<CommonUser> {
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.InstitutionStaff;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 机构下属服务人员 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-18
*/
public interface InstitutionStaffMapper extends BaseMapper<InstitutionStaff> {
}

View File

@ -0,0 +1,46 @@
package com.jzo2o.customer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jzo2o.customer.model.domain.ServeProvider;
import com.jzo2o.customer.model.dto.request.ServeProviderPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderBasicInformationResDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderListResDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 服务人员/机构表 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-17
*/
public interface ServeProviderMapper extends BaseMapper<ServeProvider> {
/**
* 分页查询服务人员
*
* @param serveProviderPageQueryReqDTO 分页查询请求体
* @return 服务人员列表
*/
List<ServeProviderListResDTO> queryWorkerList(ServeProviderPageQueryReqDTO serveProviderPageQueryReqDTO);
/**
* 分页查询机构
*
* @param serveProviderPageQueryReqDTO 分页查询请求体
* @return 机构列表
*/
List<ServeProviderListResDTO> queryAgencyList(ServeProviderPageQueryReqDTO serveProviderPageQueryReqDTO);
/**
* 根据服务人员/机构id查询基本信息
*
* @param id 服务人员/机构id
* @return 基本信息
*/
ServeProviderBasicInformationResDTO findBasicInformationById(@Param("id") Long id);
}

View File

@ -0,0 +1,23 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.ServeProviderSettings;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* 服务人员/机构附属信息 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-20
*/
public interface ServeProviderSettingsMapper extends BaseMapper<ServeProviderSettings> {
@Select("<script>select id,city_code as cityCode from serve_provider_settings where id in (<foreach collection='ids' item='id' separator=','>#{id}</foreach>)</script>")
List<ServeProviderSettings> batchQueryCityCodeByIds(@Param("ids") List<Long> ids);
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.ServeProviderSync;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 评分同步列表 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-08-07
*/
public interface ServeProviderSyncMapper extends BaseMapper<ServeProviderSync> {
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.ServeSkill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 服务技能表 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-07-18
*/
public interface ServeSkillMapper extends BaseMapper<ServeSkill> {
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.mapper;
import com.jzo2o.customer.model.domain.WorkerCertification;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 服务人员认证信息表 Mapper 接口
* </p>
*
* @author itcast
* @since 2023-09-06
*/
public interface WorkerCertificationMapper extends BaseMapper<WorkerCertification> {
}

View File

@ -0,0 +1,111 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 地址薄
* </p>
*
* @author itcast
* @since 2023-07-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("address_book")
public class AddressBook implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 名称
*/
private String name;
/**
* 电话
*/
private String phone;
/**
* 省份
*/
private String province;
/**
* 市级
*/
private String city;
/**
* /
*/
private String county;
/**
* 详细地址
*/
private String address;
/**
* 经度
*/
private Double lon;
/**
* 纬度
*/
private Double lat;
/**
* 是否为默认地址01
*/
private Integer isDefault;
/**
* 是否已删除0未删除1已删除
*/
private Integer isDeleted;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private Long createBy;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateBy;
}

View File

@ -0,0 +1,80 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 机构认证信息表
* </p>
*
* @author itcast
* @since 2023-09-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("agency_certification")
public class AgencyCertification implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 机构id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 企业名称
*/
private String name;
/**
* 统一社会信用代码
*/
private String idNumber;
/**
* 法人姓名
*/
private String legalPersonName;
/**
* 法人身份证号
*/
private String legalPersonIdCardNo;
/**
* 营业执照
*/
private String businessLicense;
/**
* 认证状态
*/
private Integer certificationStatus;
/**
* 认证时间
*/
private LocalDateTime certificationTime;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,79 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author itcast
* @since 2023-07-04
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("common_user")
public class CommonUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
@TableId(value = "id", type = IdType.NONE)
private Long id;
/**
* 状态0正常1冻结
*/
private Integer status;
/**
* 昵称
*/
private String nickname;
/**
* 电话
*/
private String phone;
/**
* 头像
*/
private String avatar;
/**
* openId
*/
private String openId;
/**
* 账号冻结原因
*/
private String accountLockReason;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 是否已删除0未删除1已删除
*/
private Integer isDeleted;
}

View File

@ -0,0 +1,83 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 机构下属服务人员
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "institution_staff", autoResultMap = true)
public class InstitutionStaff implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 服务机构id
*/
private Long institutionId;
/**
* 编号
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 电话
*/
private String phone;
/**
* 身份证号
*/
private String idCardNo;
/**
* 证明资料列表
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private List<String> certificationImgs;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 是否已删除0未删除1已删除
*/
private Integer isDeleted;
}

View File

@ -0,0 +1,104 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 服务人员/机构表
* </p>
*
* @author itcast
* @since 2023-07-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("serve_provider")
public class ServeProvider implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 编号
*/
private String code;
/**
* 类型2服务人员3服务机构
*/
private Integer type;
/**
* 姓名
*/
private String name;
/**
* 电话
*/
private String phone;
/**
* 头像
*/
private String avatar;
/**
* 状态0正常1冻结
*/
private Integer status;
/**
* 首次设置状态0未完成设置1已完成设置
*/
private Integer settingsStatus;
/**
* 机构登录密码
*/
private String password;
/**
* 账号冻结原因
*/
private String accountLockReason;
/**
* 综合评分
*/
private Double score;
/**
* 好评率
*/
private String goodLevelRate;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 是否已删除0未删除1已删除
*/
private Integer isDeleted;
}

View File

@ -0,0 +1,63 @@
package com.jzo2o.customer.model.domain;
import com.jzo2o.common.model.Location;
import lombok.Data;
import java.util.List;
@Data
public class ServeProviderInfo {
/**
* 服务人员或机构同步表
*/
private Long id;
/**
* 服务人类型2服务人员3机构
*/
private Integer serveProviderType;
/**
* 技能列表
*/
private List<Long> serveItemIds;
/**
* 经纬度
*/
private Location location;
/**
* 城市编码
*/
private String cityCode;
/**
* 接单开关1接单开启0接单关闭
*/
private Integer pickUp;
/**
* 评分,默认50分
*/
private Double evaluationScore;
/**
* 服务时间
*/
private List<Integer> serveTimes;
/**
* 接单数
*/
private Integer acceptanceNum;
/**
* 首次设置状态0未完成1已完成设置
*/
private Integer settingStatus;
/**
* 状态0正常1冻结
*/
private Integer status;
}

View File

@ -0,0 +1,76 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 服务人员/机构附属信息
* </p>
*
* @author itcast
* @since 2023-07-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("serve_provider_settings")
public class ServeProviderSettings implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 服务人员/机构id
*/
@TableId(value = "id", type = IdType.NONE)
private Long id;
/**
* 城市码
*/
private String cityCode;
/**
* 城市名称
*/
private String cityName;
/**
* 经度
*/
private Double lon;
/**
* 纬度
*/
private Double lat;
/**
* 意向单范围
*/
private String intentionScope;
/**
* 是否有技能
*/
private Integer haveSkill;
/**
* 是否可以接单0关闭接单1开启接单
*/
private Integer canPickUp;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private Integer isDeleted;
}

View File

@ -0,0 +1,87 @@
package com.jzo2o.customer.model.domain;
import com.jzo2o.common.model.Location;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 评分同步列表
* </p>
*
* @author itcast
* @since 2023-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "serve_provider_sync",autoResultMap = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServeProviderSync implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 服务人员或机构同步表
*/
@TableId(value = "id", type = IdType.NONE)
private Long id;
/**
* 技能列表
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private List<Long> serveItemIds;
/**
* 服务者类型2服务人员3机构人员
*/
private Integer serveProviderType;
/**
* 经度
*/
private Double lon;
/**
* 纬度
*/
private Double lat;
/**
* 城市编码
*/
private String cityCode;
/**
* 接单开关1接单开启0接单关闭
*/
private Integer pickUp;
/**
* 评分,默认50分
*/
private Double evaluationScore;
/**
* 首次设置状态0未完成1已完成设置
*/
private Integer settingStatus;
/**
* 状态0正常1冻结
*/
private Integer status;
}

View File

@ -0,0 +1,78 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 服务技能表
* </p>
*
* @author itcast
* @since 2023-07-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("serve_skill")
public class ServeSkill implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 服务人员/机构id
*/
private Long serveProviderId;
/**
* 类型2服务人员3服务机构
*/
private Integer serveProviderType;
/**
* 服务类型id
*/
private Long serveTypeId;
/**
* 服务类型名称
*/
private String serveTypeName;
/**
* 服务项id
*/
private Long serveItemId;
/**
* 服务项名称
*/
private String serveItemName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 是否已删除0未删除1已删除
*/
private Integer isDelete;
}

View File

@ -0,0 +1,80 @@
package com.jzo2o.customer.model.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 服务人员认证信息表
* </p>
*
* @author itcast
* @since 2023-09-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("worker_certification")
public class WorkerCertification implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 服务人员id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 姓名
*/
private String name;
/**
* 身份证号
*/
private String idCardNo;
/**
* 身份证正面
*/
private String frontImg;
/**
* 身份证反面
*/
private String backImg;
/**
* 证明资料
*/
private String certificationMaterial;
/**
* 认证状态0初始态1认证中2认证成功3认证失败
*/
private Integer certificationStatus;
/**
* 认证时间
*/
private LocalDateTime certificationTime;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,60 @@
package com.jzo2o.customer.model.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 机构认证信息更新模型
*
* @author itcast
* @create 2023/9/6 10:49
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgencyCertificationUpdateDTO {
/**
* 机构id
*/
private Long id;
/**
* 企业名称
*/
private String name;
/**
* 统一社会信用代码
*/
private String idNumber;
/**
* 法人姓名
*/
private String legalPersonName;
/**
* 法人身份证号
*/
private String legalPersonIdCardNo;
/**
* 营业执照
*/
private String businessLicense;
/**
* 认证状态
*/
private Integer certificationStatus;
/**
* 认证时间
*/
private LocalDateTime certificationTime;
}

View File

@ -0,0 +1,69 @@
package com.jzo2o.customer.model.dto;
import com.jzo2o.api.customer.dto.request.ScoreItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 评价提交对象
*
* @author itcast
* @create 2023/4/22 10:32
**/
@Data
@ApiModel("评价提交对象")
public class EvaluationSubmitDTO {
/**
* 评价对象id
*/
@ApiModelProperty(value = "评价对象id", required = true)
private String targetId;
/**
* 关联id如订单id
*/
@ApiModelProperty("关联id如订单id")
private String relationId;
/**
* 评价对象名称
*/
@ApiModelProperty("评价对象名称")
private String targetName;
/**
* 所属人id
*/
@ApiModelProperty("所属人id")
private String ownerId;
/**
* 是否匿名
*/
@ApiModelProperty(value = "是否匿名,0为未匿名1为匿名", required = true)
private Integer isAnonymous;
/**
* 评价分数
*/
@ApiModelProperty("评价分数")
private ScoreItem[] scoreArray;
/**
* 评价内容
*/
@ApiModelProperty("评价内容")
private String content;
/**
* 评价图片列表
*/
@ApiModelProperty("评价图片列表")
private String[] pictureArray;
/**
* 非前端传入在controller层设置
*/
private String ip;
}

View File

@ -0,0 +1,22 @@
package com.jzo2o.customer.model.dto;
import lombok.Data;
/**
* 关联id对应评分数据
*
* @author itcast
* @create 2023/9/16 10:28
**/
@Data
public class RelationScoreDTO {
/**
* 关联id
*/
private String relationId;
/**
* 评分
*/
private Double score;
}

View File

@ -0,0 +1,68 @@
package com.jzo2o.customer.model.dto;
import lombok.Data;
/**
* mq消息 - 评分统计数据
*
* @author itcast
* @create 2023/9/14 15:56
**/
@Data
public class ScoreStatisticsMsg {
/**
* 对象类型id
*/
private String targetTypeId;
/**
* 对象id
*/
private String targetId;
/**
* 对象名称
*/
private String targetName;
/**
* 评分项id如果综合评分设为0
*/
private String itemId;
/**
* 差评数量
*/
private Long badLevelCount;
/**
* 中评数量
*/
private Long middleLevelCount;
/**
* 好评数量
*/
private Long goodLevelCount;
/**
* 总评价数
*/
private Long count;
/**
* 总评分数
*/
private Long scoreCount;
/**
* 总分
*/
private Double totalScore;
/**
* 平均分
*/
private Double averageScore;
}

View File

@ -0,0 +1,22 @@
package com.jzo2o.customer.model.dto;
import lombok.Data;
/**
* 服务技能简略信息
*
* @author itcast
* @create 2023/9/6 17:12
**/
@Data
public class ServeSkillSimpleDTO {
/**
* 服务类型名称
*/
private String serveTypeName;
/**
* 服务项名称
*/
private String serveItemName;
}

View File

@ -0,0 +1,55 @@
package com.jzo2o.customer.model.dto;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 服务人员认证更新模型
*
* @author itcast
* @create 2023/9/6 11:37
**/
@Data
public class WorkerCertificationUpdateDTO {
/**
* 服务人员id
*/
private Long id;
/**
* 姓名
*/
private String name;
/**
* 身份证号
*/
private String idCardNo;
/**
* 身份证正面
*/
private String frontImg;
/**
* 身份证反面
*/
private String backImg;
/**
* 证明资料
*/
private String certificationMaterial;
/**
* 认证状态0初始态1认证中2认证成功3认证失败
*/
private Integer certificationStatus;
/**
* 认证时间
*/
private LocalDateTime certificationTime;
}

View File

@ -0,0 +1,18 @@
package com.jzo2o.customer.model.dto.request;
import com.jzo2o.common.model.dto.PageQueryDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* <p>
* 地址薄分页查询请求
* </p>
*
* @author itcast
* @since 2023-07-06
*/
@Data
@ApiModel("地址薄分页查询请求")
public class AddressBookPageQueryReqDTO extends PageQueryDTO {
}

View File

@ -0,0 +1,75 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* <p>
* 地址薄新增更新
* </p>
*
* @author itcast
* @since 2023-07-06
*/
@Data
@ApiModel("地址薄新增更新")
public class AddressBookUpsertReqDTO {
/**
* 名称
*/
@NotNull(message = "名称不能为空")
@ApiModelProperty(value = "名称", required = true)
private String name;
/**
* 电话
*/
@NotNull(message = "电话不能为空")
@ApiModelProperty(value = "电话", required = true)
private String phone;
/**
* 省份
*/
@NotNull(message = "省份不能为空")
@ApiModelProperty(value = "省份", required = true)
private String province;
/**
* 市级
*/
@NotNull(message = "市级不能为空")
@ApiModelProperty(value = "市级", required = true)
private String city;
/**
* /
*/
@NotNull(message = "区/县不能为空")
@ApiModelProperty(value = "区/县", required = true)
private String county;
/**
* 详细地址
*/
@NotNull(message = "详细地址不能为空")
@ApiModelProperty(value = "详细地址", required = true)
private String address;
/**
* 是否为默认地址01
*/
@NotNull(message = "是否为默认地址不能为空")
@ApiModelProperty(value = "是否为默认地址01", required = true)
private Integer isDefault;
/**
* 经纬度
*/
@ApiModelProperty(value = "经纬度")
private String location;
}

View File

@ -0,0 +1,33 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 机构认证申请
*
* @author itcast
* @create 2023/9/6 09:30
**/
@Data
@ApiModel("机构认证申请")
public class AgencyCertificationAuditAddReqDTO {
@ApiModelProperty(value = "机构id", required = false)
private Long serveProviderId;
@ApiModelProperty(value = "企业名称", required = true)
private String name;
@ApiModelProperty(value = "统一社会信用代码", required = true)
private String idNumber;
@ApiModelProperty(value = "法人姓名", required = true)
private String legalPersonName;
@ApiModelProperty(value = "法人身份证号", required = true)
private String legalPersonIdCardNo;
@ApiModelProperty(value = "营业执照", required = true)
private String businessLicense;
}

View File

@ -0,0 +1,40 @@
package com.jzo2o.customer.model.dto.request;
import com.jzo2o.common.model.dto.PageQueryDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 机构分页查询请求
*
* @author itcast
* @create 2023/9/6 13:52
**/
@Data
@ApiModel("机构分页查询请求")
public class AgencyCertificationAuditPageQueryReqDTO extends PageQueryDTO {
/**
* 企业名称
*/
@ApiModelProperty("企业名称")
private String name;
/**
* 法人姓名
*/
@ApiModelProperty("法人姓名")
private String legalPersonName;
/**
* 审核状态0未审核1已审核
*/
@ApiModelProperty("审核状态0未审核1已审核")
private Integer auditStatus;
/**
* 认证状态2认证通过3认证失败
*/
@ApiModelProperty("认证状态2认证通过3认证失败")
private Integer certificationStatus;
}

View File

@ -0,0 +1,39 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户提交举报信息
*
* @author itcast
* @create 2023/6/2 15:47
**/
@Data
@ApiModel("用户提交举报信息")
public class AuditReqDTO {
/**
* 对象类型id
*/
@ApiModelProperty(value = "审核id", required = true)
private String targetTypeId;
/**
* 业务类型1评价3回复
*/
@ApiModelProperty(value = "业务类型。1评价3回复", required = true)
private Integer bizType = 1;
/**
* 业务id评价/回复id
*/
@ApiModelProperty(value = "业务id评价/回复id", required = true)
private String bizId;
/**
* 审核原因
*/
@ApiModelProperty(value = "审核原因", required = true)
private Integer reason;
}

View File

@ -0,0 +1,80 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 银行账户新增或更新请求体
* </p>
*
* @author itcast
* @since 2023-09-06
*/
@Data
@ApiModel("银行账户新增或更新请求体")
public class BankAccountUpsertReqDTO implements Serializable {
/**
* 服务人员/机构id
*/
@ApiModelProperty(value = "服务人员/机构id", required = false)
private Long id;
/**
* 类型2服务人员3服务机构
*/
@ApiModelProperty(value = "类型2服务人员3服务机构", required = false)
private Integer type;
/**
* 户名
*/
@ApiModelProperty(value = "户名", required = true)
private String name;
/**
* 银行名称
*/
@ApiModelProperty(value = "银行名称", required = true)
private String bankName;
/**
*
*/
@ApiModelProperty(value = "", required = true)
private String province;
/**
*
*/
@ApiModelProperty(value = "", required = true)
private String city;
/**
*
*/
@ApiModelProperty(value = "", required = true)
private String district;
/**
* 网点
*/
@ApiModelProperty(value = "网点", required = true)
private String branch;
/**
* 银行账号
*/
@ApiModelProperty(value = "银行账号", required = true)
private String account;
/**
* 开户证明
*/
@ApiModelProperty(value = "开户证明", required = true)
private String accountCertification;
}

View File

@ -0,0 +1,21 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 认证信息审核请求体
*
* @author itcast
* @create 2023/9/6 10:30
**/
@Data
@ApiModel("认证信息审核请求体")
public class CertificationAuditReqDTO {
@ApiModelProperty(value = "认证状态2认证成功3认证失败", required = true)
private Integer certificationStatus;
@ApiModelProperty(value = "驳回原因", required = false)
private String rejectReason;
}

View File

@ -0,0 +1,31 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 根据对象属性分页查询评价请求
*
* @author itcast
* @create 2023/9/11 21:19
**/
@Data
@ApiModel("根据对象属性分页查询评价请求")
public class EvaluationPageByTargetReqDTO {
@ApiModelProperty(value = "评价类型id6服务评价7师傅评价",required = true)
private String targetTypeId;
@ApiModelProperty("评价对象id服务评价 - 服务项id师傅评价 - 服务人员/机构id")
private String targetId;
@ApiModelProperty("页码默认为1")
private Integer pageNo;
@ApiModelProperty(value = "页面大小默认为10")
private Integer pageSize;
@ApiModelProperty(value = "排序字段1为按评价时间排序2为按热度排序", required = true)
private Integer sortBy;
}

View File

@ -0,0 +1,26 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author 86188
*/
@Data
@ApiModel("机构注册信息")
public class InstitutionRegisterReqDTO {
@ApiModelProperty(value = "机构注册手机号",required = true)
@NotNull(message = "注册手机号不能为空")
private String phone;
@ApiModelProperty(value = "注册密码",required = true)
@NotNull(message = "密码输入格式错误,请重新输入")
@Size(max = 16, min = 8, message = "密码输入格式错误,请重新输入")
private String password;
@ApiModelProperty(value = "短信验证码",required = true)
@NotNull(message = "验证码错误,请重新输入")
private String verifyCode;
}

View File

@ -0,0 +1,22 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("机构密码重置接口")
public class InstitutionResetPasswordReqDTO {
@ApiModelProperty(value = "新密码",required = true)
private String password;
@ApiModelProperty(value = "手机号",required = true)
private String phone;
@ApiModelProperty(value = "短信验证码",required = true)
@NotNull(message = "验证码错误,请重新输入")
private String verifyCode;
}

View File

@ -0,0 +1,42 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 插入更新机构下属服务人员
*
* @author itcast
* @create 2023/7/18 20:20
**/
@Data
@ApiModel("插入更新机构下属服务人员")
public class InstitutionStaffUpsertReqDTO {
/**
* 名称
*/
@ApiModelProperty(value = "名称", required = true)
private String name;
/**
* 电话
*/
@ApiModelProperty(value = "电话", required = true)
private String phone;
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号", required = true)
private String idCardNo;
/**
* 证明资料列表
*/
@ApiModelProperty("证明资料列表")
private List<String> certificationImgs;
}

View File

@ -0,0 +1,28 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author itcast
*/
@Data
@ApiModel("点赞请求")
public class LikeOrCancelReqDTO {
@ApiModelProperty("点赞目标类型1评论点赞2回复点赞")
private Integer likeTargetType = 1;
/**
* 点赞目标id
*/
@ApiModelProperty("点赞目标id,评论id或回复id")
private String id;
/**
* 点赞状态0取消点赞1点赞
*/
@ApiModelProperty("点赞状态0取消点赞1点赞")
private Integer state;
}

View File

@ -0,0 +1,30 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author itcast
*/
@Data
@ApiModel("微信小程序登录模型")
public class LoginForCustomerReqDTO {
/**
* 微信授权code
*/
@ApiModelProperty(value = "微信授权code", required = true)
private String code;
/**
* 昵称
*/
@ApiModelProperty("昵称")
private String nickname;
/**
* 头像
*/
@ApiModelProperty("头像")
private String avatar;
}

View File

@ -0,0 +1,30 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("运营人员登录模型")
@Data
public class LoginForWorkReqDTO {
/**
* 运营人员账号
*/
@ApiModelProperty(value = "服务人员账号",required = true)
private String phone;
/**
* 登录密码
*/
@ApiModelProperty(value = "登录密码,机构用户必填",required = false)
private String password;
@ApiModelProperty("验证码,普通服务人员必填")
private String verifyCode;
/**
* 登录用户类型
*/
@ApiModelProperty("服务人员类型,2.普通服务人员3机构用户")
private Integer userType;
}

View File

@ -0,0 +1,16 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("接单设置")
public class ServePickUpReqDTO {
/**
* 是否开启接单设置
*/
@ApiModelProperty("是否开启接单设置设置,0:关闭接单1开启接单")
private Integer canPickUp;
}

View File

@ -0,0 +1,43 @@
package com.jzo2o.customer.model.dto.request;
import com.jzo2o.common.model.dto.PageQueryDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 服务人员/机构分页查询请求
* </p>
*
* @author itcast
* @since 2023-07-06
*/
@Data
@ApiModel("服务人员/机构分页查询请求")
public class ServeProviderPageQueryReqDTO extends PageQueryDTO {
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String phone;
/**
* 是否可以接单0关闭接单1开启接单
*/
@ApiModelProperty("是否可以接单0关闭接单1开启接单")
private Integer canPickUp;
/**
* 状态0正常1冻结
*/
@ApiModelProperty("状态0正常1冻结")
private Integer status;
}

View File

@ -0,0 +1,37 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author 86188
*/
@Data
@ApiModel("服务范围设置模型")
public class ServeScopeSetReqDTO {
/**
* 城市编码
*/
@ApiModelProperty(value = "城市编码", required = true)
@NotNull(message="请求失败")
private String cityCode;
@ApiModelProperty(value = "城市名称", required = true)
@NotNull(message="请求失败")
private String cityName;
/**
* 坐标经纬度例如经度,纬度
*/
@ApiModelProperty(value = "坐标经纬度,例如经度,纬度", required = true)
@NotNull(message="请求失败")
private String location;
/**
* 意向接单范围
*/
@ApiModelProperty(value = "意向接单范围", required = true)
@NotNull(message="请求失败")
private String intentionScope;
}

View File

@ -0,0 +1,44 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 服务技能新增请求
*
* @author itcast
* @create 2023/7/18 14:27
**/
@Data
@ApiModel("服务技能新增请求")
public class ServeSkillAddReqDTO {
/**
* 服务类型id
*/
@NotNull(message = "服务类型id不能为空")
@ApiModelProperty(value = "服务类型id", required = true)
private Long serveTypeId;
/**
* 服务类型名称
*/
@ApiModelProperty(value = "服务类型名称", required = true)
private String serveTypeName;
/**
* 服务项id
*/
@NotNull(message = "服务项id不能为空")
@ApiModelProperty(value = "服务项id", required = true)
private Long serveItemId;
/**
* 服务项名称
*/
@ApiModelProperty(value = "服务项名称", required = true)
private String serveItemName;
}

View File

@ -0,0 +1,14 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("短信验证码下发接口")
public class SmsCodeSendReqDTO {
@ApiModelProperty(value = "下发手机号码",required = true)
private String phone;
@ApiModelProperty("业务类型1机构注册2机构忘记密码,3:服务人员登录")
private String businessType;
}

View File

@ -0,0 +1,33 @@
package com.jzo2o.customer.model.dto.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 服务人员申请资质认证
*
* @author itcast
* @create 2023/9/6 10:24
**/
@Data
@ApiModel("服务人员认证申请请求体")
public class WorkerCertificationAuditAddReqDTO {
@ApiModelProperty(value = "服务人员id", required = false)
private Long serveProviderId;
@ApiModelProperty(value = "姓名", required = true)
private String name;
@ApiModelProperty(value = "身份证号", required = true)
private String idCardNo;
@ApiModelProperty(value = "身份证正面", required = true)
private String frontImg;
@ApiModelProperty(value = "身份证反面", required = true)
private String backImg;
@ApiModelProperty(value = "证明资料", required = true)
private String certificationMaterial;
}

View File

@ -0,0 +1,40 @@
package com.jzo2o.customer.model.dto.request;
import com.jzo2o.common.model.dto.PageQueryDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 服务人员分页查询请求
*
* @author itcast
* @create 2023/9/6 13:52
**/
@Data
@ApiModel("服务人员分页查询请求")
public class WorkerCertificationAuditPageQueryReqDTO extends PageQueryDTO {
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 身份证号
*/
@ApiModelProperty("身份证号")
private String idCardNo;
/**
* 审核状态0未审核1已审核
*/
@ApiModelProperty("审核状态0未审核1已审核")
private Integer auditStatus;
/**
* 认证状态2认证通过3认证失败
*/
@ApiModelProperty("认证状态2认证通过3认证失败")
private Integer certificationStatus;
}

View File

@ -0,0 +1,107 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 机构申请认证信息响应值
*
* @author itcast
* @create 2023/9/6 11:51
**/
@Data
@ApiModel("机构申请认证信息响应值")
public class AgencyCertificationAuditResDTO {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 服务人员id
*/
@ApiModelProperty("服务人员id")
private Long serveProviderId;
/**
* 企业名称
*/
@ApiModelProperty("企业名称")
private String name;
/**
* 统一社会信用代码
*/
@ApiModelProperty("统一社会信用代码")
private String idNumber;
/**
* 法人姓名
*/
@ApiModelProperty("法人姓名")
private String legalPersonName;
/**
* 法人身份证号
*/
@ApiModelProperty("法人身份证号")
private String legalPersonIdCardNo;
/**
* 营业执照
*/
@ApiModelProperty("营业执照")
private String businessLicense;
/**
* 审核状态0未审核1已审核
*/
@ApiModelProperty("审核状态0未审核1已审核")
private Integer auditStatus;
/**
* 审核人id
*/
@ApiModelProperty("审核人id")
private Long auditorId;
/**
* 审核人姓名
*/
@ApiModelProperty("审核人姓名")
private String auditorName;
/**
* 审核时间
*/
@ApiModelProperty("审核时间")
private LocalDateTime auditTime;
/**
* 认证状态1认证中2认证成功3认证失败
*/
@ApiModelProperty("认证状态1认证中2认证成功3认证失败")
private Integer certificationStatus;
/**
* 驳回原因
*/
@ApiModelProperty("驳回原因")
private String rejectReason;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
/**
* 更新时间
*/
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,65 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 机构认证信息响应值
*
* @author itcast
* @create 2023/9/6 11:51
**/
@Data
@ApiModel("机构认证信息响应值")
public class AgencyCertificationResDTO {
/**
* 主键
*/
@ApiModelProperty("机构id")
private Long id;
/**
* 企业名称
*/
@ApiModelProperty("企业名称")
private String name;
/**
* 统一社会信用代码
*/
@ApiModelProperty("统一社会信用代码")
private String idNumber;
/**
* 法人姓名
*/
@ApiModelProperty("法人姓名")
private String legalPersonName;
/**
* 法人身份证号
*/
@ApiModelProperty("法人身份证号")
private String legalPersonIdCardNo;
/**
* 营业执照
*/
@ApiModelProperty("营业执照")
private String businessLicense;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
/**
* 更新时间
*/
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,25 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 全部评价配置信息
*
* @author itcast
* @create 2023/9/23 10:46
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("全部评价配置信息")
public class AllEvaluationSystemInfoResDTO {
@ApiModelProperty("服务项评价配置信息")
private EvaluationSystemInfoResDTO serveItemEvaluationSystemInfo;
@ApiModelProperty("师傅评价配置信息")
private EvaluationSystemInfoResDTO serveProviderEvaluationSystemInfo;
}

View File

@ -0,0 +1,95 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 银行账户响应体
* </p>
*
* @author itcast
* @since 2023-09-06
*/
@Data
@ApiModel("银行账户响应体")
public class BankAccountResDTO implements Serializable {
/**
* 服务人员/机构id
*/
@ApiModelProperty("服务人员/机构id")
private Long id;
/**
* 类型2服务人员3服务机构
*/
@ApiModelProperty("类型2服务人员3服务机构")
private Integer type;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 银行名称
*/
@ApiModelProperty("银行名称")
private String bankName;
/**
*
*/
@ApiModelProperty("")
private String province;
/**
*
*/
@ApiModelProperty("")
private String city;
/**
*
*/
@ApiModelProperty("")
private String district;
/**
* 网点
*/
@ApiModelProperty("网点")
private String branch;
/**
* 银行账号
*/
@ApiModelProperty("银行账号")
private String account;
/**
* 开户证明
*/
@ApiModelProperty("开户证明")
private String accountCertification;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
/**
* 更新时间
*/
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,26 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 布尔值响应
*
* @author itcast
* @create 2023/9/22 21:40
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("布尔值响应")
public class BooleanResDTO {
/**
* 是否成功
*/
@ApiModelProperty("是否成功")
private Boolean isSuccess = false;
}

View File

@ -0,0 +1,48 @@
package com.jzo2o.customer.model.dto.response;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 机构认证信息表
* </p>
*
* @author itcast
* @since 2023-09-06
*/
@Data
public class CertificationStatusDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 机构id或服务端id
*/
private Long id;
/**
* 认证状态0初始态1认证中2认证成功3认证失败
*/
private Integer certificationStatus;
/**
* 认证时间
*/
private LocalDateTime certificationTime;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,28 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 城市编码响应信息
*
* @author itcast
* @create 2023/7/10 10:04
**/
@Data
@ApiModel("城市编码响应信息")
public class CityCodeResDTO {
/**
* 城市名称
*/
@ApiModelProperty("城市名称")
private String cityName;
/**
* 城市编码
*/
@ApiModelProperty("城市编码")
private String cityCode;
}

View File

@ -0,0 +1,93 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 评价和订单响应数据
*
* @author itcast
* @create 2023/4/22 16:34
**/
@Data
@ApiModel("评价和订单响应数据")
public class EvaluationAndOrdersResDTO {
@ApiModelProperty("评价id")
private String id;
@ApiModelProperty("评价对象id")
private String targetId;
@ApiModelProperty("关联id如订单id")
private String relationId;
@ApiModelProperty("评价对象名称")
private String targetName;
@ApiModelProperty("评价人id")
private String evaluatorId;
@ApiModelProperty("评价人信息")
private Person evaluatorInfo;
@ApiModelProperty("总分")
private Double totalScore;
@ApiModelProperty("评价等级1差评2中评3好评")
private Integer scoreLevel;
@ApiModelProperty("评价内容")
private String content;
@ApiModelProperty("评价图片列表")
private String[] pictureArray;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("是否点赞")
private Boolean isLiked;
@ApiModelProperty("服务预约时间")
private LocalDateTime serveStartTime;
@ApiModelProperty("服务地址")
private String serveAddress;
@ApiModelProperty("服务项图片")
private String serveItemImg;
/**
* 人物信息
*/
@Data
@ApiModel("人物信息")
public static class Person {
/**
* 昵称
*/
@ApiModelProperty("昵称")
private String nickName;
/**
* 头像
*/
@ApiModelProperty("头像")
private String avatar;
/**
* 是否匿名
*/
@ApiModelProperty("是否匿名,0为未匿名1为匿名")
private Integer isAnonymous;
}
}

View File

@ -0,0 +1,145 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 评价完整信息
* 连带了评价的回复
*
* @author itcast
* @create 2023/4/22 16:34
**/
@Data
@ApiModel("评价完整信息")
public class EvaluationResDTO {
@ApiModelProperty("评价id")
private String id;
@ApiModelProperty("评价对象id")
private String targetId;
@ApiModelProperty("关联id如订单id")
private String relationId;
@ApiModelProperty("评价对象名称")
private String targetName;
@ApiModelProperty("所属人id")
private String ownerId;
@ApiModelProperty("评价人id")
private String evaluatorId;
@ApiModelProperty("评价人信息")
private Person evaluatorInfo;
@ApiModelProperty("评价分数")
private ScoreItem[] scoreArray;
@ApiModelProperty("总分")
private Double totalScore;
@ApiModelProperty("评价等级1差评2中评3好评")
private Integer scoreLevel;
@ApiModelProperty("评价内容")
private String content;
@ApiModelProperty("评价图片列表")
private String[] pictureArray;
@ApiModelProperty("是否置顶0为取消置顶1为置顶")
private Integer isTop;
@ApiModelProperty("热度指标统计")
private HotIndexStatistics statistics;
@ApiModelProperty("热度值")
private Integer hotScore;
@ApiModelProperty("省份")
private String province;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("是否点赞")
private Boolean isLiked;
/**
* 评分项
*/
@Data
@ApiModel("评分项信息")
public static class ScoreItem {
/**
* 评分项名称
*/
@ApiModelProperty("评分项名称")
private String itemName;
/**
* 分数
*/
@ApiModelProperty(value = "分数", required = true)
private Double score;
}
/**
* 人物信息
*/
@Data
@ApiModel("人物信息")
public static class Person {
/**
* 昵称
*/
@ApiModelProperty("昵称")
private String nickName;
/**
* 头像
*/
@ApiModelProperty("头像")
private String avatar;
/**
* 是否匿名
*/
@ApiModelProperty("是否匿名,0为未匿名1为匿名")
private Integer isAnonymous;
}
/**
* 热度指标统计
*/
@Data
@ApiModel("热度指标统计")
public static class HotIndexStatistics {
/**
* 点赞数
*/
@ApiModelProperty("点赞数")
private Integer likeNumber;
/**
* 回复数
*/
@ApiModelProperty("回复数")
private Integer replyNumber;
/**
* 内容质量分数
*/
@ApiModelProperty("内容质量分数")
private Integer qualityScore;
}
}

View File

@ -0,0 +1,201 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author 86188
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("系统信息包含当前用户信息和配置信息")
public class EvaluationSystemInfoResDTO {
@ApiModelProperty("当前用户信息")
private UserInfo currentUser;
@ApiModelProperty("评价类配置")
private EvaluationConfig evaluationConfig;
@ApiModelProperty("回复类配置")
private ReplyConfig replyConfig;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public static class UserInfo {
/**
* 用户id
*/
@ApiModelProperty("用户id")
private String id;
/**
* 用户姓名/昵称
*/
@ApiModelProperty("用户姓名/昵称")
private String nickName;
/**
* 头像
*/
@ApiModelProperty("用户头像")
private String avatar;
}
@ApiModel("评论配置信息")
@Data
public static class EvaluationConfig {
/**
* 是否可以回复评价
*/
@ApiModelProperty("是否开启回复评价")
private Boolean canReply;
/**
* 是否开启评分评价
*/
@ApiModelProperty("是否开启评分评价")
private Boolean canScore;
/**
* 评分配置
*/
@ApiModelProperty("评分配置")
private List<ScoreConfig> scoreConfigList;
/**
* 是否开启匿名评价
*/
@ApiModelProperty("是否开启匿名评价")
private Boolean canAnonymous;
/**
* 是否开启点赞
*/
@ApiModelProperty("是否开启点赞")
private Boolean canLike;
/**
* 是否开启修改评价
*/
@ApiModelProperty("是否开启修改评价")
private Boolean canUpdate;
/**
* 是否开启删除评价
*/
@ApiModelProperty("是否开启删除评价")
private Boolean canDelete;
/**
* 是否开启举报评价
*/
@ApiModelProperty("是否开启举报评价")
private Boolean canReport;
/**
* 是否开启评价追评
*/
@ApiModelProperty("是否开启评价追评")
private Boolean canAppend;
/**
* 追评字数限制
*/
@ApiModelProperty("追评字数限制")
private Integer appendWordNum;
/**
* 是否开启图片评价
*/
@ApiModelProperty("是否开启图片评价")
private Boolean canAddImg;
/**
* 评价字数限制
*/
@ApiModelProperty("评价字数限制")
private Integer contentWordNum;
}
/**
* 评分项
*/
@Data
@ApiModel("评分项")
public static class ScoreConfig {
/**
* 评分项id
*/
@ApiModelProperty("评分项id")
private String itemId;
/**
* 评分项名称
*/
@ApiModelProperty("评分项名称")
private String itemName;
/**
* 权重
*/
@ApiModelProperty("权重")
private Integer weight;
/**
* 启用状态true表示启用,false表示禁用
*/
@ApiModelProperty("启用状态。true表示启用,false表示禁用")
private Boolean enabled;
}
@ApiModel("回复配置信息")
@Data
public static class ReplyConfig {
/**
* 是否开启回复的回复
*/
@ApiModelProperty("是否开启回复的回复")
private Boolean canReply;
/**
* 是否开启修改回复
*/
@ApiModelProperty("是否开启修改回复")
private Boolean canUpdate;
/**
* 是否开启删除回复
*/
@ApiModelProperty("是否开启删除回复")
private Boolean canDelete;
/**
* 是否开启举报回复
*/
@ApiModelProperty("是否开启举报回复")
private Boolean canReport;
/**
* 是否开启匿名回复
*/
@ApiModelProperty("是否开启匿名回复")
private Boolean canAnonymous;
/**
* 是否开启点赞
*/
@ApiModelProperty("是否开启点赞")
private Boolean canLike;
/**
* 是否开启图片回复
*/
@ApiModelProperty("是否开启图片回复")
private Boolean canAddImg;
/**
* 回复字数限制
*/
@ApiModelProperty("回复字数限制")
private Integer contentWordNum;
}
}

View File

@ -0,0 +1,20 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("评价系统token信息")
public class EvaluationTokenDto {
/**
* 评价系统token
*/
@ApiModelProperty("评价系统token")
private String token;
}

View File

@ -0,0 +1,29 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 机构下属服务人员简略响应数据
*
* @author itcast
* @create 2023/7/18 20:45
**/
@Data
@ApiModel("机构下属服务人员简略响应数据")
public class InstitutionStaffSimpleResDTO {
/**
* 服务人员id
*/
@ApiModelProperty("服务人员id")
private Long id;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
}

View File

@ -0,0 +1,17 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@ApiModel("登录结果")
@NoArgsConstructor
@AllArgsConstructor
public class LoginResDTO {
@ApiModelProperty("访问token")
private String token;
}

View File

@ -0,0 +1,22 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 驳回原因
*
* @author itcast
* @create 2023/9/7 09:29
**/
@Data
@ApiModel("驳回原因响应数据")
@NoArgsConstructor
@AllArgsConstructor
public class RejectReasonResDTO {
@ApiModelProperty("驳回原因")
private String rejectReason;
}

View File

@ -0,0 +1,94 @@
package com.jzo2o.customer.model.dto.response;
import com.jzo2o.customer.model.dto.ServeSkillSimpleDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 服务人员/机构基本信息
*
* @author itcast
* @create 2023/9/6 16:32
**/
@Data
@ApiModel("服务人员/机构基本信息")
public class ServeProviderBasicInformationResDTO {
/**
* 服务人员/机构id
*/
@ApiModelProperty("服务人员/机构id")
private Long id;
/**
* 类型2服务人员3服务机构
*/
@ApiModelProperty("类型2服务人员3服务机构")
private Integer type;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 账号
*/
@ApiModelProperty("账号")
private String phone;
@ApiModelProperty("服务技能简略信息")
private List<ServeSkillSimpleDTO> serveSkillSimpleList;
/**
* 服务分类
*/
@ApiModelProperty("服务分类")
private String serveTypes;
/**
* 服务技能
*/
@ApiModelProperty("服务技能")
private String serveSkills;
/**
* 城市名称
*/
@ApiModelProperty("城市名称")
private String cityName;
/**
* 意向单范围
*/
@ApiModelProperty("意向接单范围")
private String intentionScope;
/**
* 是否可以接单0关闭接单1开启接单
*/
@ApiModelProperty("是否可以接单0关闭接单1开启接单")
private Integer canPickUp;
/**
* 状态0正常1冻结
*/
@ApiModelProperty("状态0正常1冻结")
private Integer status;
/**
* 综合评分
*/
@ApiModelProperty("综合评分")
private Double score;
/**
* 认证时间
*/
@ApiModelProperty("认证时间")
private LocalDateTime certificationTime;
}

View File

@ -0,0 +1,58 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 服务人员/机构信息
*
* @author itcast
* @create 2023/9/18 10:01
**/
@Data
@ApiModel("服务人员/机构信息")
public class ServeProviderInfoResDTO {
/**
* 主键
*/
@ApiModelProperty("服务人员/机构id")
private Long id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 电话
*/
@ApiModelProperty("电话")
private String phone;
/**
* 头像
*/
@ApiModelProperty("头像")
private String avatar;
/**
* 综合评分
*/
@ApiModelProperty("综合评分")
private Double score;
/**
* 好评率
*/
@ApiModelProperty("好评率")
private String goodLevelRate;
}

View File

@ -0,0 +1,65 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 服务人员/机构
*
* @author itcast
* @create 2023/9/4 20:27
**/
@Data
@ApiModel("服务人员/机构")
public class ServeProviderListResDTO {
/**
* 服务人员/机构id
*/
@ApiModelProperty("服务人员/机构id")
private Long id;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String phone;
/**
* 身份证号/统一社会信用代码
*/
@ApiModelProperty("身份证号/统一社会信用代码")
private String idNumber;
/**
* 城市名称
*/
@ApiModelProperty("城市名称")
private String cityName;
/**
* 是否可以接单0关闭接单1开启接单
*/
@ApiModelProperty("是否可以接单0关闭接单1开启接单")
private Integer canPickUp;
/**
* 状态0正常1冻结
*/
@ApiModelProperty("状态0正常1冻结")
private Integer status;
/**
* 认证时间
*/
@ApiModelProperty("认证时间")
private LocalDateTime certificationTime;
}

View File

@ -0,0 +1,46 @@
package com.jzo2o.customer.model.dto.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("服务范围设置")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ServeProviderSettingsGetResDTO {
/**
* 服务所在城市编码
*/
@ApiModelProperty("服务所在城市编码")
private String cityCode;
/**
* 服务所在城市名称
*/
@ApiModelProperty("服务所在城市名称")
private String cityName;
/**
* 服务范围经纬度格式经度,纬度
*/
@ApiModelProperty("服务范围经纬度,格式经度,纬度")
private String location;
/**
* 意向接单范围
*/
@ApiModelProperty("意向接单范围")
private String intentionScope;
/**
* 是否有技能
*/
@ApiModelProperty("是否有技能")
private Boolean haveSkill;
/**
* 是否开启接单
*/
@ApiModelProperty("是否可以接单")
private Boolean canPickUp;
}

Some files were not shown because too many files have changed in this diff Show More