From ab06c1e165f5c270f50d471d4bb7e9d4b9fc6aff Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Thu, 8 Nov 2018 10:36:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/jpa/dao/BaseRepository.java | 10 ++++ .../pojo/base/jpa/daoimpl/BaseRepositoryImpl.java | 53 ++++++++++++++++++++++ .../cn/estsh/i3plus/pojo/base/tool/HqlPack.java | 24 ++++++++++ 3 files changed, 87 insertions(+) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java index 22151c7..129cfe3 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/dao/BaseRepository.java @@ -82,6 +82,16 @@ public interface BaseRepository extends JpaReposito public int deleteWeaklyByProperties(String[] propNames, Object[] objValues); /** + * 更新有效无效状态 + * @return count + */ + public int updateValidStatusById(ID id,int status); + public int updateValidStatusByIds(Long[] ids,int status) ; + public int updateValidStatusByProperty(String propName, Object propValue,int status); + public int updateValidStatusByPropertyIn(String propName, Object[] propValues,int status); + public int updateValidStatusByProperties(String[] propNames, Object[] objValues,int status); + + /** * 通过多单属性进行单个值更新 * @param conditionName * @param conditionValue diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java index 1fa0cec..0466c15 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java @@ -222,6 +222,59 @@ public class BaseRepositoryImpl extends SimpleJpaRep } @Override + public int updateValidStatusById(ID id,int status) { + return updateValidStatusByProperty("id", id,status); + } + + @Override + public int updateValidStatusByIds(Long[] ids,int status) { + return updateValidStatusByPropertyIn("id", ids,status); + } + + @Override + public int updateValidStatusByProperty(String propName, Object propValue,int status) { + return updateValidStatusByProperties(new String[] { propName }, new Object[] { propValue },status); + } + + /** + * 批量弱删除 + * @return + */ + @Override + public int updateValidStatusByPropertyIn(String propName, Object[] propValues,int status) { + if(propValues != null && propValues.length > 0){ + String hql = "update " + persistentClass.getName() + " model set model.isValid = :isValid where model."+propName+" in(:"+propName+") "; + Query query = entityManager.createQuery(hql); + query.setParameter("isValid",status); + query.setParameter(propName, Arrays.asList(propValues)); + + return query.executeUpdate(); + }else{ + throw new IllegalArgumentException("弱删除失败:"+propName+":" + propValues); + } + } + + /** + * 批量弱删除 + * @return + */ + @Override + public int updateValidStatusByProperties(String[] propName, Object[] propValue,int status) { + if ((propName != null) && (propName.length > 0) && (propValue != null) && (propValue.length > 0) && (propValue.length == propName.length)) { + StringBuffer sb = new StringBuffer("update " + persistentClass.getName() + " model set model.isValid = :isValid where 1=1 "); + appendQL(sb,propName,propValue); + Query query = entityManager.createQuery(sb.toString()); + query.setParameter("isValid",status); + + setParameter(query,propName,propValue); + + return query.executeUpdate(); + }else{ + throw new IllegalArgumentException("弱删除失败:"+propName+":" + propValue); + } + } + + @Override public int updateByProperties(String conditionName, Object conditionValue, String propertyName, Object propertyValue) { return updateByProperties(new String[] { conditionName }, new Object[] { conditionValue }, new String[] { propertyName }, new Object[] { propertyValue }); } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java index 78f3aa7..ca6bba6 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/tool/HqlPack.java @@ -198,6 +198,18 @@ public class HqlPack { } /** + * 封装String对象成equal语句 + * @param columnName 列名 + * @param result + */ + public static void getStringEqualPackOr(String data,String columnName, StringBuffer result) { + if(data != null && data.trim().length() > 0){ + data = getSafeParam(data); + result.append(" or model."+columnName+" = '" + data + "'"); + } + } + + /** * 封装long或者int的整数对象成equal语句 * @param columnName 列名 * @param result @@ -214,6 +226,18 @@ public class HqlPack { * @param columnName 列名 * @param result */ + public static void getNumEqualPackOr(Object data,String columnName, StringBuffer result) { + if(data!=null&&Long.parseLong(data.toString()) > 0){ + data = getSafeParam(data); + result.append(" or model."+columnName+" = " + data + ""); + } + } + + /** + * 封装long或者int的整数对象成equal语句 + * @param columnName 列名 + * @param result + */ public static void getNumEqualPackForZero(Object data,String columnName, StringBuffer result) { if(data!=null&&Long.parseLong(data.toString()) >= 0){ data = getSafeParam(data);