短视频角色设定,快速产出统一视觉风格

核心内容摘要

基于神经架构搜索的推理模型适应技术
高效省市区选择解决方案:City Picker实战指南

从压力眼图到误码率:深入解析PCIE4.0接收端链路均衡测试全流程

实体类package com.mmwzcloud.jszj.module.jszj.dal.dataobject.jszjmemberuserpaymentrecord; import com.mmwzcloud.jszj.framework.commonjszj.dto.UserPaymentRecordBizJsonDto; import com.mmwzcloud.jszj.framework.commonjszj.mybatisplustypehandler.UserPaymentRecordBizJsonTypeHandler; import lombok.*; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.*; import com.mmwzcloud.jszj.framework.mybatis.core.dataobject.BaseDO; /** * 用户支付记录 DO * * author 景春德 */ TableName(value jszj_member_user_payment_record, autoResultMap true) KeySequence(jszj_member_user_payment_record_seq) // 用于 Oracle、PostgreSQL、Kingbase、DB

H2 数据库的主键自增。

如果是 MySQL 等数据库可不写。

Data EqualsAndHashCode(callSuper true) ToString(callSuper true) Builder NoArgsConstructor AllArgsConstructor public class JszjMemberUserPaymentRecordDO extends BaseDO { /** * ID */ TableId private Long id; /** * 用户ID */ private Long userId; /** * payment_type 支付类型 aliPayment:支付宝 weChatPayment:微信支付 */ private String paymentType; /** * 支付订单号 */ private String outTradeNo; /** * 状态 0:已生成未支付 1:已支付 2:退款中 3:退款成功 */ private Integer state; /** * 支付金额 */ private BigDecimal money; /** * 购买的业务表名 */ private String tableName; /** * 购买的业务表id */ private Long tableId; /** * 购买的业务表字段 */ private String tableField; /** * 支付的业务,如果支付的业务没有相关表,可以使用此字段记录支付业务的类型和数据 */ TableField(value biz_json, typeHandler UserPaymentRecordBizJsonTypeHandler.class) private UserPaymentRecordBizJsonDto bizJson; }主要是 autoResultMap true 和 TableField(value biz_json, typeHandler UserPaymentRecordBizJsonTypeHandler.class)json对应的实体类package com.mmwzcloud.jszj.framework.commonjszj.dto; import lombok.Data; import java.util.Map; Data public class UserPaymentRecordBizJsonDto { //业务类型 private String bizType; //业务数据 private MapString,String bizData; }转换的方法package com.mmwzcloud.jszj.framework.commonjszj.mybatisplustypehandler; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.mmwzcloud.jszj.framework.commonjszj.dto.UserPaymentRecordBizJsonDto; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedTypes; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; MappedTypes(UserPaymentRecordBizJsonDto.class) public class UserPaymentRecordBizJsonTypeHandler extends BaseTypeHandlerUserPaymentRecordBizJsonDto { private static final ObjectMapper objectMapper new ObjectMapper(); Override public void setNonNullParameter(PreparedStatement ps, int i, UserPaymentRecordBizJsonDto parameter, JdbcType jdbcType) throws SQLException { try { String json objectMapper.writeValueAsString(parameter); ps.setString(i, json); } catch (JsonProcessingException e) { throw new SQLException(Failed to convert UserPaymentRecordBizJsonDto to JSON, e); } } Override public UserPaymentRecordBizJsonDto getNullableResult(ResultSet rs, String columnName) throws SQLException { return parseJson(rs.getString(columnName)); } Override public UserPaymentRecordBizJsonDto getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return parseJson(rs.getString(columnIndex)); } Override public UserPaymentRecordBizJsonDto getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return parseJson(cs.getString(columnIndex)); } private UserPaymentRecordBizJsonDto parseJson(String json) { if (json null || json.trim().isEmpty()) { return null; } try { return objectMapper.readValue(json, UserPaymentRecordBizJsonDto.class); } catch (JsonProcessingException e) { throw new RuntimeException(Failed to parse JSON to UserPaymentRecordBizJsonDto: json, e); } } }

小蒜直播-小蒜直播应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123