62,634
社区成员




3 List< Clock > list = null;
2 SqlSession ss = SqlSessionFactoryBuilder.singleInstance().openSession();
1 try{
0 Mapper m = ss.getMapper( Mapper.class );
1 ClockQuery query = new ClockQuery();
2 query.setEmployeeId( _employee != null ? _employee.getId() : null )
3 .setCustomerId( _customer != null ? _customer.getId() : null )
4 .setStartCreateTime( _start_time )
5 .setEndCreateTime( _end_time )
6 .setIsReceipt( _is_receipt )
7 .setIsReckoning( _is_reckoning );
8 list = m.SELECT_FROM_tb_clock( query );
9 ss.commit();
10 }finally{
11 ss.close();
12 }
13 return list != null ? list : new LinkedList< Clock >();
package com.ceair.unified.ws;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class LogInterceptor {
private String result = "";//结果集
@Pointcut("execution(* com.ceair.unified.ws.*..*.*(..))")
private void log() {
}
@Before("log() && args(t))")
public <T> void logInterceptor_before(JoinPoint joinPoint,T t) {
try{
Map<String, String> map = new HashMap<String, String>();
Field [] fields=t.getClass().getSuperclass().getDeclaredFields();//获取t对象父类属性名称
for (int i = 0; i < fields.length; i++) {
String name =fields[i].getName(); //属性名称
if(StringUtils.equals("channelNo", name) || StringUtils.equals("secondChannelNo", name) || StringUtils.equals("thirdChannelNo", name) || StringUtils.equals("userId", name)){
name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set
String methodName = "get"+name; //get方法名称
Method m = t.getClass().getMethod(methodName); //获取方法
String value = (String)m.invoke(t); //获取值
map.put(methodName, value);
}
}
if(StringUtils.isBlank(map.get("getUserId"))){
result = "userId不能为空";
}else if(StringUtils.isBlank(map.get("getChannelNo")) && StringUtils.isBlank(map.get("getSecondChannelNo")) && StringUtils.isBlank(map.get("getThirdChannelNo"))){
result = "3个渠道号至少填一个(getChannelNo,getSecondChannelNo,getThirdChannelNo)";
}else{
result = "success";
}
}catch(Exception e){
result = "Exception:"+e.getMessage();
}
}
@Around("log()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{
Object obj;//client 接收
if(result.equals("success")){
obj = pjp.proceed();//调用接口
}else{
//获取接口方法返回类型
Signature signature = pjp.getSignature();
Class<?> returnType = ((MethodSignature)signature).getReturnType();
//class实例化成obj
obj = returnType.newInstance();
//获取BaseRs所有属性
Field[] field = returnType.getSuperclass().getDeclaredFields();
//设置属性值
for(Field item : field){
item.setAccessible(true);
if(item.getType() == String.class)
item.set(obj,result);
if(item.getType() == int.class)
item.set(obj,0);
}
}
return obj;
}
}
/**
* 发送消息 <br/>
* @author Administrator
* @Date May 12,2015
* @param roleIds 角色ID数组 不能为空
* @param msgTitle 消息标题 不能为空
* @param msgContent 消息内容 可以为空
* @param messageType 消息类型 可以为空(默认为一般消息)
*/
public static void sendMessage(String[] roleIds,String msgTitle,String msgContent,MessageType messageType){
if(null == roleIds || roleIds.length <= 0){
logger.error("发送消息失败 角色ID不能为空");
return ;
}
if(null == msgTitle || "".equals(msgTitle)){
logger.error("发送消息失败 消息标题不能为空");
return ;
}
if(null == messageType || "".equals(messageType)){
messageType = MessageType.COMMON_MSG;
return ;
}
logger.info("**********发送消息开始**********");
StringBuffer str = new StringBuffer();
for (int i = 0,len = roleIds.length; i < len; i++) {
String[] ids = null;//需根据业务自定义获取所需要的IDS
if(null != ids && ids.length>0)
str.append(ids.toString() + "$");
}
String[] userIds = null;
if(null != str && !"".equals(str.toString()))
userIds = str.toString().substring(0, str.toString().length()-1).split("$");
MessageDTO m = new MessageDTO(msgTitle,msgContent,messageType);
if(!StringUtils.isBlank(userIds)){
MessageInterface.sendMessage(m, userIds);//发送消息给相应角色
}else{
logger.error("-------------------------发送消息失败 没有要接收消息的用户,请检查---------------------------");
}
logger.info("**********发送消息结束**********");
}
public static String subSqlOrHql(String sqlOrHql){
String oldStr = sqlOrHql.trim();
sqlOrHql = sqlOrHql.toLowerCase().trim();
int b = sqlOrHql.lastIndexOf(" order by ");
if(b != -1){
for(char c: sqlOrHql.substring(b+10).toCharArray()){
if(c == ')'){
b = -1;
break;
}
}
}
if(sqlOrHql.startsWith("from ")){
if(b == -1)
return oldStr;
return oldStr.substring(0, b);
}
int i = 0;
int j = 0;
int k = 0;
int a = 0;
String s = "";
while(true){
a = sqlOrHql.indexOf(" from ", k);
s = sqlOrHql.substring(k, a);
char[] cs = s.toCharArray();
for(char c : cs){
if(c == '('){
i++;
}
if(c == ')'){
j++;
}
}
if(i == j){
break;
}
k = a + 6;
}
if(b == -1)
return oldStr.substring(a);
return oldStr.substring(a, b);
}
/**
* 获取类的父类,接口,函数,成员,类型等信息
*/
@Test
public void demo5(){
Class<?> class1 = null;
try {
class1 = Class.forName("com.xxx.xxx.xxx");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("父类的信息");
//获取类继承的父类的信息
Class<?> superClass = class1.getSuperclass();
System.out.println(superClass.getName());
System.out.println("接口的信息");
//获取类实现的接口
Class<?> interfaces[] = class1.getInterfaces();
for (Class<?> inter:interfaces){
System.out.println(inter.getName());
}
System.out.println("构造函数的信息");
//获取类的构造函数
Constructor<?> constructor[] = class1.getConstructors();
for (Constructor<?> con:constructor){
System.out.println(con);
}
System.out.println("类属性信息");
//获取类的属性
Field[] fields = class1.getDeclaredFields();
for (Field field:fields){
//显示属性的前缀,类型,名称
System.out.println(Modifier.toString(field.getModifiers())+" "+field.getType()+" "+field.getName());
}
//获取实现的接口或者父类中的属性
System.out.println("类接口或者父类中的属性信息");
Field[] fields1 = class1.getFields();
for (Field field:fields1){
System.out.println(Modifier.toString(field.getModifiers())+" "+field.getType()+" "+field.getName());
}
System.out.println("类中方法的信息");
//获取类中的方法
Method[] methods = class1.getDeclaredMethods();
for (Method method:methods){
//方法的参数
StringBuffer sb = new StringBuffer();
for (Class<?> param:method.getParameterTypes()){
sb.append(param.getName()+",");
}
//显示方法的前缀,返回值类型,方法名,参数
System.out.println(Modifier.toString(method.getModifiers())+" "+method.getReturnType()+" "+method.getName()+"("+sb.toString()+")");
Class<?> exc[] = method.getExceptionTypes();
for (Class<?> e:exc){
System.out.println("throws:"+e.getName());
}
}
}
<!-- 查询快捷菜单(含选中状态) -->
<select id="queryAllFastMenuList" resultMap="cbMenuDefFastMenuMap" parameterType="java.util.HashMap">
SELECT /*CbFastMenu.queryAllFastMenuList,查询快捷菜单*/
CMD.CMD_ID
,CMD.CMD_CHANNEL
,CMD.CMD_MENUCODE
,CMD.CMD_PARENTMENU
/*,CONCAT(INTEGER(SUBSTR(CMD.CMD_MENUCODE,1,3))+1,'0000') AS CMD_GRANDFAMENU*/
,CONCAT(SUBSTR(CMD.CMD_MENUCODE,1,2),'0000') AS CMD_GRANDFAMENU
,CMD.CMD_LEVEL
,CMD.CMD_SEQNO
,CMD.CMD_ISLEAF
,CMD.CMD_NAMEKEY
,CMD.CMD_URL
,CMD.CMD_ICON
,CMD.CMD_ICONA
,CMD.CMD_DESC
,CMD.CMD_STT
,CMD.CMD_VERSION
,CMD.CMD_HTMLURL
,PMF.CMF_ID
,PMF.CMF_STT
FROM CB_MENUDEF AS CMD
LEFT JOIN
(
SELECT * FROM CB_MENUDEF_FASTMENU AS PMF1
WHERE 1=1 AND PMF1.CMF_CSTNO = #{operatorId}
)AS PMF ON CMD.CMD_ID = PMF.CMF_MENUID
WHERE 1=1
AND CMD.CMD_CHANNEL=#{channel}
and CMD.CMD_STT='0'
and CMD.CMD_VERSION=#{version}
AND CMD.CMD_ID != '5197e958-a79e-4808-9b65-717270a57e04'
ORDER BY CMD.CMD_MENUCODE , CMD.CMD_SEQNO
</select>
package cs;
public class cscsdn {
public static void main(String[] args) {
System.out.println("完美");//用来打印完美
}
}