提交 a25f0ccf 作者: 张小凤

OrderAndService(add)

上级 80602e01
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.mmc.csf.common</groupId>
<artifactId>csf-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>csf-common-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.mmc.csf.common</groupId>
<artifactId>csf-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>csf-common-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- apache 提供的一些工具类 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- apache 提供的一些工具类 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.20.Final</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.20.Final</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
......
package com.mmc.csf.infomation.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 16:11
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetOrderNumberDTO implements Serializable {
@ApiModelProperty(hidden = true)
@JsonIgnore
private Integer id;
private static final long serialVersionUID = 75097833899496576L;
@ApiModelProperty(value = "支付订单编号", example = "dadasdas")
private String paymentOrderNumber;
@ApiModelProperty(value = "微信需要支付金额", example = "100")
private BigDecimal weChatPay;
@JsonIgnore
@ApiModelProperty(value = "用户id", example = "100", hidden = true)
private Integer userAccountId;
}
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 10:18
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PayWalletDTO implements Serializable {
private static final long serialVersionUID = 75097833899496576L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "用户ID")
private Integer userAccountId;
@ApiModelProperty(value = "用户姓名")
private String userName;
@ApiModelProperty(value = "云享金余额")
private BigDecimal cashAmt;
@ApiModelProperty(value = "已消耗云享金")
private BigDecimal cashPaid;
@ApiModelProperty(value = "云享金总金额")
private BigDecimal totalCash;
@ApiModelProperty(value = "已冻结云享金")
private BigDecimal cashFreeze;
@ApiModelProperty(value = "佣金余额")
private BigDecimal salaryAmt;
@ApiModelProperty(value = "已消耗佣金")
private BigDecimal salaryPaid;
@ApiModelProperty(value = "已冻结佣金")
private BigDecimal salaryFreeze;
@ApiModelProperty(value = "佣金总额度")
private BigDecimal totalSalary;
@ApiModelProperty(value = "已提现的金额")
private BigDecimal rebateWdl;
@ApiModelProperty(value = "冻结总额")
private BigDecimal totalFreeze;
@ApiModelProperty(value = "总金额")
private BigDecimal totalAmount;
public void mathTotal() {
// 总冻结余额
this.totalFreeze = BigDecimal.ZERO;
if (this.cashFreeze != null) {
this.totalFreeze = this.totalFreeze.add(this.cashFreeze);
}
if (this.salaryFreeze != null) {
this.totalFreeze = this.totalFreeze.add(this.salaryFreeze);
}
// 总云享金余额
this.totalCash = BigDecimal.ZERO;
if (this.cashAmt != null) {
this.totalCash = this.totalCash.add(this.cashAmt);
}
if (this.cashFreeze != null) {
this.totalCash = this.totalCash.add(this.cashFreeze);
}
// 总佣金余额
this.totalSalary = BigDecimal.ZERO;
if (this.salaryAmt != null) {
this.totalSalary = this.totalSalary.add(this.salaryAmt);
}
if (this.salaryFreeze != null) {
this.totalSalary = this.totalSalary.add(this.salaryFreeze);
}
// 总金额
this.totalAmount = BigDecimal.ZERO;
this.totalAmount = this.totalAmount.add(this.totalCash);
this.totalAmount = this.totalAmount.add(this.totalSalary);
}
}
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/8/18 14:29
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotCertificationInteriorDTO {
@ApiModelProperty(value = "飞手执照id", example = "1")
@NotNull(message = "飞手执照id不能为空")
private Integer id;
@ApiModelProperty(value = "申请飞手用户的id", example = "1")
private Integer userAccountId;
}
package com.mmc.csf.infomation.dto;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/8/18 19:56
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ServiceArriveSceneDTO {
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "id")
private Double longitude;
@ApiModelProperty(value = "id")
private Double latitude;
@ApiModelProperty(value = "现场地址")
private String sceneAddress;
@ApiModelProperty(value = "现场地址的url", required = true)
private String sceneUrl;
@ApiModelProperty(value = "现场用户id", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "服务需求id", required = true)
private Integer requirementsInfoId;
}
package com.mmc.csf.infomation.dto;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 22:06
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceEvaluateDTO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "评价内容", example = "1")
private String evaluationContent;
@ApiModelProperty(value = "星级", example = "星")
private String starLevel;
@ApiModelProperty(value = "评价图片", example = "星")
private String evaluationUrl;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.mmc.csf.infomation.dto;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 20:46
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ServiceFulfilATaskDTO {
private Integer id;
@ApiModelProperty(value = "完成任务描述", example = "完成任务描述一下")
private String taskDescribe;
@ApiModelProperty(value = "完成任务图片", example = "http://")
private String taskUrl;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.mmc.csf.infomation.dto;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 21:22
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ServiceSettleAccountsDTO {
private Integer id;
@ApiModelProperty(value = "订单金额", example = "100")
private BigDecimal orderAmount;
@ApiModelProperty(value = "备注", example = "项目延期")
private String remark;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "结算的用户id", example = "1", hidden = true)
private Integer userAccountId;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.mmc.csf.infomation.qo;
import com.mmc.csf.release.model.group.Freeze;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/8/21 16:02
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IndustryTypeQO implements Serializable {
private static final long serialVersionUID = 1983281419136483277L;
private Integer id;
@ApiModelProperty(value = "行业类型名称")
private String typeName;
@ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(message = "每页显示数不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Insert;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 15:57
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GetOrderNumberVO {
@ApiModelProperty(value = "订单金额", example = "100", required = true)
@NotNull(message = "订单金额", groups = {Insert.class})
private BigDecimal orderAmount;
@ApiModelProperty(value = "订单级别 todo:前端传英文,后台自己获取金额 订单级别(REGULAR_ORDER,RUSH_ORDER,TOP_ORDER)", example = "REGULAR_ORDER", required = true)
@NotNull(message = "订单级别", groups = {Insert.class})
private OrderLevelEnum orderLevelEnum;
@ApiModelProperty(value = "云享金", example = "10", hidden = true)
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金", example = "10", hidden = true)
private BigDecimal salaryAmount;
@ApiModelProperty(value = "微信金额", example = "10", hidden = true)
private BigDecimal weChatPay;
@ApiModelProperty(value = "用户id", example = "10", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "支付方式,云享金:1,佣金:2,微信支付:3", example = "1,2,3", required = true)
private String paymentType;
@ApiModelProperty(value = "订单方式 发布订单:1 ,抢单:2", example = "1", required = true)
private Integer orderMode;
}
package com.mmc.csf.infomation.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 22:26
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GrabTheOrderVO {
private static final long serialVersionUID = -447951390213113317L;
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "云享金", example = "10", hidden = true)
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金", example = "10", hidden = true)
private BigDecimal salaryAmount;
@ApiModelProperty(value = "微信支付订单编号", example = "R202308191657303116170")
private String wechatPayOrderNumber;
@ApiModelProperty(value = "微信金额", example = "10", hidden = true)
private BigDecimal weChat;
@ApiModelProperty(value = "发布者任务编号", example = "R202308192201279509820")
private String publisherNumber;
@JsonIgnore
private Integer userAccountId;
@ApiModelProperty(value = "支付方式,云享金:1,佣金:2,微信支付:3", example = "1,2,3")
private String paymentType;
}
package com.mmc.csf.infomation.vo;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/17 10:22
* @Version 1.0
*/
public enum OrderLevelEnum {
//普通订单
REGULAR_ORDER("REGULAR_ORDER", new BigDecimal(0)),
//紧急订单
RUSH_ORDER("RUSH_ORDER", new BigDecimal(100)),
//置顶订单
TOP_ORDER("TOP_ORDER", new BigDecimal(300));
private String key;
private BigDecimal value;
private OrderLevelEnum(String key, BigDecimal value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
public static OrderLevelEnum match(String key) {
OrderLevelEnum result = null;
for (OrderLevelEnum s : values()) {
if (s.getKey() == key) {
result = s;
break;
}
}
return result;
}
public static OrderLevelEnum catchMessage(BigDecimal value) {
OrderLevelEnum result = null;
for (OrderLevelEnum s : values()) {
if (s.getValue().equals(value)) {
result = s;
break;
}
}
return result;
}
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Create;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* @Author small
* @Date 2023/8/18 14:30
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PilotAbilityVO {
private Integer id;
@ApiModelProperty(value = "能力id不能为空", example = "5", required = true)
@NotBlank(message = "能力id不能为空", groups = {Create.class, Update.class})
private Integer abilityId;
@ApiModelProperty(value = "能力不能为空", example = "道路检测", required = true)
@NotBlank(message = "能力名称不能为空", groups = {Create.class, Update.class})
private String abilityName;
@ApiModelProperty(value = "飞手认证id", hidden = true)
private Integer pilotCertificationId;
}
......@@ -27,7 +27,7 @@ import java.util.Date;
@Builder
public class RequirementsInfoVO implements Serializable {
private static final long serialVersionUID = -447951390213113317L;
@ApiModelProperty(value = "id")
@ApiModelProperty(value = "id", hidden = true)
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
......@@ -92,7 +92,8 @@ public class RequirementsInfoVO implements Serializable {
//@NotNull(message = "用户id不能为空", groups = {Insert.class})
private Integer userAccountId;
@ApiModelProperty(value = "发布者支付总金额", example = "发布者支付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value = "省份编码", required = false)
//@NotNull(message = "省份编码不能为空", groups = {Insert.class})
private Integer provinceCode;
......@@ -122,4 +123,32 @@ public class RequirementsInfoVO implements Serializable {
@ApiModelProperty(value = "发布者订单编号")
private String publisherNumber;
@ApiModelProperty(value = "订单级别", example = "订单级别", required = true)
@NotNull(message = "订单级别", groups = {Insert.class})
private String orderLevelEnum;
@ApiModelProperty(value = "服务id", example = "服务id", required = true)
private Integer serviceId;
@ApiModelProperty(value = "服务名称", example = "服务名称")
private String serviceName;
@ApiModelProperty(value = "飞手保险 1飞手保险 2三者保险 3机身保险", example = "飞手保险 1飞手保险 2三者保险 3机身保险")
private String insurance;
@ApiModelProperty(value = "当前状态", example = "已发布")
private String doing;
@ApiModelProperty(value = "等待状态", example = "等待抢单")
private String waiting;
@ApiModelProperty(value = "发布者状态", example = "等待抢单")
private String userPort;
@ApiModelProperty(value = "飞手状态", example = "等待抵达现场")
private String flyerPort;
@ApiModelProperty(value = "状态编码", example = "状态编码")
private String orderStatus;
@ApiModelProperty(value = "0需求信息 1是服务需求", example = "0需求信息 1是服务需求")
private Integer publish;
@ApiModelProperty(value = "抢单者已支付的总金额", example = "抢单者已支付的总金额")
private BigDecimal preemptTotalAmount;
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/8/18 18:28
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceArriveSceneVO {
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "id", example = "23.344324")
private Double longitude;
@ApiModelProperty(value = "id", example = "44.344324")
private Double latitude;
@ApiModelProperty(value = "现场地址", example = "广东省深圳市")
private String sceneAddress;
@ApiModelProperty(value = "现场地址的url", required = true, example = "http://")
private String sceneUrl;
@ApiModelProperty(value = "现场用户id", hidden = true, example = "173")
private Integer userAccountId;
@ApiModelProperty(value = "服务需求id", required = true, example = "83")
private Integer requirementsInfoId;
}
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/8/18 21:58
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceEvaluateVO {
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "评价内容", example = "1")
private String evaluationContent;
@ApiModelProperty(value = "星级", example = "星")
private String starLevel;
@ApiModelProperty(value = "评价图片", example = "星")
private String evaluationUrl;
}
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/8/18 20:34
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceFulfilATaskVO {
private Integer id;
@ApiModelProperty(value = "完成任务描述", example = "完成任务描述一下")
private String taskDescribe;
@ApiModelProperty(value = "完成任务图片", example = "http://")
private String taskUrl;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
}
package com.mmc.csf.infomation.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/17 10:14
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceRequirementsVO implements Serializable {
private static final long serialVersionUID = -447951390213113317L;
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "id", example = "1")
@NotBlank(message = "服务类型名称不能为空", groups = {Insert.class, Update.class})
private String serviceId;
@ApiModelProperty(value = "飞行日期——任务开始时间", example = "2023-07-25", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskStartTime;
@ApiModelProperty(value = "飞行日期——任务结束时间", example = "2023-07-26", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskEndTime;
@ApiModelProperty(value = "飞行位置——任务地址", example = "广东省深圳市", required = true)
@NotBlank(message = "任务地址不能为空", groups = {Insert.class, Update.class})
private String taskAddress;
@ApiModelProperty(value = "飞行位置——任务经度", example = "23.344324", required = true)
@NotNull(message = "任务经度不能为空", groups = {Insert.class, Update.class})
private Double longitude;
@ApiModelProperty(value = "飞行位置——任务纬度", example = "44.344324", required = true)
@NotNull(message = "任务纬度不能为空", groups = {Insert.class, Update.class})
private Double latitude;
@ApiModelProperty(value = "任务需求描述", example = "描述一下", required = true)
@NotNull(message = "任务需求描述不能为空", groups = {Insert.class})
@Length(max = 300, message = "字符过长")
private String requireDescription;
@ApiModelProperty(value = "订单金额", example = "100", required = true)
@NotNull(message = "订单金额", groups = {Insert.class})
private BigDecimal orderAmount;
@ApiModelProperty(value = "飞手保险1飞手保险 2三者保险 3机身保险", example = "1,2,3", required = true)
@NotNull(message = "飞手保险", groups = {Insert.class})
private String insurance;
@ApiModelProperty(value = "订单级别 todo:前端传英文,后台自己获取金额 订单级别(REGULAR_ORDER,RUSH_ORDER,TOP_ORDER)", example = "REGULAR_ORDER", required = true)
@NotNull(message = "订单级别", groups = {Insert.class})
private OrderLevelEnum orderLevelEnum;
@ApiModelProperty(value = "后台获取token里面的用户id", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "发布者姓名", example = "张三")
private String publishName;
@ApiModelProperty(value = "发布者电话", example = "1892994543", required = true)
@NotNull(message = "发布者电话不能为空", groups = {Insert.class})
private String publishPhone;
@ApiModelProperty(value = "云享金", example = "10", hidden = true)
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金", example = "10", hidden = true)
private BigDecimal salaryAmount;
@ApiModelProperty(value = "微信支付订单编号", example = "R202308191657303116170")
private String wechatPayOrderNumber;
@ApiModelProperty(value = "支付方式,云享金:1,佣金:2,微信支付:3", example = "1,2,3")
private String paymentType;
@ApiModelProperty(value = "微信金额", example = "10", hidden = true)
private BigDecimal weChat;
}
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/18 21:19
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceSettleAccountsVO implements Serializable {
private Integer id;
@ApiModelProperty(value = "订单金额", example = "100")
private BigDecimal orderAmount;
@ApiModelProperty(value = "备注", example = "项目延期")
private String remark;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
}
package com.mmc.csf.infomation.vo;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 10:24
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WalletFlowVO {
@ApiModelProperty(value = "用户ID")
private Integer userAccountId;
@ApiModelProperty(value = "支付方式 200结算(完成) 300冻结 100订单取消")
private Integer modeOfPayment;
@ApiModelProperty(value = "云享金")
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金")
private BigDecimal salaryAmount;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private String timeOfPayment;
@ApiModelProperty(value = "操作者用户ID")
private Integer operateUserAccountId;
@ApiModelProperty(value = "微信金额")
private BigDecimal weChat;
}
package com.mmc.csf.release.industry;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small
* @Date 2023/8/18 13:40
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyInspectionDTO implements Serializable {
private static final long serialVersionUID = -7994243059824987869L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "单位id")
private Integer companyInfoId;
@ApiModelProperty(value = "服务范围")
private String serviceArea;
@ApiModelProperty(value = "服务id")
private Integer inspectionId;
@ApiModelProperty(value = "服务标签")
private Integer inspectionTagId;
@ApiModelProperty(value = "报价")
private BigDecimal price;
@ApiModelProperty(value = "报价说明")
private String priceRemark;
@ApiModelProperty(value = "价格单位")
private Integer inspectionPriceUnitId;
@ApiModelProperty(value = "详情页")
private String detailPage;
@ApiModelProperty(value = "销售状态,0停售,1在售")
private Integer saleState;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "服务主图")
private String inspectionFirstImg;
@ApiModelProperty(value = "作业团队")
private String CompanyName;
@ApiModelProperty(value = "行业")
private IndustryTypeDTO industryTypeDTO;
@ApiModelProperty(value = "服务")
private InspectionDTO inspectionDTO;
@ApiModelProperty(value = "团队服务标签")
private InspectionTagDTO inspectionTagDTO;
@ApiModelProperty(value = "团队服务图片/视频")
private List<CompanyInspectionFileDTO> inspectionFileDTOS;
}
package com.mmc.csf.release.industry;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/8/18 13:40
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyInspectionFileDTO implements Serializable {
private static final long serialVersionUID = -542881175952018418L;
private Integer id;
private Integer fileType;
private Integer first;
private Integer companyInspectionId;
private String fileUrl;
}
package com.mmc.csf.release.industry;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small
* @Date 2023/8/18 13:39
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IndustryTypeDTO implements Serializable {
private static final long serialVersionUID = -5832618357203415274L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "行业类型名称")
private String typeName;
@ApiModelProperty(value = "行业图标")
private String typeImg;
@ApiModelProperty(value = "行业描述")
private String description;
@ApiModelProperty(value = "售卖状态,0停售,1在售")
private Integer saleState;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "服务列表")
private List<InspectionDTO> inspectionDTOS;
}
package com.mmc.csf.release.industry;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small
* @Date 2023/8/18 13:39
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InspectionDTO implements Serializable {
private static final long serialVersionUID = 8316723266007785996L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "服务编号")
private String inspectionNo;
@ApiModelProperty(value = "服务名称")
private String inspectionName;
@ApiModelProperty(value = "行业类型id")
private Integer industryTypeId;
@ApiModelProperty(value = "服务图标")
private String inspectionImg;
@ApiModelProperty(value = "服务描述")
private String inspectionDescription;
@ApiModelProperty(value = "销售状态,0停售,1在售")
private Integer saleState;
@ApiModelProperty(value = "案例图")
private String caseImg;
@ApiModelProperty(value = "案例视频")
private String caseVideo;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "团队服务列表")
List<CompanyInspectionDTO> companyInspectionDTOS;
}
package com.mmc.csf.release.industry;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small
* @Date 2023/8/18 13:40
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InspectionTagDTO implements Serializable {
private static final long serialVersionUID = -2590417413375903686L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "标签名称")
private String tagName;
@ApiModelProperty(value = "服务id")
private Integer inspectionId;
}
......@@ -407,7 +407,15 @@ public enum ResultEnum implements BaseErrorInfoInterface {
YOU_CANNOT_MODIFY_REQUIREMENTS_PUBLISHED_BY_OTHERS("60003", "不能修改他(她)人发布的需求"),
YOU_CANNOT_DELETE_REQUIREMENTS_POSTED_BY_OTHERS("60004", "不能删除他(她)人发布的需求"),
THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED("60005", "第三方接口在更新请联系开发人员"),
THREE_FIELDS_CAN_BE_REPEATED("60002", "机型、等级、类型存在重复");
THREE_FIELDS_CAN_BE_REPEATED("60002", "机型、等级、类型存在重复"),
FALL_OUTSIDE_OF("60003", "不在打卡范围之内"),
OVER_THE_TOTAL("60004", "总金额大于云享金剩余的金额,发布失败"),
SALARY_PAYMENT_FAILURE("60005", "总金额大于佣金剩余的金额,发布失败"),
CASH_SALARY_PAYMENT_FAILURE("60006", "总金额大于佣金剩余的金额加上云享金剩余的金额,发布失败"),
PLEASE_SELECT_PAYMENT("60007", "请选择支付方式,发布失败"),
CASH_IS_ENOUGH("60008", "云享金额已足够,无需微信支付"),
SALARY_IS_ENOUGH("60009", "佣金剩余金额已足够,无需微信支付"),
;
/**
* 错误码
......
......@@ -171,4 +171,4 @@
<module>release-service</module>
<module>csf-common</module>
</modules>
</project>
\ No newline at end of file
</project>
......@@ -69,6 +69,11 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.6</version>
</dependency>
<!-- mybatis驱动&Druid数据源-end -->
<dependency>
......@@ -89,6 +94,15 @@
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 定位打卡-->
<!--用于计算两点之间的距离-->
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
<!-- &lt;!&ndash; RabbitMQ &ndash;&gt;-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
......
package com.mmc.csf.release.commit;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @Author small
* @Date 2023/8/18 11:04
* @Version 1.0
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface NotRepeatSubmit {
long value();
}
package com.mmc.csf.release.commit;
import com.mmc.csf.release.controller.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.TimeUnit;
/**
* @Author small
* @Date 2023/8/18 11:05
* @Version 1.0
*/
@Slf4j
@Component
@Aspect
public class NotRepeatSubmitConfig extends BaseController {
@Autowired
private RedissonClient redissonClient;
@Pointcut("@within(notRepeatSubmit)||@annotation(notRepeatSubmit)")
public void pointcut(NotRepeatSubmit notRepeatSubmit) {
}
@Around(value = "pointcut(notRepeatSubmit)")
public Object around(ProceedingJoinPoint proceedingJoinPoint, NotRepeatSubmit notRepeatSubmit) throws Throwable {
log.info("提交之前---");
Object result = null;
long leaseTime = notRepeatSubmit.value();
log.info("leaseTime:" + leaseTime);
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
String accountUriLockKey = userAccountId + "-" + request.getServletPath();
// 设置锁定资源名称,accountUriLock改为userid+uri作为标识,作为测试写死
// String accountUriLockKey = "accountUriLock";
RLock accountUriLock = redissonClient.getLock(accountUriLockKey);
boolean tryLock;
//尝试获取分布式锁
//-1为永久 leaseTime 最多等待几秒 上锁以后leaseTime秒自动解锁
tryLock = accountUriLock.tryLock(-1, leaseTime, TimeUnit.MILLISECONDS);
log.info("tryLock:" + tryLock);
if (tryLock) {
try {
// 查询订单库存判断是否大于0
// 大于0表示还有库存可以更新订单库存将库存数字减一更新到数据库中
// 不大于0表示没有库存了本次请求就终止
log.info("正常提交:");
result = proceedingJoinPoint.proceed();
} catch (Exception e) {
log.info("主程序异常:" + e);
throw new Exception(e);
}
} else {
log.info("重复提交:" + accountUriLockKey);
}
log.info("提交之后---");
return result;
}
}
package com.mmc.csf.release.config;
import com.alibaba.fastjson.JSONObject;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.sun.org.glassfish.gmbal.NameValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.*;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
/**
* @Author small
* @Date 2023/8/18 10:35
* @Version 1.0
*/
public class RestTemplateConfig {
@Autowired
private RestTemplate restTemplate;
@Value("${iuav.pmsapp.url}")
@NameValue()
private String pmsApp;
@Value("${iuav.userapp.url}")
private String userApp;
public ResultBody releaseOrder(Integer id, HttpServletRequest request) {
String token = request.getHeader("token");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("token", token);
HttpEntity<String> entity = new HttpEntity<>(JSONObject.toJSONString(id), headers);
ResponseEntity<Object> exchange = null;
try {
exchange = restTemplate.exchange(pmsApp + "/pms/industry/getIndustryTypeById?id=" + id, HttpMethod.GET, entity, Object.class);
} catch (RestClientException e) {
return ResultBody.error(ResultEnum.THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED);
}
return ResultBody.success();
}
public PilotCertificationInteriorDTO feignInteriorDetailPilot(Integer userAccountId, HttpServletRequest request) {
String token = request.getHeader("token");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("token", token);
HttpEntity<String> entity = new HttpEntity<>(JSONObject.toJSONString(userAccountId), headers);
ResponseEntity<Object> exchange = null;
System.out.println(userApp);
try {
ResponseEntity<PilotCertificationInteriorDTO> exchange1 = restTemplate.exchange("http://localhost:35150" + "/userapp/pilot/interiorDetailPilot?userAccountId=" + userAccountId, HttpMethod.GET, entity, PilotCertificationInteriorDTO.class);
PilotCertificationInteriorDTO body = exchange1.getBody();
System.out.println(body);
} catch (RestClientException e) {
// return ResultBody.error(ResultEnum.THE_THIRD_PARTY_INTERFACE_IS_BEING_UPDATED);
}
// return ResultBody.success();
return null;
}
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO;
import com.mmc.csf.infomation.vo.*;
import com.mmc.csf.release.commit.NotRepeatSubmit;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Update;
......@@ -34,7 +35,7 @@ public class RequirementsController extends BaseController {
return requirementsService.listType(id);
}
@ApiOperation(value = "小程序——需求发布")
@ApiOperation(value = "小程序——发布需求信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publish")
public ResultBody publish(@RequestBody @Validated(value = {Insert.class}) RequirementsInfoVO requirementsInfoVO, HttpServletRequest request) {
......@@ -42,6 +43,34 @@ public class RequirementsController extends BaseController {
return requirementsService.publish(requirementsInfoVO, request);
}
@ApiOperation(value = "new——小程序发布服务-——抢单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@NotRepeatSubmit(value = 3000L)
@PostMapping("grabTheOrder")
public ResultBody grabTheOrder(@RequestBody GrabTheOrderVO grabTheOrderVO, HttpServletRequest request) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
grabTheOrderVO.setUserAccountId(userAccountId);
return requirementsService.grabTheOrder(grabTheOrderVO, request);
}
@ApiOperation(value = "小程序——发布服务需求")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publishService")
public ResultBody publishService(@RequestBody @Validated(value = {Insert.class}) ServiceRequirementsVO serviceRequirementsVO, HttpServletRequest request) {
serviceRequirementsVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.publishService(serviceRequirementsVO, request);
}
@ApiOperation(value = "小程序——发布服务需求订单编号单独接口")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("publisherNumber")
public ResultBody<GetOrderNumberDTO> publisherNumber(@RequestBody GetOrderNumberVO getOrderNumberVO, HttpServletRequest request) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
getOrderNumberVO.setUserAccountId(userAccountId);
return requirementsService.publisherNumber(getOrderNumberVO, request);
}
@ApiOperation(value = "小程序-编辑——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("updatePublish")
......@@ -64,6 +93,7 @@ public class RequirementsController extends BaseController {
return requirementsService.appPublishList();
}
@ApiOperation(value = "小程序-详情——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("detailPublish")
......@@ -71,6 +101,94 @@ public class RequirementsController extends BaseController {
return requirementsService.detailPublish(id, request, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "new——小程序-—服务订单--我的发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("myPublish")
public ResultBody<RequirementsInfoVO> myPublish(HttpServletRequest request) {
return requirementsService.myPublish(this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "new——小程序-—服务订单--我的抢单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("myPreempt")
public ResultBody<RequirementsInfoVO> myPreempt(HttpServletRequest request) {
return requirementsService.myPreempt(this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "new——小程序-—飞手端--抵达现场")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("arriveAtTheScene")
public ResultBody arriveAtTheScene(HttpServletRequest request, @RequestBody @Validated(value = {Insert.class}) ServiceArriveSceneVO serviceArriveSceneVO) {
serviceArriveSceneVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.arriveAtTheScene(serviceArriveSceneVO);
}
@ApiOperation(value = "new——小程序-—飞手端--抵达现场详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("arriveAtTheSceneDetails")
public ResultBody<ServiceArriveSceneDTO> arriveAtTheSceneDetails(HttpServletRequest request, @ApiParam(value = "发布服务需求id", required = true) @RequestParam Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.arriveAtTheSceneDetails(requirementsInfoId, userAccountId);
}
@ApiOperation(value = "new——小程序-—飞手端--完成任务")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("fulfilATask")
public ResultBody fulfilATask(HttpServletRequest request, @RequestBody @Validated(value = {Insert.class}) ServiceFulfilATaskVO fulfilATaskVO) {
fulfilATaskVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.fulfilATask(fulfilATaskVO);
}
@ApiOperation(value = "new——小程序-—飞手端--完成任务详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("fulfilATaskDetails")
public ResultBody<ServiceFulfilATaskDTO> fulfilATaskDetails(HttpServletRequest request, @ApiParam(value = "发布服务需求id", required = true) @RequestParam Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.fulfilATaskDetails(requirementsInfoId, userAccountId);
}
@ApiOperation(value = "new——小程序-—发布者--订单结算")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("settleAccounts")
public ResultBody settleAccounts(HttpServletRequest request, @RequestBody @Validated(value = {Insert.class}) ServiceSettleAccountsVO settleAccountsVO) {
settleAccountsVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.settleAccounts(settleAccountsVO);
}
@ApiOperation(value = "new——小程序-—发布者--订单结算详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("settleAccountsDetails")
public ResultBody<ServiceSettleAccountsDTO> settleAccountsDetails(HttpServletRequest request, @ApiParam(value = "发布服务需求id", required = true) @RequestParam Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.settleAccountsDetails(requirementsInfoId, userAccountId);
}
@ApiOperation(value = "new——小程序-—发布者对飞手--评价")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("evaluate")
public ResultBody evaluate(HttpServletRequest request, @RequestBody @Validated(value = {Insert.class}) ServiceEvaluateVO evaluateVO) {
evaluateVO.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return requirementsService.evaluate(evaluateVO);
}
@ApiOperation(value = "new——小程序-—发布者对飞手--评价详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("evaluateDetails")
public ResultBody<ServiceEvaluateDTO> evaluateDetails(HttpServletRequest request, @ApiParam(value = "发布服务需求id", required = true) @RequestParam Integer requirementsInfoId) {
Integer userAccountId = this.getUserLoginInfoFromRedis(request).getUserAccountId();
return requirementsService.evaluateDetails(requirementsInfoId, userAccountId);
}
@ApiOperation(value = "后台管理-详情——需求发布")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("backDetailPublish")
......
package com.mmc.csf.release.dao;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.release.entity.requirements.RequirementsInfoDO;
import com.mmc.csf.release.entity.requirements.RequirementsTypeDO;
import com.mmc.csf.release.entity.requirements.*;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
......@@ -77,4 +76,40 @@ public interface RequirementsDao {
List<RequirementsInfoDO> appPublishList();
RequirementsInfoDO detailPublish(Integer id);
void addPublishService(ServiceRequirementsDO requirementsInfoDO);
ServiceRequirementsDO grabTheOrder(String publisherNumber);
void updateGrabTheOrder(String publisherNumber, Integer repertory);
void insertService(RequirementsServiceDO requirementsServiceDO);
void arriveAtTheScene(ServiceArriveSceneDO serviceArriveSceneDO);
void updateScene(Integer requirementsInfoId);
ServiceArriveSceneDO arriveAtTheSceneDetails(Integer requirementsInfoId, Integer userAccountId);
void fulfilATask(ServiceFulfilATaskDO serviceFulfilATaskDO);
void updateFulfilATask(Integer requirementsInfoId);
ServiceFulfilATaskDO fulfilATaskDetails(Integer requirementsInfoId, Integer userAccountId);
void settleAccounts(ServiceSettleAccountsDO settleAccountsDO);
void updatesettleAccounts(Integer requirementsInfoId);
ServiceSettleAccountsDO settleAccountsDetails(Integer requirementsInfoId, Integer userAccountId);
void evaluate(ServiceEvaluateDO serviceEvaluateDO);
void updateEvaluate(Integer requirementsInfoId);
ServiceEvaluateDO evaluateDetails(Integer requirementsInfoId, Integer userAccountId);
List<RequirementsInfoDO> myPublish(Integer userAccountId);
List<RequirementsInfoDO> myPreempt(Integer userAccountId);
}
......@@ -13,6 +13,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -77,6 +78,34 @@ public class RequirementsInfoDO implements Serializable {
@ApiModelProperty(value = "发布者订单编号")
private String publisherNumber;
@ApiModelProperty(value = "订单级别", example = "订单级别", required = true)
@NotNull(message = "订单级别", groups = {Insert.class})
private String orderLevel;
@ApiModelProperty(value = "服务id", example = "服务id", required = true)
private Integer serviceId;
@ApiModelProperty(value = "服务名称", example = "服务名称")
private String serviceName;
@ApiModelProperty(value = "发布者支付总金额", example = "发布者支付总金额")
private BigDecimal totalAmount;
@ApiModelProperty(value = "允许几人抢单", example = "允许几人抢单")
private Integer repertory;
private String insurance;
private String doing;
private String waiting;
private String userPort;
private String flyerPort;
private String orderStatus;
private Integer publish;
private BigDecimal preemptTotalAmount;
public RequirementsInfoVO buildRequirementsInfoVO() {
return RequirementsInfoVO.builder().id(this.id).requirementTypeId(this.requirementTypeId).userAccountId(this.userAccountId).publishName(this.publishName)
......@@ -87,7 +116,21 @@ public class RequirementsInfoDO implements Serializable {
.latitude(this.latitude)
.requirementTypeName(this.requirementTypeName)
.publisherNumber(this.publisherNumber)
.requireUrl(this.requireUrl).build();
.requireUrl(this.requireUrl)
.orderLevelEnum(this.orderLevel)
.serviceId(this.serviceId)
.serviceName(this.serviceName)
.totalAmount(this.totalAmount)
.insurance(this.insurance)
.doing(this.doing)
.waiting(this.waiting)
.userPort(this.userPort)
.flyerPort(this.flyerPort)
.orderStatus(this.orderStatus)
.publish(this.publish)
.preemptTotalAmount(this.preemptTotalAmount)
.build();
}
public RequirementsInfoDO(RequirementsInfoVO requirementsInfoVO) {
......
package com.mmc.csf.release.entity.requirements;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/18 17:23
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RequirementsServiceDO implements Serializable {
private static final long serialVersionUID = -1811974173256250060L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "服务需求id")
private Integer requirementsInfoId;
@ApiModelProperty(value = "字典id")
private Integer serviceDictionaryId;
@ApiModelProperty(value = "抢单飞手id")
private Integer pilotCertificationId;
@ApiModelProperty(value = "抢单飞手用户id")
private Integer pilotCertificationUserId;
@ApiModelProperty(value = "抢单飞手团队id")
private Integer teamId;
@ApiModelProperty(value = "抢单飞手团队用户id")
private Integer teamUserId;
@ApiModelProperty(value = "云享金", example = "10")
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金", example = "10")
private BigDecimal salaryAmount;
@ApiModelProperty(value = "微信金额", example = "10")
private BigDecimal weChat;
@ApiModelProperty(value = "微信支付订单编号", example = "R202308191657303116170")
private String wechatPayOrderNumber;
@ApiModelProperty(value = "抢单支付的总金额", example = "抢单支付的总金额")
private BigDecimal preemptTotalAmount;
public RequirementsServiceDO(PilotCertificationInteriorDTO pilot, ServiceRequirementsDO requirementsInfoDO) {
this.pilotCertificationId = pilot.getId();
this.pilotCertificationUserId = pilot.getUserAccountId();
this.requirementsInfoId = requirementsInfoDO.getId();
this.serviceDictionaryId = 2;
}
}
package com.mmc.csf.release.entity.requirements;
import com.mmc.csf.infomation.dto.ServiceArriveSceneDTO;
import com.mmc.csf.infomation.vo.ServiceArriveSceneVO;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/8/18 19:29
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceArriveSceneDO {
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "id")
private Double longitude;
@ApiModelProperty(value = "id")
private Double latitude;
@ApiModelProperty(value = "现场地址")
private String sceneAddress;
@ApiModelProperty(value = "现场地址的url", required = true)
private String sceneUrl;
@ApiModelProperty(value = "现场用户id", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "服务需求id", required = true)
private Integer requirementsInfoId;
public ServiceArriveSceneDO(ServiceArriveSceneVO serviceArriveSceneVO) {
this.longitude = serviceArriveSceneVO.getLongitude();
this.latitude = serviceArriveSceneVO.getLatitude();
this.sceneAddress = serviceArriveSceneVO.getSceneAddress();
this.sceneUrl = serviceArriveSceneVO.getSceneUrl();
this.userAccountId = serviceArriveSceneVO.getUserAccountId();
this.requirementsInfoId = serviceArriveSceneVO.getRequirementsInfoId();
}
public ServiceArriveSceneDTO buildServiceArriveSceneDTO() {
return ServiceArriveSceneDTO
.builder()
.longitude(this.longitude)
.latitude(this.latitude)
.sceneAddress(this.sceneAddress)
.sceneUrl(this.sceneUrl)
.userAccountId(this.userAccountId)
.requirementsInfoId(this.requirementsInfoId)
.build();
}
}
package com.mmc.csf.release.entity.requirements;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.infomation.dto.ServiceEvaluateDTO;
import com.mmc.csf.infomation.vo.ServiceEvaluateVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 22:08
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceEvaluateDO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "评价内容", example = "1")
private String evaluationContent;
@ApiModelProperty(value = "星级", example = "星")
private String starLevel;
@ApiModelProperty(value = "评价图片", example = "星")
private String evaluationUrl;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public ServiceEvaluateDO(ServiceEvaluateVO evaluateVO) {
this.requirementsInfoId = evaluateVO.getRequirementsInfoId();
this.userAccountId = evaluateVO.getUserAccountId();
this.evaluationContent = evaluateVO.getEvaluationContent();
this.starLevel = evaluateVO.getStarLevel();
this.evaluationUrl = evaluateVO.getEvaluationUrl();
}
public ServiceEvaluateDTO buildServiceEvaluateDTO() {
return ServiceEvaluateDTO.builder()
.id(this.id)
.requirementsInfoId(this.requirementsInfoId)
.userAccountId(this.userAccountId)
.starLevel(this.starLevel)
.evaluationContent(this.evaluationContent)
.evaluationUrl(this.evaluationUrl)
.createTime(this.createTime)
.updateTime(this.updateTime)
.build();
}
}
package com.mmc.csf.release.entity.requirements;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.infomation.dto.ServiceFulfilATaskDTO;
import com.mmc.csf.infomation.vo.ServiceFulfilATaskVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 20:40
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceFulfilATaskDO {
private Integer id;
@ApiModelProperty(value = "完成任务描述", example = "完成任务描述一下")
private String taskDescribe;
@ApiModelProperty(value = "完成任务图片", example = "http://")
private String taskUrl;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "完成任务的用户", example = "1", hidden = true)
private Integer userAccountId;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public ServiceFulfilATaskDO(ServiceFulfilATaskVO serviceFulfilATaskVO) {
this.taskDescribe = serviceFulfilATaskVO.getTaskDescribe();
this.taskUrl = serviceFulfilATaskVO.getTaskUrl();
this.requirementsInfoId = serviceFulfilATaskVO.getRequirementsInfoId();
this.userAccountId = serviceFulfilATaskVO.getUserAccountId();
}
public ServiceFulfilATaskDTO buildServiceFulfilATaskDTO() {
return ServiceFulfilATaskDTO.builder()
.id(this.id)
.taskDescribe(this.taskDescribe)
.taskUrl(this.taskUrl)
.requirementsInfoId(this.requirementsInfoId)
.userAccountId(this.userAccountId)
.createTime(this.createTime)
.updateTime(this.updateTime)
.build();
}
}
package com.mmc.csf.release.entity.requirements;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mmc.csf.infomation.vo.OrderLevelEnum;
import com.mmc.csf.infomation.vo.ServiceRequirementsVO;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/17 10:54
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ServiceRequirementsDO {
private static final long serialVersionUID = -447951390213113317L;
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "id")
@NotBlank(message = "服务类型id不能为空", groups = {Insert.class, Update.class})
private String serviceId;
@ApiModelProperty(value = "飞行日期——任务开始时间", example = "2023-07-25", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskStartTime;
@ApiModelProperty(value = "飞行日期——任务结束时间", example = "2023-07-26", required = true)
@NotNull(message = "任务开始时间不能为空", groups = {Insert.class, Update.class})
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date taskEndTime;
@ApiModelProperty(value = "飞行位置——任务地址", example = "广东省深圳市", required = true)
@NotBlank(message = "任务地址不能为空", groups = {Insert.class, Update.class})
private String taskAddress;
@ApiModelProperty(value = "飞行位置——任务经度", example = "23.344324", required = true)
@NotNull(message = "任务经度不能为空", groups = {Insert.class, Update.class})
private Double longitude;
@ApiModelProperty(value = "飞行位置——任务纬度", example = "44.344324", required = true)
@NotNull(message = "任务纬度不能为空", groups = {Insert.class, Update.class})
private Double latitude;
@ApiModelProperty(value = "需求描述", example = "描述一下", required = true)
@NotNull(message = "需求描述不能为空", groups = {Insert.class})
@Length(max = 300, message = "字符过长")
private String requireDescription;
@ApiModelProperty(value = "订单金额", example = "订单金额", required = true)
@NotNull(message = "订单金额", groups = {Insert.class})
private BigDecimal orderAmount;
@ApiModelProperty(value = "飞手保险", example = "飞手保险", required = true)
@NotNull(message = "飞手保险", groups = {Insert.class})
private String insurance;
@ApiModelProperty(value = "订单级别", example = "订单级别", required = true)
@NotNull(message = "订单级别", groups = {Insert.class})
private OrderLevelEnum orderLevelEnum;
@ApiModelProperty(value = "后台获取token里面的用户id", hidden = true)
private Integer userAccountId;
@ApiModelProperty(value = "发布者姓名", example = "张三")
private String publishName;
@ApiModelProperty(value = "发布者电话", example = "1892994543", required = true)
@NotNull(message = "发布者电话不能为空", groups = {Insert.class})
private String publishPhone;
@ApiModelProperty(value = "发布者订单编号")
private String publisherNumber;
@ApiModelProperty(value = "0普通 100急单 300置顶")
private BigDecimal orderLevelAmount;
@ApiModelProperty(value = "订单级别 REGULAR_ORDER,RUSH_ORDER,TOP_ORDER")
private String orderLevel;
@ApiModelProperty(value = "总金额", example = "100", required = true)
@NotNull(message = "总金额", groups = {Insert.class})
private BigDecimal totalAmount;
@ApiModelProperty(value = "云享金", example = "10")
private BigDecimal cashAmount;
@ApiModelProperty(value = "佣金", example = "10")
private BigDecimal salaryAmount;
@ApiModelProperty(value = "微信金额", example = "10")
private BigDecimal weChat;
@ApiModelProperty(value = "微信支付订单编号", example = "R202308191657303116170")
private String wechatPayOrderNumber;
private Integer repertory;
@ApiModelProperty(value = "支付方式,云享金:1,佣金:2,微信支付:3", example = "1,2,3")
private String paymentType;
public ServiceRequirementsDO(ServiceRequirementsVO serviceRequirementsVO) {
this.id = serviceRequirementsVO.getId();
this.userAccountId = serviceRequirementsVO.getUserAccountId();
this.publishName = serviceRequirementsVO.getPublishName();
this.publishPhone = serviceRequirementsVO.getPublishPhone();
this.requireDescription = serviceRequirementsVO.getRequireDescription();
this.taskStartTime = serviceRequirementsVO.getTaskStartTime();
this.taskEndTime = serviceRequirementsVO.getTaskEndTime();
this.taskAddress = serviceRequirementsVO.getTaskAddress();
this.longitude = serviceRequirementsVO.getLongitude();
this.latitude = serviceRequirementsVO.getLatitude();
this.orderLevelAmount = OrderLevelEnum.match(serviceRequirementsVO.getOrderLevelEnum().getKey()).getValue();
this.orderLevel = serviceRequirementsVO.getOrderLevelEnum().getKey();
this.totalAmount = serviceRequirementsVO.getOrderAmount().add(OrderLevelEnum.match(serviceRequirementsVO.getOrderLevelEnum().getKey()).getValue());
this.serviceId = serviceRequirementsVO.getServiceId();
this.orderAmount = serviceRequirementsVO.getOrderAmount();
this.insurance = serviceRequirementsVO.getInsurance();
this.cashAmount = serviceRequirementsVO.getCashAmount();
this.salaryAmount = serviceRequirementsVO.getSalaryAmount();
this.wechatPayOrderNumber = serviceRequirementsVO.getWechatPayOrderNumber();
this.weChat = serviceRequirementsVO.getWeChat();
this.paymentType = serviceRequirementsVO.getPaymentType();
}
}
package com.mmc.csf.release.entity.requirements;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.infomation.dto.ServiceSettleAccountsDTO;
import com.mmc.csf.infomation.vo.ServiceSettleAccountsVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author small
* @Date 2023/8/18 21:24
* @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ServiceSettleAccountsDO implements Serializable {
private static final long serialVersionUID = -447951390213113317L;
private Integer id;
@ApiModelProperty(value = "订单金额", example = "100")
private BigDecimal orderAmount;
@ApiModelProperty(value = "备注", example = "项目延期")
private String remark;
@ApiModelProperty(value = "需求id", example = "83")
private Integer requirementsInfoId;
@ApiModelProperty(value = "结算的用户id", example = "1", hidden = true)
private Integer userAccountId;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public ServiceSettleAccountsDO(ServiceSettleAccountsVO accountsVO) {
this.id = accountsVO.getId();
this.orderAmount = accountsVO.getOrderAmount();
this.remark = accountsVO.getRemark();
this.requirementsInfoId = accountsVO.getRequirementsInfoId();
this.userAccountId = accountsVO.getUserAccountId();
}
public ServiceSettleAccountsDTO buildServiceSettleAccountsDTO() {
return ServiceSettleAccountsDTO.builder()
.id(this.id)
.orderAmount(this.orderAmount)
.remark(this.remark)
.requirementsInfoId(this.requirementsInfoId)
.userAccountId(this.userAccountId)
.createTime(this.createTime)
.updateTime(this.updateTime)
.build();
}
}
......@@ -2,6 +2,7 @@ package com.mmc.csf.release.feign;
import com.mmc.csf.release.feign.hystrix.PmsAppApHystrix;
import com.mmc.csf.release.flyer.dto.AllCategoryDTO;
import com.mmc.csf.release.industry.IndustryTypeDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -17,4 +18,9 @@ import java.util.List;
public interface PmsAppApi {
@RequestMapping(value = "/pms/classify/feignQqueryCategoryInfoByType", method = RequestMethod.GET)
public List<AllCategoryDTO> feignQqueryCategoryInfoByType(@RequestParam Integer type);
@RequestMapping(value = "/pms/industry/getIndustryTypeById", method = RequestMethod.GET)
public IndustryTypeDTO feignQquerygetIndustryTypeById(@RequestParam Integer id);
}
package com.mmc.csf.release.feign;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO;
......@@ -19,6 +21,7 @@ import java.util.List;
public interface UserAppApi {
/**
* 根据用户id获取基本信息
*
* @param userAccountId
* @return
*/
......@@ -27,6 +30,7 @@ public interface UserAppApi {
/**
* 根据地区信息查询用户id
*
* @param provinceCode
* @param cityCode
* @param districtCode
......@@ -44,14 +48,26 @@ public interface UserAppApi {
* @return {@link List}<{@link UserAccountSimpleDTO}>
*/
@PostMapping("/userapp/back-user/feignListBAccountPage")
List<UserAccountSimpleDTO> feignListBAccountPage(@ApiParam(value = "账号查询QO", required = true) @RequestBody BUserAccountQO bUserAccountQO, @RequestHeader("token") String token);
List<UserAccountSimpleDTO> feignListBAccountPage(@ApiParam(value = "账号查询QO", required = true) @RequestBody BUserAccountQO bUserAccountQO, @RequestHeader("token") String token);
/**
* 获取小程序用户集合列表页面
*
* @param userAccountQO
* @param token
* @return
*/
@PostMapping("/userapp/user-account/feignListAppUserAccount")
List<UserAccountSimpleDTO> feignListAppUserAccount(@ApiParam(value = "账号查询QO", required = true) @RequestBody UserAccountQO userAccountQO, @RequestHeader("token") String token);
List<UserAccountSimpleDTO> feignListAppUserAccount(@ApiParam(value = "账号查询QO", required = true) @RequestBody UserAccountQO userAccountQO, @RequestHeader("token") String token);
/**
* 根据用户id获取基本信息
*
* @param userAccountId
* @return
*/
@GetMapping(value = "/userapp/pilot/interiorDetailPilot")
public PilotCertificationInteriorDTO feignInteriorDetailPilot(@RequestParam(required = true) Integer userAccountId);
}
......@@ -2,6 +2,7 @@ package com.mmc.csf.release.feign.hystrix;
import com.mmc.csf.release.feign.PmsAppApi;
import com.mmc.csf.release.flyer.dto.AllCategoryDTO;
import com.mmc.csf.release.industry.IndustryTypeDTO;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
......@@ -17,4 +18,10 @@ public class PmsAppApHystrix implements PmsAppApi {
log.info("熔断--feignQqueryCategoryInfoByType:" + type);
return null;
}
@Override
public IndustryTypeDTO feignQquerygetIndustryTypeById(Integer id) {
log.info("熔断--feignQquerygetIndustryTypeById:" + id);
return null;
}
}
package com.mmc.csf.release.feign.hystrix;
import com.mmc.csf.infomation.dto.PilotCertificationInteriorDTO;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO;
......@@ -37,4 +38,10 @@ public class UserAppApiHystrix implements UserAppApi {
log.error("熔断:feignListAppUserAccount:{}", userAccountQO);
return null;
}
@Override
public PilotCertificationInteriorDTO feignInteriorDetailPilot(Integer userAccountId) {
log.error("熔断:feignInteriorDetailPilot:{}", userAccountId);
return null;
}
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.ServiceArriveSceneDTO;
import com.mmc.csf.infomation.dto.ServiceEvaluateDTO;
import com.mmc.csf.infomation.dto.ServiceFulfilATaskDTO;
import com.mmc.csf.infomation.dto.ServiceSettleAccountsDTO;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.*;
import javax.servlet.http.HttpServletRequest;
......@@ -63,4 +67,31 @@ public interface RequirementsService {
ResultBody detailPublish(Integer id, HttpServletRequest request, Integer userAccountId);
ResultBody backDetailPublish(Integer id, HttpServletRequest request, Integer userAccountId);
ResultBody publishService(ServiceRequirementsVO serviceRequirementsVO, HttpServletRequest request);
ResultBody<RequirementsInfoVO> myPublish(Integer userAccountId);
ResultBody<RequirementsInfoVO> grabTheOrder(GrabTheOrderVO grabTheOrderVO, HttpServletRequest request);
ResultBody arriveAtTheScene(ServiceArriveSceneVO serviceArriveSceneVO);
ResultBody<ServiceArriveSceneDTO> arriveAtTheSceneDetails(Integer requirementsInfoId, Integer userAccountId);
ResultBody fulfilATask(ServiceFulfilATaskVO fulfilATaskVO);
ResultBody<ServiceFulfilATaskDTO> fulfilATaskDetails(Integer requirementsInfoId, Integer userAccountId);
ResultBody settleAccounts(ServiceSettleAccountsVO settleAccountsVO);
ResultBody<ServiceSettleAccountsDTO> settleAccountsDetails(Integer requirementsInfoId, Integer userAccountId);
ResultBody evaluate(ServiceEvaluateVO evaluateVO);
ResultBody<ServiceEvaluateDTO> evaluateDetails(Integer requirementsInfoId, Integer userAccountId);
ResultBody publisherNumber(GetOrderNumberVO getOrderNumberVO, HttpServletRequest request);
ResultBody<RequirementsInfoVO> myPreempt(Integer userAccountId);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论