公共资源定义
一、接口返回值定义:
public class RestResponse<T>{
//返回信息
private String resultMsg;
//返回代码
private String resultCode;
private T data;
public RestResponse(){
}
public RestResponse(String resultCode, String resultMsg) {
this.resultMsg = resultMsg;
this.resultCode = resultCode;
}
public RestResponse(String resultCode, String resultMsg,T data) {
this.data=data;
this.resultMsg = resultMsg;
this.resultCode = resultCode;
}
public RestResponse<T> normalRestResponse(){
this.setResultCode("1");
this.setResultMsg("成功");
return this;
}
public RestResponse<T> normalRestResponse(T data){
this.setResultCode("1");
this.setResultMsg("成功");
this.setData(data);
return this;
}
public RestResponse<T> excetpionRestResponse(){
this.setResultCode("E0001");
this.setResultMsg("失败");
return this;
}
public RestResponse<T> excetpionRestResponse(T data){
this.setResultCode("E0001");
this.setResultMsg("失败");
this.setData(data);
return this;
}
public String getResultMsg() {
return resultMsg;
}
public void setResultMsg(String resultMsg) {
this.resultMsg = resultMsg;
}
public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
二、异常处理:
private Logger logger = LoggerFactory.getLogger(AbstractRestController.class);
interface ExceptionHandler<T>{
RestResponse<T> Handle() throws IOException, InterruptedException;
}
public <T> RestResponse<T> exceptionHandler(ExceptionHandler<T> exceptionHandler){
RestResponse<T> restResponse;
try {
restResponse= exceptionHandler.Handle();
}catch (QueryReturnNullException e){
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
}catch (ParamterVerifyException e){
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
}catch (NxtCommonException e) {
logger.error(e.getMessage(), e);
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage(), e);
restResponse = new RestResponse<T>().excetpionRestResponse();
}
return restResponse;
}
//异常返回类
public class NxtCommonException extends RuntimeException{
private String errCode;
public NxtCommonException(String errCode,String message) {
super(message);
this.errCode=errCode;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
}
//异常字段定义
public static final String PARAM_EMPTY="E0001";
public static final String QUERY_RESULT_NULL ="QE0001";
public static class TaskException{
public static final String TASK_NOT_EXIST="TE0001";
public static final String TASK_FAILURE="TE0002";
}
public static class UserException{
public static final String USER_NOT_FOUND="UE0001";
public static final String USER_PASSWORD_MISMATCH="UE0002";
}
public static class OrderException{
public static final String ORDERNO_NOT_EXIST ="OE0001";
public static final String ORDER_SERVICE_EXIST ="OE0002";
public static final String PRODUCT_NOT_EXIST="OE1003";
}
public static class BankException{
public static final String BANK_NOT_EXIST="BE0001";
public static final String BANK_BRANCH_NOT_EXIST="BE0002";
public static final String BANK_ACCOPENNING_INFO_NOT_EXIST="BE0003";
public static final String BANK_MOBILE_VERIFYCODE="BE0004";
}
public enum EntExceptionEnum{
EntParamMissing("EE0006","字段缺失");
private String errCode;
private String errMsg;
EntExceptionEnum(String errCode, String errMsg) {
this.errCode = errCode;
this.errMsg = errMsg;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
@Override
public String toString() {
return "EntExceptionEnum{" +
"errCode='" + errCode + '\'' +
", errMsg='" + errMsg + '\'' +
'}';
}
}
public static class EntException{
public static final String ENT_NOT_EXIST="EE0001";
public static final String ENT_ADDRESS_NOT_EXIST="EE0002";
public static final String ENT_PERSON_NOT_EXIST="EE0003";
public static final String ENT_SELENIUM_ERROR="EE0004";
public static final String ENT_EXIST="EE0005";
public static final String ENT_LICENSE_PARSE_ERROR="EE1001";
public static final String ENT_SCOPE_MAPPING_NOT_FOUND="EE9001";
public static final String ENT_IDENT_IMG_PARSE_FAIR="EE9002";
}
//接口父类
abstract class AbstractRestController {
private Logger logger = LoggerFactory.getLogger(AbstractRestController.class);
interface ExceptionHandler<T>{
RestResponse<T> Handle() throws IOException, InterruptedException;
}
public <T> RestResponse<T> exceptionHandler(ExceptionHandler<T> exceptionHandler){
RestResponse<T> restResponse;
try {
restResponse= exceptionHandler.Handle();
}catch (QueryReturnNullException e){
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
}catch (ParamterVerifyException e){
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
}catch (NxtCommonException e) {
logger.error(e.getMessage(), e);
restResponse = new RestResponse<>(e.getErrCode(), e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage(), e);
restResponse = new RestResponse<T>().excetpionRestResponse();
}
return restResponse;
}
}
//调用示例
@GetMapping("/searchUserInfo")
public RestResponse<UserInfoEntity> searchUserInfo(Long id) {
return exceptionHandler(() -> {
logger.info("查询用户信息,通过id:"+id);
UserInfoEntity userInfo = userService.findUserInfo(id);
return new RestResponse<UserInfoEntity>().normalRestResponse(userInfo);
});
}
三、动态查询
//封装公用实体类
public class EntitySearchCriteria<T extends Serializable> implements SearchCriteria {
private T entity;
private EntitySearchCriteria(T entity){
this.entity = entity;
}
/**
* Static method for creating the EntitySearchCriteria obj
*
* @param entity the wrapped entity
* @param <T>
* @return the EntitySearchCriteria obj
*/
public static <T extends Serializable> EntitySearchCriteria createCriteria(T entity){
return new EntitySearchCriteria<>(entity);
}
/**
* Return the entity object.
*
* @return the entity object
*/
public T getEntity(){
return entity;
}
}
//定义动态查询接口
public interface SearchCriteria{
}
EntitySearchCriteria criteria = EntitySearchCriteria.createCriteria(baseData); //参数
List<EntpriseBaseInfoWrapper> fetchWithCriteriaForRatio(@Param("searchCriteria") EntitySearchCriteria searchCriteria); //mapper方法
//sql
<select id="searchBusiScopeCount" resultType="java.lang.Integer" parameterType="EntitySearchCriteria">
select
count(*) from
nxt_ent_big_data_enterprise_base_info bd
where bd.ent_name_hangye=#{searchCriteria.entity.entNameHangye} and bd.ent_busi_scope=#{searchCriteria.entity.entBusiScope}
GROUP BY bd.ent_name_hangye, bd.ent_busi_scope
</select>
//调用示例
EntitySearchCriteria criteria = EntitySearchCriteria.createCriteria(baseData);
List<EntpriseBaseInfoWrapper> enterpriseBaseInfo = entBigDataBaseInfoBaseMapper.fetchWithCriteriaForRatio(criteria);
四、公用mapper父类
public interface GenericMyBatisMapper<T extends Serializable, PK> {
T fetchById(@Param("id") PK id);
List<T> fetchWithCriteria(@Param("searchCriteria") EntitySearchCriteria searchCriteria);
void insert(T entity);
void update(T entity);
void delete(T entity);
void softDelete(T entity);
}
五、公用实体父类
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 数据库默认主键
protected Long createdBy;
protected Timestamp createdTime;
protected Long updatedBy;
protected Timestamp updatedTime;
protected boolean deleted;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Long createdBy) {
this.createdBy = createdBy;
}
public Timestamp getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Timestamp createdTime) {
this.createdTime = createdTime;
}
public Long getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(Long updatedBy) {
this.updatedBy = updatedBy;
}
public Timestamp getUpdatedTime() {
return updatedTime;
}
public void setUpdatedTime(Timestamp updatedTime) {
this.updatedTime = updatedTime;
}
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
BaseEntity that = (BaseEntity) o;
if (deleted != that.deleted) return false;
if (!id.equals(that.id)) return false;
if (createdBy != null ? !createdBy.equals(that.createdBy) : that.createdBy != null) return false;
if (createdTime != null ? !createdTime.equals(that.createdTime) : that.createdTime != null) return false;
if (updatedBy != null ? !updatedBy.equals(that.updatedBy) : that.updatedBy != null) return false;
return updatedTime != null ? updatedTime.equals(that.updatedTime) : that.updatedTime == null;
}
@Override
public int hashCode() {
int result = id.hashCode();
result = 31 * result + (createdBy != null ? createdBy.hashCode() : 0);
result = 31 * result + (createdTime != null ? createdTime.hashCode() : 0);
result = 31 * result + (updatedBy != null ? updatedBy.hashCode() : 0);
result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
result = 31 * result + (deleted ? 1 : 0);
return result;
}
@Override
public String toString() {
return "id=" + id +
", createdBy=" + createdBy +
", createdTime=" + createdTime +
", updatedBy=" + updatedBy +
", updatedTime=" + updatedTime +
", deleted=" + deleted;
}
}
标题:公共资源定义
作者:Nick1407
地址:https://nick1407.com/articles/2019/07/08/1562564271314.html
0 0