共计 2406 个字符,预计需要花费 7 分钟才能阅读完成。
由于没有微信公众号,所以学到支付就走不下去了
建表相关:
create table `product_info`(`product_id` varchar(32) not null,
`product_name` varchar(64) not null comment '商品名称',
`product_price` decimal(8,2) not null comment '单价',
`product_stock` int not null comment '库存',
`product_description` varchar(64) comment '描述',
`product_ico` varchar(512) comment '小图',
`product_status` tinyint(3) default '0' comment '商品状态,0 正常 1 下架'
`category_type` int not null comment '类目编号',
`create_time` timestamp not null default current_timestamp comment '创建时间',
`update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
primary key(`product_id`)
)comment '商品表';
# 自动创建时间, 更新时间 配合 @DynamicUpdate(实体类上) 与 jpa 使用
jpa 的使用
public interface OrderMasterRepository extends JpaRepository<OrderMaster,String> {Page<OrderMaster> findByBuyerOpenid(String buyerOpenid, Pageable pageable);
}
枚举
根据需要定义多个枚举,如订单状态可为一个,支付状态可为一个,不要把所有状态定义在一个枚举里面
jpa 分页
public interface OrderMasterRepository extends JpaRepository<OrderMaster,String> {Page<OrderMaster> findByBuyerOpenid(String buyerOpenid, Pageable pageable);
}
controller: 接受 page,size:
PageRequest pageRequest = new PageRequest(page,size);
Page<OrderDTO> orderDTOPage = orderService.findList(openid, pageRequest);
DTO
根据需要定义 DTO 在业务中传递
控制时间磋长度:
public class Date2LongSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {jsonGenerator.writeNumber(date.getTime()/1000);
}
}
然后在传输类变量中使用,@JsonSerialize(using = Date2LongSerializer.class)
private Date createTime;
效果:时间缩短 3 位
返回 json
public class ProductVO {@JsonProperty("name")
private String categoryName;
@JsonProperty("type")
private Integer categoryType;
@JsonProperty("foods")
private List<ProductInfoVO> productInfoVOList;
}
json 返回字段 则是:name
type
foods
去掉返回 json 中为 null 字段的显示
spring:
jackson:
default-property-inclusion: non_null
对象的 copy
把 orderMaster 对象中的字段值复制到 orderDTO 的 字段中(只会复制相同名称的变量里面的值)
BeanUtils.copyProperties(orderMaster,orderDTO);
表单验证 controller 这样接受判断
public ResultVO<Map<String,String>>create(@Valid OrderForm orderForm,
BindingResult bindingResult){Map<String,String> map = new HashMap<>();
if(bindingResult.hasErrors()){log.error("【创建订单】表单参数不正确,orderForm={}",orderForm );
throw new SellException(ResultEnum.PARAM_ERROR.getCode(),
bindingResult.getFieldError().getDefaultMessage());
}
Lambda 表达式
List<Integer> categoryTypeList = productInfoList.stream()
.map(e -> e.getCategoryType())
.collect(Collectors.toList());
把集合 productInfoList 里面的 productInfo.getCategoryType() 遍历在 categoryTypeList
正文完
发表至: java
2019-09-19