PageHelper about using open source code.

Dependency injection, interception achieve @LIst annotation class:

package com.yumu.airshow.Config;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yumu.airshow.Annotation.*;
import com.yumu.airshow.Model.Page;
import com.yumu.airshow.Utils.ResultUtil;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


/**
 * Created by qa on 19/5/7.
 */



@Component
@Aspect
public class ParamValidAspect {

    @Before("@annotation(paramValid)")
    public void aroundObject(JoinPoint proceedingJoinPoint , ParamValid paramValid) throws Throwable {
        Object[] args = proceedingJoinPoint.getArgs();

        for (Object argItem : args) {

            if (argItem instanceof BindingResult) {// pre-authentication
                BindingResult result = (BindingResult) argItem;
                String errorMap = this.validRequestParams(result);
                if (errorMap != null) {
                    throw new ValidException(errorMap);
                }
            }
        }


    }

    @Around("@annotation(ymInsert)")
    public Object aroundObject(ProceedingJoinPoint proceedingJoinPoint , YmInsert ymInsert) throws Throwable {
        return this.around(proceedingJoinPoint,"ymInsert");

    }

    @Around("@annotation(ymUpdate)")
    public Object aroundObject(ProceedingJoinPoint proceedingJoinPoint , YmUpdate ymUpdate) throws Throwable {
        return this.around(proceedingJoinPoint,"ymUpdate");

    }

    @Around("@annotation(ymDelete)")
    public Object aroundObject(ProceedingJoinPoint proceedingJoinPoint , YmDelete ymDelete) throws Throwable {
        return this.around(proceedingJoinPoint,"ymDelete");

    }

    @Around("@annotation(ymDetail)")
    public Object aroundObject(ProceedingJoinPoint proceedingJoinPoint , YmDetail ymDetail) throws Throwable {
        return this.around(proceedingJoinPoint,"ymDetail");

    }

    @Around("@annotation(ymObject)")
    public Object aroundObject(ProceedingJoinPoint proceedingJoinPoint , YmObject ymObject) throws Throwable {
        return this.around(proceedingJoinPoint,"ymObject");



    }

    @Around("@annotation(ymList)")
    public <T>Object aroundList(ProceedingJoinPoint proceedingJoinPoint , YmList ymList) throws Throwable {
        return this.around(proceedingJoinPoint,"ymList");

    }

    public <T>Object around(ProceedingJoinPoint proceedingJoinPoint , String option) throws Throwable {
        Object[] args = proceedingJoinPoint.getArgs();
        Page page=null;
        for (Object argItem : args) {
            System.out.println("argItem:"+argItem);
            if (argItem instanceof Page) {// set tab
                page = (Page) argItem;

                System.out.println("getPage_num:"+page.getPage_num()+",getPage_size:"+page.getPage_size());

                if(!page.getSort().equals(""))
                    PageHelper.startPage(page.getPage_num(), page.getPage_size(), page.getSort());
                else
                    PageHelper.startPage(page.getPage_num(), page.getPage_size());
            }
            if (argItem instanceof BindingResult) {// pre-authentication
                BindingResult result = (BindingResult) argItem;
                String errorMap = this.validRequestParams(result);
                if (errorMap != null) {
                    return ResultUtil.errorValidated(errorMap);
                }
            }
        }

        if(option.equals("ymList")){
            List<T> reuslt = new ArrayList<T>();
            try {
                reuslt = (List<T>) proceedingJoinPoint.proceed();
            } catch (Exception e) {
                throw new RuntimeException ( "return type is not List:" + e.getMessage ());
            }
            PageInfo<T> pageList = new PageInfo<T>(reuslt);
            return ResultUtil.successList(pageList);
        }

        Object reuslt = null;
        try {
            reuslt = (Object) proceedingJoinPoint.proceed();
        } catch (Exception e) {
            throw new RuntimeException ( "return type is not Object:" + e.getMessage ());
        }

        System.out.println(reuslt);

        int _reuslt_code=-1;
        String _reuslt__errorMsg="";
        String _reuslt_Msg="";
        if (reuslt instanceof Integer) {
            _reuslt_code=((Integer) reuslt).intValue();

        }
        if (reuslt instanceof String) {
            _reuslt__errorMsg=reuslt.toString();
        }
        if (reuslt instanceof HashMap) {
            try {
                _reuslt_code = Integer.parseInt(((HashMap) reuslt).get("code").toString());
            }catch (Exception e){e.printStackTrace();}
            try {
                Object msg = ((HashMap) reuslt).get("msg");
                if(msg != null){
                    if(_reuslt_code>0)
                        _reuslt_Msg=msg.toString();
                    else
                        _reuslt__errorMsg = msg.toString();
                }
            }catch (Exception e){e.printStackTrace();}

        }

        if(option.equals("ymDetail"))return ResultUtil.successDetail(reuslt);
        if(option.equals("ymObject")){
            if(_reuslt_code==0 || !_reuslt__errorMsg.equals("")) {
                if(!_reuslt__errorMsg.equals(""))
                    return ResultUtil.failDelete(reuslt,_reuslt__errorMsg);
                else
                    return ResultUtil.failDelete(reuslt);
            }else{
                if(!_reuslt_Msg.equals(""))
                    return ResultUtil.successObject(reuslt,_reuslt_Msg);
                else
                    return ResultUtil.successObject(reuslt);
            }
        }
        if(option.equals("ymDelete")){
            if(_reuslt_code==0 || !_reuslt__errorMsg.equals("")) {
                if(!_reuslt__errorMsg.equals(""))
                    return ResultUtil.failDelete(reuslt,_reuslt__errorMsg);
                else
                    return ResultUtil.failDelete(reuslt);
            }else{
                if(!_reuslt_Msg.equals(""))
                    return ResultUtil.successObject(reuslt,_reuslt_Msg);
                else
                    return ResultUtil.successDelete(reuslt);
            }
        }
        if(option.equals("ymUpdate")){
            if(_reuslt_code==0 || !_reuslt__errorMsg.equals("")) {
                if(!_reuslt__errorMsg.equals(""))
                    return ResultUtil.failUpdate(reuslt,_reuslt__errorMsg);
                else
                    return ResultUtil.failUpdate(reuslt);
            }else{
                if(!_reuslt_Msg.equals(""))
                    return ResultUtil.successObject(reuslt,_reuslt_Msg);
                else
                    return ResultUtil.successUpdate(reuslt);
            }
        }
        if(option.equals("ymInsert")){
            if(_reuslt_code==0 || !_reuslt__errorMsg.equals("")) {
                if(!_reuslt__errorMsg.equals(""))
                    return ResultUtil.failInsert(reuslt,_reuslt__errorMsg);
                else
                    return ResultUtil.failInsert(reuslt);
            }else{
                if(!_reuslt_Msg.equals(""))
                    return ResultUtil.successObject(reuslt,_reuslt_Msg);
                else
                    return ResultUtil.successInsert(reuslt);
            }
        }

        return ResultUtil.errorException(reuslt);
    }

    /**
     * Check
     */
    private String validRequestParams(BindingResult result) {
        if(result.hasErrors()) {
            List<ObjectError> list = result.getAllErrors();
            String errorMsg="";
            for (int i = 0; i < list.size(); i++) {
                FieldError error = (FieldError) list.get(i);
                errorMsg += error.getField() + error.getDefaultMessage() + ";";

            }
            return errorMsg;
        }

        return null;
    }


}

  

Configure attributes of the class pageHelper:
package com.yumu.airshow.Config;

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.Properties;

@Configuration
public class PageHelperConfig {



	@Bean
    public PageHelper pageHelper() {
		System.out.println("MyBatisConfiguration.pageHelper()");
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }

}

  Request reloading tools to achieve the results:

package com.yumu.airshow.Utils;

import com.github.pagehelper.PageInfo;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * Created by qa on 19/5/5.
 */


public class ResultUtil {

/ * Error Code List
200: 'server successfully return the requested data. ', // detail --- 200, no content data = {}, list --- 200, no content data = []
201: 'new or modified data successfully. ', // ok
202: 'a request has been queued into the background (asynchronous task). '
204: 'Delete data successfully. ', // ok
crud error:


Internal server error: 500
400: 'request issued error, the server does not operate new or modified data. '
401: 'user does not have permission (Token, username, password error). Authentication '
402: Data format:
403: 'the user is authorized, but access is prohibited. '
404: 'requests for the recording does not exist, the server does not operate. '
406: 'request format is not available. '
407: 'phone number already exists. '
410: 'the requested resource is permanently deleted, and will not be obtained. '
422: 'When an object is created, a verification error occurs. '
434: insert data failed
434: delete error
435: update error
500: 'A server error occurred, please check the server. '
502: 'Error gateway. '
503: 'service is not available, the server is temporarily overloading or maintenance. '
504: 'Gateway Timeout. '
*/


    public static Object successInsert(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "new success!");
        json.put("code",200);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }

    public static Object  failInsert(Object object){
        return failInsert (object, "Add failed!");
    }
    public static Object  failInsert(Object object, String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",434);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }

    public static Object successUpdate(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "updated successfully!");
        json.put("code",200);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }
    public static Object  failUpdate(Object object){
        return failUpdate (object, "update failed!");
    }
    public static Object  failUpdate(Object object, String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",435);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }
    public static Object successDelete(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "deleted successfully!");
        json.put("code",200);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }
    public static Object  failDelete(Object object){
        return failDelete (object, "Delete failed!");
    }
    public static Object  failDelete(Object object,String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",434);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }
    public static Object successDetail(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "for details success!");
        json.put("code",200);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }

    public static Object  successObject(Object object){
        return failDelete(object,"成功!");
    }
    public static Object successObject(Object object,String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",200);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }

    public static Object  failObject(Object object){
        return failDelete(object,"失败!");
    }
    public static Object failObject(Object object,String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",403);
        if(object==null)
            json.put("data",new HashMap());
        else
            json.put("data",object);
        return json;
    }
    public static Object successList(PageInfo objectPage){
        HashMap json=new HashMap();
        json.put ( "msg", "get the list of success!");
        json.put("code",200);

        if(objectPage!=null){
            HashMap page=new HashMap();
            page.put("count_page", objectPage.getPages());
            page.put("count_size", objectPage.getTotal());
            page.put("current_page", objectPage.getPageNum());

            json.put("data",objectPage.getList());
            json.put("page",page);
        }else{
            json.put("data",new ArrayList());
            json.put("page",new HashMap());
        }
        return json;
    }

    public static Object errorValidated(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "Data format error!");
        json.put("code",402);
        if(object==null)
            json.put("data",new ArrayList());
        else
            json.put("data",object);
        return json;
    }

    public static Object  failAuthenticate(Object object){
        return failDelete(object,"鉴权!");
    }
    public static Object failAuthenticate(Object object,String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",402);
        if(object==null)
            json.put("data",new ArrayList());
        else
            json.put("data",object);
        return json;
    }

    public static Object unLogin(Object object,String errorMsg){
        HashMap json=new HashMap();
        json.put("msg",errorMsg);
        json.put("code",499);
        if(object==null)
            json.put("data",new ArrayList());
        else
            json.put("data",object);
        return json;
    }

    public static HashMap errorService(String msg){
        HashMap json = new HashMap();

        json.put("code",407);
        if(msg.isEmpty()){
            json.put ( "msg", "business mistake!");
        } else {
            json.put("msg", msg);
        }

        return json;
    }

    public static Object errorException(Object object){
        HashMap json=new HashMap();
        json.put ( "msg", "abnormal throwing wrong!");
        json.put("code",555);
        if(object==null)
            json.put("data",new ArrayList());
        else
            json.put("data",object);
        return json;
    }


}

  

Guess you like

Origin www.cnblogs.com/zhq510/p/11020088.html