首页>代码>spring mvc+mybatis+mysql+maven+bootstrap-table整合实现增删查改简单实例>/demo-bstable/src/main/java/com/xe/demo/common/utils/AppUtil.java
package com.xe.demo.common.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.lang3.StringUtils;

import com.github.pagehelper.PageHelper;
import com.xe.demo.common.pojo.AjaxResult;
import com.xe.demo.common.pojo.PageAjax;
import com.xe.demo.common.pojo.ParamData;

/**
 * 参数工具
 * @author czh
 * @2016年11月11日
 */
public class AppUtil {

	/**
	 * 检验参数
	 * @param key
	 * @param data
	 * @return
	 */
	public static String checkParam(ParamData params, String[] args) {
		String result = null;
		if(null != args && args.length > 0){
			int size = args.length;
			for (int i = 0; i < size; i++) {
				String param = args[i];
				if (!params.containsKey(param)) {// 检验参数是否传递
					result = "缺少参数:" + param;
					break;
				}
				if (null == params.get(param)) {// 检验参数是否为空
					result = "参数" + param + "不能为空";
					break;
				}
			}
		}
		return result;
	}
	
	/**
	 * 开始分页
	 * @param params
	 * @param order 排序:clumn1 desc, clumn2 desc
	 */
	public static void startPage(ParamData params) {
		if (null != params.get("pageNo") && null != params.get("pageSize")) {
			String order = params.get("sortName") + " " + params.get("sortOrder");
			int pageNo = params.getInt("pageNo");
			int pageSize = params.getInt("pageSize");
			PageHelper.startPage(pageNo, pageSize, order);
		}
	}
	
	/**
	 * 封装接口返回数据
	 * @param result
	 * @return
	 */
	public static AjaxResult returnObj(String result) {
		if (StringUtils.isEmpty(result)) {
			return new AjaxResult();
		}
		return new AjaxResult(result);
	}

	/**
	 * 封装带数据的返回
	 * @param result
	 * @param data
	 * @return
	 */
	public static AjaxResult returnObj(String result, Object data) {
		if (StringUtils.isEmpty(result)) {
			return new AjaxResult(data);
		}
		return new AjaxResult(result);
	}

	/**
	 * 封装带集合的返回
	 * @param result
	 * @param T
	 * @return
	 */
	public static <T> AjaxResult returnList(String result, List<T> list) {
		if (StringUtils.isEmpty(result)) {
			return returnObj(result, list);
		}
		list = new ArrayList<T>();
		return new AjaxResult(0, result, list);
	}

	/**
	 * 封装分页查询返回
	 * @param result
	 * @param list
	 * @return
	 */
	public static <T> AjaxResult returnPage(String result, List<T> list) {
		return returnObj(result, new PageAjax<T>(list));
	}
	
	/**
	 * 封装分页查询返回
	 * @param list
	 * @return
	 */
	public static <T> PageAjax<T> returnPage(List<T> list){
		return new PageAjax<T>(list);
	}

	/**
	 * 比较两个实体类属性值是否相等
	 * @param source
	 * @param target
	 * @return
	 * @throws Exception
	 */
	public static boolean entityIsEquals(Object source, Object target) throws Exception {
		if (source == null || target == null) {
			return false;
		}
		boolean ret = true;
		Class<?> srcClass = source.getClass();
		Field[] fields = srcClass.getDeclaredFields();
		String nameKey = null;
		String srcValue = null;
		String tarValue = null;
		for (Field field : fields) {
			nameKey = field.getName();
			srcValue = getClassValue(source, nameKey) == null ? "" : getClassValue(source, nameKey).toString();
			tarValue = getClassValue(target, nameKey) == null ? "" : getClassValue(target, nameKey).toString();
			if (!srcValue.equals(tarValue)) {
				ret = false;
				break;
			}
		}
		return ret;
	}

	/**
	 * 根据字段名称取值
	 * @param obj
	 * @param fieldName
	 * @return
	 * @throws Exception
	 */
	private static Object getClassValue(Object obj, String fieldName) throws Exception {
		@SuppressWarnings("rawtypes")
		Class beanClass = obj.getClass();
		Method[] ms = beanClass.getMethods();
		for(Method method: ms){
			// 非get方法不取
			if(method.getName().startsWith("get")){
				Object objValue = method.invoke(obj, new Object[] {});
				if(null != objValue){
					if(method.getName().toUpperCase().equals(fieldName.toUpperCase()) || method.getName().substring(3).toUpperCase().equals(fieldName.toUpperCase())){
						return objValue;
					}
				}
			}
		}
		return null;
	}

	/**
	 * 生成N位随机数
	 * @param length
	 * @return
	 */
	public static String getRandomString(int length) {
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; ++i) {
			int number = random.nextInt(3);
			long result = 0;

			switch (number) {
			case 0:
				result = Math.round(Math.random() * 25 + 65);
				sb.append(String.valueOf((char) result));
				break;
			case 1:
				result = Math.round(Math.random() * 25 + 97);
				sb.append(String.valueOf((char) result));
				break;
			case 2:
				sb.append(String.valueOf(new Random().nextInt(10)));
				break;
			}
		}
		return sb.toString();
	}

	/**
	 * 生成N位纯数字验证码
	 * @return
	 */
	public static String getVerificationCode(int n) {
		final Random random = new Random();
		String verificationCode = "";
		for (int i = 0; i < n; i++) {
			verificationCode += random.nextInt(10);
		}
		return verificationCode;
	}

	/**
	 * 生产注单号
	 * @return
	 */
	public static String getOrdercode() {
		String time = String.valueOf(System.currentTimeMillis());
		return time + time.subSequence(2, 6) + getVerificationCode(1);
	}

	/**
	 * 生成32位UUID
	 * @return
	 */
	public static String getUuid() {
		return UUID.randomUUID().toString().replace("-", "");
	}
	
	/**
	 * 相除
	 * @param num1
	 * @param num2
	 * @return
	 */
	public static String divide(Object num1, Object num2){
		Float num = Float.parseFloat(num1.toString());
		BigDecimal b1 = new BigDecimal(num);
		BigDecimal b2 = new BigDecimal(num2.toString());
		Double result = b1.divide(b2, 2, RoundingMode.HALF_UP).doubleValue();
		return new DecimalFormat("#,##0.00").format(result);
	}
	
	public static String formatValue(double source){
		return new DecimalFormat("###0.00").format(source);
	}
	
	public static Double formatDouble(double source){
		return Double.parseDouble(formatValue(source));
	}

	public static void main(String[] args) {
		// Set<String> sets = new HashSet<String>();
		// for(int i = 0; i < 1000000; i ++){
		// sets.add(getRandomString(20));
		// }
		// System.out.println(sets.size());
		// System.out.println(getRandomString(20));
//		AuthOperation op1 = new AuthOperation();
//		op1.setOpCode("002");
//		op1.setOpid(1);
//
//		AuthOperation op2 = new AuthOperation();
//		op2.setOpCode("002");
//		op2.setOpid(1);
//		try {
//			System.out.println(entityIsEquals(op1, op2));
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		System.out.println(divide(10, "0.75"));
	}

}
最近下载更多
fff团团长  LV1 9月7日
featherteng  LV1 5月3日
h G24741  LV2 3月12日
shuangfu  LV25 2023年9月6日
莉莉姆  LV1 2023年8月31日
279824554  LV2 2023年6月25日
MHB123  LV5 2023年6月3日
Fyx123456  LV1 2023年5月31日
张真狗  LV9 2023年5月22日
酒酒清欢  LV8 2023年5月21日
最近浏览更多
fff团团长  LV1 9月7日
xingxiu  LV1 6月8日
rudyfather 6月4日
暂无贡献等级
yangzhou11 5月18日
暂无贡献等级
huigui007 5月16日
暂无贡献等级
featherteng  LV1 5月3日
wdfgta 4月18日
暂无贡献等级
sohfow 4月14日
暂无贡献等级
h G24741  LV2 3月12日
yhf123 2月22日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友