mysql数据枚举类型转换完善

wxpay
LI-CCONG\李聪聪 8 months ago
parent 4ed85aeb05
commit 9a2e8291fe

@ -94,7 +94,7 @@ public class CommonExceptionAdvice {
public Object handleNestedServletException(NestedServletException e) { public Object handleNestedServletException(NestedServletException e) {
log.error("参数异常 -> NestedServletException{}", e.getMessage()); log.error("参数异常 -> NestedServletException{}", e.getMessage());
log.debug("", e); log.debug("", e);
return processResponse(new BadRequestException("请求参数处理异常")); return processResponse(new BadRequestException("系统参数处理异常"));
} }
@ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)

@ -35,7 +35,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class SwaggerEnumPlugin implements ModelPropertyBuilderPlugin, ParameterBuilderPlugin, OperationBuilderPlugin, ExpandedParameterBuilderPlugin { public class SwaggerEnumPlugin implements ModelPropertyBuilderPlugin, ParameterBuilderPlugin, OperationBuilderPlugin, ExpandedParameterBuilderPlugin {
private static final String DELIMITER = ","; private static final String DELIMITER = "<br/>";
@Override @Override
public void apply(ModelPropertyContext context) { public void apply(ModelPropertyContext context) {
@ -58,7 +58,7 @@ public class SwaggerEnumPlugin implements ModelPropertyBuilderPlugin, ParameterB
ModelPropertyBuilder builder = context.getBuilder(); ModelPropertyBuilder builder = context.getBuilder();
Field descField = ReflectionUtils.findField(builder.getClass(), "description"); Field descField = ReflectionUtils.findField(builder.getClass(), "description");
ReflectionUtils.makeAccessible(descField); ReflectionUtils.makeAccessible(descField);
String joinText = (ReflectionUtils.getField(descField, builder) == null ? "" : (ReflectionUtils.getField(descField, builder) + ":")) String joinText = (ReflectionUtils.getField(descField, builder) == null ? "" : (ReflectionUtils.getField(descField, builder) + ":<br/>"))
+ String.join(DELIMITER, displayValues); + String.join(DELIMITER, displayValues);
// builder.description(joinText).type(context.getResolver().resolve(Integer.class)); // builder.description(joinText).type(context.getResolver().resolve(Integer.class));
@ -147,9 +147,8 @@ public class SwaggerEnumPlugin implements ModelPropertyBuilderPlugin, ParameterB
Field descField = ReflectionUtils.findField(parameterBuilder.getClass(), "description"); Field descField = ReflectionUtils.findField(parameterBuilder.getClass(), "description");
ReflectionUtils.makeAccessible(descField); ReflectionUtils.makeAccessible(descField);
String joinText = (ReflectionUtils.getField(descField, parameterBuilder) == null ? "" : (ReflectionUtils.getField(descField, parameterBuilder) + ":")) String joinText = (ReflectionUtils.getField(descField, parameterBuilder) == null ? "" : (ReflectionUtils.getField(descField, parameterBuilder) + ":<br/>"))
+ String.join(DELIMITER, displayValues); + String.join(DELIMITER, displayValues);
parameterBuilder.description(joinText); parameterBuilder.description(joinText);
} }
} }
@ -179,6 +178,7 @@ public class SwaggerEnumPlugin implements ModelPropertyBuilderPlugin, ParameterB
).collect(Collectors.toList()); ).collect(Collectors.toList());
} }
@Override @Override
public boolean supports(DocumentationType documentationType) { public boolean supports(DocumentationType documentationType) {
return true; return true;

@ -28,15 +28,15 @@ import java.util.stream.Collectors;
public class PageQuery { public class PageQuery {
public static final Integer DEFAULT_PAGE_SIZE = 20; public static final Integer DEFAULT_PAGE_SIZE = 20;
public static final Integer DEFAULT_PAGE_NUM = 1; public static final Integer DEFAULT_PAGE_NUM = 1;
@ApiModelProperty("页码") @ApiModelProperty(value = "页码", required = true, example = "1")
@Min(value = 1, message = "页码不能小于1") @Min(value = 1, message = "页码不能小于1")
private Integer pageNo = DEFAULT_PAGE_NUM; private Integer pageNo = DEFAULT_PAGE_NUM;
@ApiModelProperty("每页个数") @ApiModelProperty(value = "每页个数", required = true, example = "10")
@Min(value = 1, message = "每页查询数量不能小于1") @Min(value = 1, message = "每页查询数量不能小于1")
private Integer pageSize = DEFAULT_PAGE_SIZE; private Integer pageSize = DEFAULT_PAGE_SIZE;
@ApiModelProperty("排序规则") @ApiModelProperty(value = "排序规则", required = false)
private LinkedHashSet<SortingField> sortingFields; private LinkedHashSet<SortingField> sortingFields;
@ -107,13 +107,13 @@ public class PageQuery {
/** /**
* *
*/ */
@ApiModelProperty("字段") @ApiModelProperty(value = "字段", required = true, example = "field1")
private String field; private String field;
/** /**
* *
*/ */
@ApiModelProperty("是否升序") @ApiModelProperty(value = "是否升序", required = true, allowableValues = "asc,desc")
private String order; private String order;

@ -1,5 +1,7 @@
package cc.yunxi.domain.po; package cc.yunxi.domain.po;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -40,7 +42,7 @@ public class RecycleOrder {
@ApiModelProperty("订单类型") @ApiModelProperty("订单类型")
@TableField("order_type_id") @TableField("order_type_id")
private String orderType; private OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)") @ApiModelProperty("订单金额(元)")
@TableField("order_amount") @TableField("order_amount")
@ -48,7 +50,7 @@ public class RecycleOrder {
@ApiModelProperty("订单状态") @ApiModelProperty("订单状态")
@TableField("order_status_id") @TableField("order_status_id")
private String orderStatus; private OrderStatusEnum orderStatus;
@ApiModelProperty("散户id") @ApiModelProperty("散户id")
@TableField("client_id") @TableField("client_id")

@ -12,17 +12,16 @@ import lombok.EqualsAndHashCode;
@ApiModel(value = "RecycleOrderQuery", description = "回收订单查询条件") @ApiModel(value = "RecycleOrderQuery", description = "回收订单查询条件")
public class RecycleOrderQuery extends PageQuery { public class RecycleOrderQuery extends PageQuery {
@ApiModelProperty("订单编号") @ApiModelProperty(value = "订单编号", required = false, example = "1234567890")
private String id; private String id;
@ApiModelProperty("订单状态") @ApiModelProperty(value = "订单状态", required = false, example = "PENDING")
private String status; private OrderStatusEnum status;
@ApiModelProperty(value = "散户经度", required = false, example = "30.20")
@ApiModelProperty("散户经度")
private Double longitude; private Double longitude;
@ApiModelProperty("散户纬度") @ApiModelProperty(value = "散户纬度", required = false, example = "30.20")
private Double latitude; private Double latitude;
} }

@ -1,5 +1,7 @@
package cc.yunxi.domain.vo.recycleorder; package cc.yunxi.domain.vo.recycleorder;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -29,13 +31,13 @@ public class RecycleOrderRespVO {
private String orderNumber; private String orderNumber;
@ApiModelProperty("订单类型") @ApiModelProperty("订单类型")
private String orderType; private OrderTypeEnum orderType;
@ApiModelProperty("订单金额(元)") @ApiModelProperty("订单金额(元)")
private BigDecimal orderAmount; private BigDecimal orderAmount;
@ApiModelProperty("订单状态") @ApiModelProperty("订单状态")
private String orderStatus; private OrderStatusEnum orderStatus;
@ApiModelProperty("散户id") @ApiModelProperty("散户id")
private String clientId; private String clientId;

@ -1,6 +1,7 @@
package cc.yunxi.enums; package cc.yunxi.enums;
import cc.yunxi.common.enums.BaseEnum; import cc.yunxi.common.enums.BaseEnum;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;

@ -1,6 +1,9 @@
package cc.yunxi.enums; package cc.yunxi.enums;
import cc.yunxi.common.enums.BaseEnum;
import cc.yunxi.common.enums.SwaggerDisplayEnum; import cc.yunxi.common.enums.SwaggerDisplayEnum;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@ -10,7 +13,7 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
@SwaggerDisplayEnum(code = "code", desc = "desc") @SwaggerDisplayEnum(code = "code", desc = "desc")
public enum OrderStatusEnum { public enum OrderStatusEnum implements BaseEnum {
PENDING("520192817293693253", "待接单"), PENDING("520192817293693253", "待接单"),
UNPROCESSED("520192868833300805", "待上门/待服务"), UNPROCESSED("520192868833300805", "待上门/待服务"),
@ -19,9 +22,10 @@ public enum OrderStatusEnum {
CANCELED("520192817293693253", "已取消"); CANCELED("520192817293693253", "已取消");
// @EnumValue @EnumValue // 处理枚举与数据库类型自动转换
private final String code; private final String code;
// @JsonValue // 标记JSON序列化时展示的字段
private final String desc; private final String desc;

@ -1,6 +1,8 @@
package cc.yunxi.enums; package cc.yunxi.enums;
import cc.yunxi.common.enums.BaseEnum;
import cc.yunxi.common.enums.SwaggerDisplayEnum; import cc.yunxi.common.enums.SwaggerDisplayEnum;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@ -10,7 +12,7 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
@SwaggerDisplayEnum @SwaggerDisplayEnum
public enum OrderTypeEnum { public enum OrderTypeEnum implements BaseEnum {
SH_ORDER("520193382480351557", "散户下单"), SH_ORDER("520193382480351557", "散户下单"),
@ -20,6 +22,7 @@ public enum OrderTypeEnum {
ADM_ORDER("521999177572425477", "人工下单"); ADM_ORDER("521999177572425477", "人工下单");
@EnumValue
private final String code; private final String code;
private final String desc; private final String desc;

@ -12,7 +12,7 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
@SwaggerDisplayEnum @SwaggerDisplayEnum
@JsonFormat(shape = JsonFormat.Shape.OBJECT) // 将枚举转换为JSON格式 返回给前端 //@JsonFormat(shape = JsonFormat.Shape.OBJECT) // 将枚举转换为JSON格式 返回给前端
public enum UserTypeEnum implements BaseEnum { public enum UserTypeEnum implements BaseEnum {
CLIENT("1", "散户"), CLIENT("1", "散户"),

@ -49,8 +49,7 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
QueryWrapper<RecycleOrder> wrapper = new QueryWrapper<>(); QueryWrapper<RecycleOrder> wrapper = new QueryWrapper<>();
wrapper.lambda() wrapper.lambda()
.eq(StrUtil.isNotEmpty(recycleOrderQuery.getId()), RecycleOrder::getId, recycleOrderQuery.getId()) .eq(StrUtil.isNotEmpty(recycleOrderQuery.getId()), RecycleOrder::getId, recycleOrderQuery.getId())
.eq(StrUtil.isNotEmpty(recycleOrderQuery.getStatus()), RecycleOrder::getOrderStatus, recycleOrderQuery.getStatus()); .eq(ObjectUtil.isNotEmpty(recycleOrderQuery.getStatus()), RecycleOrder::getOrderStatus, recycleOrderQuery.getStatus());
Page<RecycleOrder> recycleOrderPage = page( Page<RecycleOrder> recycleOrderPage = page(
recycleOrderQuery.buildPageByDefaultOrder(RecycleOrder::getCreatorTime, true), wrapper); recycleOrderQuery.buildPageByDefaultOrder(RecycleOrder::getCreatorTime, true), wrapper);
return recycleOrderPage; return recycleOrderPage;
@ -76,8 +75,8 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
recycleOrder.setClientName(client.getNickName()); recycleOrder.setClientName(client.getNickName());
recycleOrder.setClientMobile(client.getMobilePhone()); recycleOrder.setClientMobile(client.getMobilePhone());
recycleOrder.setOrderNumber(idNumber); recycleOrder.setOrderNumber(idNumber);
recycleOrder.setOrderType(OrderTypeEnum.SH_ORDER.getCode()); recycleOrder.setOrderType(OrderTypeEnum.SH_ORDER);
recycleOrder.setOrderStatus(OrderStatusEnum.PENDING.getCode()); recycleOrder.setOrderStatus(OrderStatusEnum.PENDING);
this.save(recycleOrder); this.save(recycleOrder);
return recycleOrder.getId(); return recycleOrder.getId();
} }
@ -97,7 +96,7 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
UserDTO userDTO = UserContext.getUser(); UserDTO userDTO = UserContext.getUser();
validateOrderExists(userDTO.getId()); validateOrderExists(userDTO.getId());
RecycleOrder recycleOrder = BeanUtils.copyBean(orderTakingVO, RecycleOrder.class); RecycleOrder recycleOrder = BeanUtils.copyBean(orderTakingVO, RecycleOrder.class);
recycleOrder.setOrderStatus(OrderStatusEnum.UNPROCESSED.getCode()); recycleOrder.setOrderStatus(OrderStatusEnum.UNPROCESSED);
this.updateById(recycleOrder); this.updateById(recycleOrder);
} }

Loading…
Cancel
Save