项目源码

This commit is contained in:
dimengzhe
2025-04-12 01:31:45 +08:00
commit e2e0d9bf0b
715 changed files with 82684 additions and 0 deletions

54
ksafepack-system/pom.xml Normal file
View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.kelp</groupId>
<artifactId>ksafepack</artifactId>
<version>1.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ksafepack-system</artifactId>
<description>
system系统模块
</description>
<dependencies>
<!-- jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- es依赖 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
</dependency>
<!-- 通用工具 -->
<dependency>
<groupId>com.kelp</groupId>
<artifactId>ksafepack-common</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,50 @@
/**
* 基类
*/
package com.kelp.base;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public class BaseEntity implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(name="id")
private Long id = null;
@Column(updatable = false)
private Long createTime = System.currentTimeMillis();
private Long updateTime = System.currentTimeMillis();
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public Long getCreateTime() {
return createTime;
}
public void setCreateTime(Long createTime) {
this.createTime = createTime;
}
public Long getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Long updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -0,0 +1,115 @@
package com.kelp.base;
import java.util.ArrayList;
import java.util.List;
public class Page<T> {
/**
* 总记录数
*/
private int total;
/**
* 总页数
*/
private int totalPage;
/**
* 记录开始索引
*/
private int start;
/**
* pageIndex
*/
private int pageIndex;
/**
* 每页有多少数据
*/
private int limit = 10;
/**
* 返回的结果数据
*/
private List<T> data = new ArrayList<T>();
/**
* 数据状态,默认为200
*/
private String status = "200";
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@Override
public String toString() {
return "Page [total=" + total + ", totalPage=" + totalPage + ", start=" + start + ", pageIndex=" + pageIndex
+ ", limit=" + limit + ", data=" + data + ", status=" + status + "]";
}
public boolean hasPrevious(){
return start > 0;
}
public boolean hasNext(){
return pageIndex < totalPage;
}
public int current(){
return pageIndex;
}
public int getPages(){
return totalPage;
}
}

View File

@@ -0,0 +1,238 @@
package com.kelp.base.dao;
import java.io.Serializable;
import java.util.List;
import com.kelp.base.Page;
/**
* Dao基类接口
*
* @author Administrator
*
* @param <T> 泛型比如我们对实体类Course进行数据库操作则在子类中传入Course见CourseDaoBean代码T必须实现持久化接口
* @param <PK> 泛型,主键,可以是任意类型
*/
public interface BaseDao<T extends Serializable, PK> {
/**
* 保存实体对象.
*
* @param entity 对象
* @return ID
*/
public boolean add(T entity);
/**
* 添加实体对象集合.
*
* @return 实体对象集合
*/
public boolean adds(List<T> ts);
/**
* 更新实体对象.
*
* @param entity 对象
*/
public boolean update(T entity);
/**
* 更新多个对象
*
* @param ts
*/
public boolean updates(List<T> ts);
/**
* 删除实体对象.
*
* @param entity 对象
* @return
*/
public boolean delete(T entity);
/**
* 根据ID删除实体对象.
*
* @param id 记录ID
*/
public boolean delete(PK id);
/**
* 根据ID数组删除实体对象.
*
* @param ids ID数组
*/
public boolean delete(List<PK> ids);
/**
* 根据ID获取实体对象.
*
* @param id 记录ID
* @return 实体对象
*/
public T get(PK id);
/**
* 根据ID获取实体对象有懒加载.
*
* @param id 记录ID
* @return 实体对象
*/
public T load(PK id);
/**
* 根据ID数组获取实体对象集合.
*
* @param ids ID对象数组
*
* @return 实体对象集合
*/
public List<T> get(List<PK> ids);
/**
* 根据属性名和属性值获取实体对象.
*
* @param propertyName 属性名称
* @param value 属性值
* @return 实体对象
*/
public T get(String propertyName, Object value);
/**
* 根据属性名和属性值获取实体对象集合.
*
* @param propertyName 属性名称
* @param value 属性值
* @return 实体对象集合
*/
public List<T> getList(String propertyName, Object value);
/**
* 获取所有实体对象集合.
*
* @return 实体对象集合
*/
public List<T> getAll();
/**
* 按某个字段排序
*
* @param propertyName
* @param orderType
* @return
*/
public List<T> getAll(String propertyName, String orderType);
/**
* 获取所有实体对象总数.
*
* @return 实体对象总数
*/
public Long getTotalCount();
/**
* 获取所有实体对象数量
*
* @param propertyName
* @param propertyValue
* @return
*/
public Long getTotalCount(String propertyName, String propertyValue);
/**
* 根据属性名、修改前后属性值判断在数据库中是否唯一(若新修改的值与原来值相等则直接返回true).
*
* @param propertyName 属性名称
* @param oldValue 修改前的属性值
* @param oldValue 修改后的属性值
* @return boolean
*/
public boolean isUnique(String propertyName, Object oldValue, Object newValue);
/**
* 根据属性名判断数据是否已存在.
*
* @param propertyName 属性名称
* @param value 值
* @return boolean
*/
public boolean isExist(String propertyName, Object value);
/**
* 刷新session.
*
*/
public void flush();
/**
* 清除Session.
*
*/
public void clear();
/**
* 查找符合条件的记录数
*
* @param sql
* @param parameters
* @return
*/
public int getCount(String sql, List<Object> parameters);
/**
* 查找符合条件的记录数
*
* @param sql
* @param parameters
* @return
*/
public int getNativeCount(String sql, List<Object> parameters);
/**
* 执行原生SQL得到符合条件的记录
*
* @param sql
* @param parameters
* @return
*/
public List<T> getListByNativeSql(String sql, List<Object> parameters);
/**
* 查找符合条件的记录
*
* @param sql
* @param parameters
* @return
*/
public List<T> getList(String sql, List<Object> parameters);
public List<T> getList(String sql, List<Object> parameters, int firstResult, int maxResult);
/**
* 分页取得符合条件的记录
*
* @param pageNumber
* @param pageSize
* @param sql
* @param params
* @return
*/
public Page<T> getBeanPage(int pageNumber, int pageSize, String sql, List<Object> parameters);
public Page<T> getBeanPage(int pageNumber, int pageSize, String columns,String sql, List<Object> parameters);
/**
* 分页取得符合条件的记录
*
* @param pageNumber
* @param pageSize
* @param sql
* @param params
* @return
*/
public Page<T> getNativeBeanPage(int pageNumber, int pageSize, String classz, String sql,
List<Object> parameters);
}

View File

@@ -0,0 +1,464 @@
package com.kelp.base.dao.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
/**
* 基类Dao的实现是抽象类
*
* @author Administrator
*
* @param <T>
* @param <PK>
*/
public abstract class BaseDaoImpl<T extends Serializable, PK> implements BaseDao<T, PK> {
private static Logger log = LoggerFactory.getLogger(BaseDaoImpl.class);
//注意这里unitName是Factory的别名
@PersistenceContext(unitName = "entityManagerFactory")
protected EntityManager em;
private Class<T> entityClass;
@SuppressWarnings({ "unchecked" })
public BaseDaoImpl() {
this.entityClass = null;
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
Type[] parameterizedType = ((ParameterizedType) type).getActualTypeArguments();
this.entityClass = (Class<T>) parameterizedType[0];
}
}
@Transactional
@Override
public boolean add(T t) {
try {
em.persist(t);
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean adds(List<T> ts) {
try {
for (T t : ts) {
if (null != t) {
em.persist(t);
}
}
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean update(T entity) {
try {
em.merge(entity);
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean updates(List<T> ts) {
try {
for (T t : ts) {
if (null != ts) {
em.merge(t);
}
}
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean delete(T entity) {
try {
em.remove(entity);
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean delete(PK id) {
try {
T entity = load(id);
em.remove(entity);
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Transactional
@Override
public boolean delete(List<PK> ids) {
try {
for (PK id : ids) {
T entity = load(id);
em.remove(entity);
}
return true;
} catch (Exception e) {
log.error(e.getMessage());
}
return false;
}
@Override
public T get(PK id) {
return (T) em.find(entityClass, id);
}
@Override
public T load(PK id) {
return (T) em.getReference(entityClass, id);
}
@SuppressWarnings("unchecked")
@Override
public List<T> get(List<PK> ids) {
String hql = "select o from " + entityClass.getName() + " o where o.id in(:ids)";
return em.createQuery(hql).setParameter("ids", ids).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public T get(String propertyName, Object value) {
String sql = "select o from " + entityClass.getName() + " o where o." + propertyName + " = :" + propertyName;
try {
return (T) em.createQuery(sql).setParameter(propertyName, value).getSingleResult();
} catch (Exception e) {
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public List<T> getList(String propertyName, Object value) {
String sql = "select o from " + entityClass.getName() + " o where o." + propertyName + " = :" + propertyName;
return em.createQuery(sql).setParameter(propertyName, value).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> getAll() {
String sql = "select o from " + entityClass.getName() + " o";
return em.createQuery(sql).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> getAll(String propertyName, String orderType) {
String sql = "select o from " + entityClass.getName() + " o order by " + propertyName + " " + orderType;
return em.createQuery(sql).getResultList();
}
@Override
public Long getTotalCount() {
String sql = "select count(*) from " + entityClass.getName();
return (Long) em.createQuery(sql).getSingleResult();
}
@Override
public Long getTotalCount(String propertyName, String propertyValue) {
String sql = "select count(*) from " + entityClass.getName() + " where " + propertyName + " = :"
+ propertyName;
return (Long) em.createQuery(sql).setParameter(propertyName, propertyValue).getSingleResult();
}
@Override
public boolean isUnique(String propertyName, Object oldValue, Object newValue) {
if (newValue == oldValue || newValue.equals(oldValue)) {
return true;
}
T object = get(propertyName, newValue);
return (object == null);
}
@Override
public boolean isExist(String propertyName, Object value) {
T object = get(propertyName, value);
return (object != null);
}
@Override
public void flush() {
em.flush();
}
@Override
public void clear() {
em.clear();
}
@Override
public int getCount(String sql, List<Object> parameters) {
Query query = em.createQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
try {
return Integer.parseInt(query.getSingleResult().toString());
} catch (Exception e) {
log.error(e.getMessage());
}
return 0;
}
@Override
public int getNativeCount(String sql, List<Object> parameters) {
Query query = em.createNativeQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
try {
return Integer.parseInt(query.getSingleResult().toString());
} catch (Exception e) {
log.error(e.getMessage());
}
return 0;
}
@SuppressWarnings("unchecked")
@Override
public List<T> getListByNativeSql(String sql, List<Object> parameters) {
Query query = em.createNativeQuery(sql, entityClass);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
return query.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> getList(String sql, List<Object> parameters) {
Query query = em.createQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
return query.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> getList(String sql, List<Object> parameters, int firstResult, int maxResult) {
Query query = em.createQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
query.setFirstResult(firstResult);
query.setMaxResults(maxResult);
return query.getResultList();
}
@SuppressWarnings("unchecked")
public List<Map<String, Object>> getMapList(String sql, Object... parameters) {
Query query = em.createNativeQuery(sql);
if (parameters != null && parameters.length > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
return query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
}
@SuppressWarnings("unchecked")
private List<T> getBeanList(String sql, List<Object> parameters, int firstResult, int maxResult) {
Query query = em.createQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
query.setFirstResult(firstResult);
query.setMaxResults(maxResult);
return query.getResultList();
}
@SuppressWarnings("unchecked")
private List<T> getNativeBeanList(String sql, List<Object> parameters, int firstResult, int maxResult) {
Query query = em.createNativeQuery(sql);
if (parameters != null && parameters.size() > 0) {
int i = 1;
for (Object parameter : parameters) {
query.setParameter(i++, parameter);
}
}
query.setFirstResult(firstResult);
query.setMaxResults(maxResult);
return query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(entityClass)).list();
}
@Override
public Page<T> getBeanPage(int pageNumber, int pageSize, String sql, List<Object> params) {
Page<T> page = new Page<T>();
// 总条数
int count = this.getCount("select count(1) " + sql, params);
if (count == 0) {
return page;
}
// 总页数
int pageCount = count / pageSize + ((count % pageSize) == 0 ? 0 : 1);
if (pageNumber < 1) {
pageNumber = 1;
}
// 页码
if (pageNumber > pageCount) {
pageNumber = pageCount;
}
// 第一条记录索引
int firstResult = pageSize * (pageNumber - 1);
// 最后一条记录索引
int maxResult = Math.min(pageSize, count - firstResult);
// 生成PageForm
List<T> listBaseBean = this.getBeanList("select o " + sql, params, firstResult, maxResult);
page.setLimit(pageSize);
page.setTotal(count);
page.setPageIndex(pageNumber);
page.setData(listBaseBean);
page.setTotalPage(pageCount);
return page;
}
@Override
public Page<T> getBeanPage(int pageNumber, int pageSize,String columns, String sql, List<Object> params) {
// 总条数
int count = this.getCount("select count(1) " + sql, params);
if (count == 0) {
return null;
}
// 总页数
int pageCount = count / pageSize + ((count % pageSize) == 0 ? 0 : 1);
if (pageNumber < 1) {
pageNumber = 1;
}
// 页码
if (pageNumber > pageCount) {
pageNumber = pageCount;
}
// 第一条记录索引
int firstResult = pageSize * (pageNumber - 1);
// 最后一条记录索引
int maxResult = Math.min(pageSize, count - firstResult);
// 生成PageForm
List<T> listBaseBean = this.getBeanList("select " + columns + " " + sql, params, firstResult, maxResult);
Page<T> page = new Page<T>();
page.setLimit(pageSize);
page.setTotal(count);
page.setPageIndex(pageNumber);
page.setData(listBaseBean);
page.setTotalPage(pageCount);
return page;
}
@Override
public Page<T> getNativeBeanPage(int pageNumber, int pageSize, String columns, String sqlTail,
List<Object> params) {
// 总条数
int count = this.getNativeCount("select count(1) " + sqlTail, params);
if (count == 0) {
return null;
}
// 总页数
int pageCount = count / pageSize + ((count % pageSize) == 0 ? 0 : 1);
if (pageNumber < 1) {
pageNumber = 1;
}
// 页码
if (pageNumber > pageCount) {
pageNumber = pageCount;
}
// 第一条记录索引
int firstResult = pageSize * (pageNumber - 1);
// 最后一条记录索引
int maxResult = Math.min(pageSize, count - firstResult);
// 生成PageForm
List<T> listBaseBean = this.getNativeBeanList("select " + columns + sqlTail, params, firstResult, maxResult);
Page<T> page = new Page<T>();
page.setLimit(pageSize);
page.setTotal(count);
page.setPageIndex(pageNumber);
page.setData(listBaseBean);
page.setTotalPage(pageCount);
return page;
}
}

View File

@@ -0,0 +1,14 @@
package com.kelp.biz.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.biz.entity.Dict;
public interface DictDao extends BaseDao<Dict, Long>{
public Page<Dict> getPage(int pageNumber, int pageSize,String name,String type,String state);
public List<Dict> getList(String type);
}

View File

@@ -0,0 +1,20 @@
package com.kelp.biz.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.biz.entity.District;
public interface DistrictDao extends BaseDao<District, String>{
/**
* 递归删除
* @param ids
*/
public void delete(String[] ids);
public List<District> listdsub(String pId);
public Page<District> getPage(int pageNumber, int pageSize,String pId,String name,String state);
}

View File

@@ -0,0 +1,14 @@
package com.kelp.biz.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.biz.entity.SMSRecord;
public interface SMSRecordDao extends BaseDao<SMSRecord, Long>{
public List<SMSRecord> getList(String telephone,String startDate,String endDate);
public Page<SMSRecord> getPage(int pageNumber, int pageSize,String telephone,String startDate,String endDate,String state);
}

View File

@@ -0,0 +1,58 @@
package com.kelp.biz.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.biz.dao.DictDao;
import com.kelp.biz.entity.Dict;
@Repository
public class DictDaoImpl extends BaseDaoImpl<Dict, Long> implements DictDao{
@Override
public Page<Dict> getPage(int pageNumber, int pageSize, String name, String type, String state) {
String sql = " from Dict o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if(name == null || name.length() == 0 || name.length() > 50){
name = "";
}
sql += " and name like ?" + index++;
params.add("%" + name + "%");
if(type != null && type.length() > 0 && type.length() <= 20){
sql += " and type = ?" + index++;
params.add(type);
}
if(state != null && state.length() == 2){
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by type,code,name ";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<Dict> getList(String type){
String sql = "select o from Dict o where type = :type and state = '00' order by type,code,name";
return em.createQuery(sql).setParameter("type", type).getResultList();
}
@Override
public boolean delete(List<Long> ids) {
String sql = "update Dict set state = '10' where id in (:ids)";
em.createQuery(sql).setParameter("ids", ids).executeUpdate();
return true;
}
}

View File

@@ -0,0 +1,70 @@
package com.kelp.biz.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.biz.dao.DistrictDao;
import com.kelp.biz.entity.District;
@Repository
public class DistrictDaoImpl extends BaseDaoImpl<District, String> implements DistrictDao{
@Transactional
@Override
public void delete(String[] ids) {
for(String id : ids){
delete(id);
}
}
@Override
public boolean delete(String id) {
String sqld = "update District set state = '10' where id = :id ";
String sqlq = "select o from District o where pId = :pId order by name";
@SuppressWarnings("unchecked")
List<District> districtList = em.createQuery(sqlq).setParameter("pId", id).getResultList();
if(0 < districtList.size()){
for(District district : districtList){
delete(district.getId());
}
}
em.createQuery(sqld).setParameter("id", id).executeUpdate();
return true;
}
@SuppressWarnings("unchecked")
@Override
public List<District> listdsub(String pId) {
String sql = "select new com.kelp.biz.entity.District(o.id,o.name,o.pId) from District o where pId = :pId and state='00' order by orderNumber";
return em.createQuery(sql).setParameter("pId", pId).getResultList();
}
@Override
public Page<District> getPage(int pageNumber, int pageSize, String pId, String name, String state) {
if(name == null || name.length() == 0 || name.length() > 50){
name = "";
}
if(state == null || state.length() != 2){
state = "00";
}
String sql = " from District o where name like ?1 and pId = ?2 and state = ?3 order by orderNumber";
List<Object> params = new ArrayList<Object>();
params.add("%" + name + "%");
params.add(pId);
params.add(state);
return getBeanPage(pageNumber, pageSize, sql, params);
}
}

View File

@@ -0,0 +1,60 @@
package com.kelp.biz.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.biz.dao.SMSRecordDao;
import com.kelp.biz.entity.SMSRecord;
import com.kelp.common.utils.DateUtils;
@Repository
public class SMSRecordDaoImpl extends BaseDaoImpl<SMSRecord, Long> implements SMSRecordDao {
@Override
public Page<SMSRecord> getPage(int pageNumber, int pageSize, String telephone, String startDate, String endDate,
String state) {
String sql = " from SMSRecord o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if (!StringUtils.isEmpty(telephone) && telephone.length() < 128) {
sql += " and telephone = ?" + index++;
params.add(telephone);
}
if (startDate != null && DateUtils.string2date(startDate + " 00:00:00") != null) {
sql = sql + " and createTime >= ?" + index++;
params.add(DateUtils.string2date(startDate + " 00:00:00").getTime());
}
if (endDate != null && DateUtils.string2date(endDate + " 23:59:59") != null) {
sql = sql + " and createTime <= ?" + index++;
params.add(DateUtils.string2date(endDate + " 23:59:59").getTime());
}
if (state != null && state.length() == 2) {
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by createDate desc ";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<SMSRecord> getList(String telephone, String startDate, String endDate) {
String sql = "select o from SMSRecord o where tid = :tid and createTime >= :startDate and createTime <= :endDate order by createDate desc";
return em.createQuery(sql).setParameter("tid", telephone)
.setParameter("startDate", DateUtils.string2date(startDate + " 00:00:00").getTime())
.setParameter("endDate", DateUtils.string2date(endDate + " 23:59:59").getTime()).getResultList();
}
}

View File

@@ -0,0 +1,72 @@
/**
* 公共字典
*/
package com.kelp.biz.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name = "dt_common_dict")
public class Dict extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 业务类型
*/
@Column(length = 20, nullable = false)
private String type;
/**
* 编码
*/
@Column(length = 20, nullable = false, unique = true)
private String code;
/**
* 名称
*/
@Column(length = 50, nullable = false)
private String name;
/**
* 状态:00-正常;01-非开通;10-禁用
*/
@Column(length = 2, nullable = false)
private String state;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,124 @@
/**
* 行政区划,组织架构
*/
package com.kelp.biz.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name="dt_common_district")
public class District implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public District() {}
public District(String id,String name,String pId) {
this.id = id;
this.name = name;
this.pId = pId;
}
/**
* 本身编码
*/
@Id
@Column(length = 12, nullable = false, unique = true)
private String id;
/**
* 父id
*/
@Column(length=12,nullable=false)
private String pId;
/**
* 名称
*/
@Column(length=50,nullable=false)
private String name;
/**
* 常驻人口数,用于统计
*/
private Integer residents;
/**
* 序号
*/
private Integer orderNumber;
/**
* 级别
*/
private Integer level;
/**
* 状态:00-正常;01-非开通;10-禁用
*/
@Column(length=2,nullable=false)
private String state;
@Transient
public Boolean isParent = true;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getResidents() {
return residents;
}
public void setResidents(Integer residents) {
this.residents = residents;
}
public Integer getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(Integer orderNumber) {
this.orderNumber = orderNumber;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,130 @@
/**
* 短信记录
*/
package com.kelp.biz.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name="dt_common_sms_record")
public class SMSRecord extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 发送源id固定为"yyqt"
*/
@Column(nullable=false,length=20)
private String rId = "hr4dd";
/**
* 目标id,如电话号码
*/
@Column(length = 128, nullable = false,name="tId")
private String tId_;
/**
* 类型:01-注册;02-验证码登录;03-找回密码;
*/
@Column(length=2,nullable=false)
private String bizType;
/**
* 短信发送Id
*/
@Column(nullable=false,length=20)
private String smsId;
/**
* 有效时间,如验证码时需要,可为空
*/
private Integer validTime;
/**
* 原始数据,有可能是验证码
*/
@Column(length = 128)
private String rawData;
/**
* 发送备注信息
*/
private String messeage;
/**
* 短信发送结果
*/
@Column(nullable=false,length=2)
private String state;
public String getrId() {
return rId;
}
public void setrId(String rId) {
this.rId = rId;
}
public String gettId() {
return tId_ != null ? AESUtil.decrypt(tId_, KeyConstant.TELEPHONE) : "";
}
public void settId(String tId) {
if(!StringUtils.isEmpty(tId)) {
this.tId_ = AESUtil.encrypt(tId, KeyConstant.TELEPHONE);
}
}
public String getBizType() {
return bizType;
}
public void setBizType(String bizType) {
this.bizType = bizType;
}
public String getSmsId() {
return smsId;
}
public void setSmsId(String smsId) {
this.smsId = smsId;
}
public Integer getValidTime() {
return validTime;
}
public void setValidTime(Integer validTime) {
this.validTime = validTime;
}
public String getRawData() {
return rawData;
}
public void setRawData(String rawData) {
this.rawData = rawData;
}
public String getMesseage() {
return messeage;
}
public void setMesseage(String messeage) {
this.messeage = messeage;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,130 @@
/**
* common file
* 注意上传路径的权限问题,一定不可执行
*/
package com.kelp.biz.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_common_file")
public class TFile extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = -3232098209244991016L;
/**
* 业务id:00-平台上传;01-企业上传;02-会员上传
*/
@Column(nullable=false,length=2)
private String bizId;
/**
* 上传人id
*/
@Column(nullable=false,length=128)
private String accountId;
/**
* 上传人name
*/
@Column(nullable=false,length=128)
private String accountName;
/**
* 文件名称
*/
@Column(nullable=false,length=128,unique=true)
private String fileName;
/**
* 文件内容,不映射数据库
*/
@Transient
private String fileContent;
/**
* 文件的md5值以待备用
*/
@Column(nullable=false,length=128,unique = true)
private String md5;
/**
* 文件路径
*/
@Column(nullable=false,length=256)
private String path;
/**
* 上传人ip
*/
@Column(nullable=false,length=50)
private String ip;
public String getBizId() {
return bizId;
}
public void setBizId(String bizId) {
this.bizId = bizId;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getFileContent() {
return fileContent;
}
public void setFileContent(String fileContent) {
this.fileContent = fileContent;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}

View File

@@ -0,0 +1,24 @@
package com.kelp.biz.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.biz.entity.Dict;
public interface DictService {
public void add(Dict dict);
public void update(Dict dict);
public void delete(String[] ids);
public Dict getById(String id);
public Dict getByCode(String code);
public List<Dict> getByType(String type);
public Page<Dict> getPage(int pageNumber, int pageSize,String name,String type,String state);
}

View File

@@ -0,0 +1,27 @@
package com.kelp.biz.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.biz.entity.District;
public interface DistrictService {
public void add(District district);
public void update(District district);
public District getById(String id);
public void delete(String[] ids);
public Page<District> getPage(int pageNumber, int pageSize,String pId,String name,String state);
/**
* 取得直接下级
* @param pId
* @return
*/
public List<District> listdsub(String pId);
}

View File

@@ -0,0 +1,21 @@
package com.kelp.biz.service;
import org.springframework.web.multipart.MultipartFile;
public interface FileUploadService {
/**
* 上传image文件
* @param file
* @return
*/
public String uploadImageFile(MultipartFile file);
/**
* 上传vedio文件
* @param file
* @return
*/
public String uploadVedioFile(MultipartFile file);
}

View File

@@ -0,0 +1,18 @@
package com.kelp.biz.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.biz.entity.SMSRecord;
public interface SMSRecordService {
public String aliSendSMS(String bizType,String telephone,String rawData);
public SMSRecord getById(String id);
public List<SMSRecord> getList(String telephone,String startDate,String endDate);
public Page<SMSRecord> getPage(int pageNumber, int pageSize,String telephone,String startDate,String endDate,String state);
}

View File

@@ -0,0 +1,76 @@
package com.kelp.biz.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.biz.dao.DictDao;
import com.kelp.biz.entity.Dict;
import com.kelp.biz.service.DictService;
import com.kelp.common.utils.IdWorker;
@Service
public class DictServiceImpl implements DictService {
@Autowired
private DictDao dictDao;
@Autowired
private IdWorker idWorker;
@Override
public void add(Dict dict) {
dict.setId(idWorker.nextId());
dictDao.add(dict);
}
@Override
public void update(Dict dict) {
dictDao.update(dict);
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
dictDao.delete(ids_);
}
@Override
public Dict getByCode(String code) {
return dictDao.get("code", code);
}
@Override
public Dict getById(String id) {
return dictDao.get(Long.valueOf(id));
}
@Override
public List<Dict> getByType(String type) {
return dictDao.getList(type);
}
@Override
public Page<Dict> getPage(int pageNumber, int pageSize,String name,String type,String state) {
Page<Dict> page = dictDao.getPage(pageNumber, pageSize,name,type,state);
if(page == null){
page = new Page<Dict>();
}
return page;
}
}

View File

@@ -0,0 +1,59 @@
package com.kelp.biz.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.biz.dao.DistrictDao;
import com.kelp.biz.entity.District;
import com.kelp.biz.service.DistrictService;
@Service
public class DistrictServiceImpl implements DistrictService {
@Autowired
private DistrictDao districtDao;
@Override
public void add(District district) {
districtDao.add(district);
}
@Override
public void update(District district) {
districtDao.update(district);
}
@Override
public District getById(String id) {
return districtDao.get(id);
}
@Override
public void delete(String[] ids) {
//对选中的进行递归删除
districtDao.delete(ids);
}
@Override
public List<District> listdsub(String pId) {
return districtDao.listdsub(pId);
}
@Override
public Page<District> getPage(int pageNumber, int pageSize,String pId,String name,String state) {
Page<District> page = districtDao.getPage(pageNumber, pageSize,pId,name,state);
if(page == null){
page = new Page<District>();
}
return page;
}
}

View File

@@ -0,0 +1,81 @@
package com.kelp.biz.service.impl;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;
import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.kelp.biz.service.FileUploadService;
import com.kelp.common.config.FtpBean;
import com.kelp.common.utils.DateUtils;
import com.kelp.common.utils.file.FileType;
import com.kelp.common.utils.file.FileTypeUtil;
@Service
public class FileUploadServiceImpl implements FileUploadService {
private static Logger log = LoggerFactory.getLogger(FileUploadServiceImpl.class);
@Autowired
private FtpBean ftpBean;
@Override
public String uploadImageFile(MultipartFile file) {
try {
String fileType = FileTypeUtil.getFileType(file.getInputStream());
//判断文件类型
if(fileType == null) {
return "10";
}
fileType = FileType.getImageType(file.getContentType().split("/")[1]);
if(fileType == null) {
return "10";
}
//生成文件目录
String filePath = fileType + "/" + DateUtils.date2YYYYMMDD(new Date());
//生成新的文件名
String fileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + FilenameUtils.getExtension(file.getOriginalFilename());
return ftpBean.uploadFileToFtp(filePath, fileName, file.getInputStream());
} catch (IOException e) {
log.error(e.getMessage());
return null;
}
}
@Override
public String uploadVedioFile(MultipartFile file) {
try {
String fileType = FileTypeUtil.getFileType(file.getInputStream());
//判断文件类型
if(fileType ==null) {
return "10";
}
fileType = FileType.getVedioType(file.getContentType().split("/")[1]);
if(fileType == null) {
return "10";
}
//生成文件目录
String filePath = fileType + "/" + DateUtils.date2YYYYMMDD(new Date());
//生成新的文件名
String fileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + FilenameUtils.getExtension(file.getOriginalFilename());
return ftpBean.uploadFileToFtp(filePath, fileName, file.getInputStream());
} catch (IOException e) {
log.error(e.getMessage());
return null;
}
}
}

View File

@@ -0,0 +1,80 @@
package com.kelp.biz.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.kelp.base.Page;
import com.kelp.biz.dao.SMSRecordDao;
import com.kelp.biz.entity.SMSRecord;
import com.kelp.biz.service.SMSRecordService;
import com.kelp.common.config.AliSMSBean;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
import com.kelp.common.utils.IdWorker;
@Service
public class SMSRecordServiceImpl implements SMSRecordService {
@Autowired
private SMSRecordDao smsRecordDao;
@Autowired
private AliSMSBean aliSMSBean;
@Value("${sms.captcha.validtime}")
private int validTime;
@Autowired
private IdWorker idWorker;
@Override
public String aliSendSMS(String bizType,String telephone,String rawData) {
SendSmsResponse sendSmsResponse = aliSMSBean.send(telephone, rawData);
if(sendSmsResponse != null) {
SMSRecord smsRecord = new SMSRecord();
smsRecord.setId(idWorker.nextId());
smsRecord.setBizType(bizType);
smsRecord.setRawData(rawData);
smsRecord.setValidTime(30);
smsRecord.setrId("hrdd");
smsRecord.settId(telephone);
smsRecord.setSmsId(sendSmsResponse.getBizId());
smsRecord.setState("00");
smsRecordDao.add(smsRecord);
return "00";
}
return "11";
}
@Override
public SMSRecord getById(String id) {
return smsRecordDao.get(Long.valueOf(id));
}
@Override
public List<SMSRecord> getList(String telephone,String startDate,String endDate){
return smsRecordDao.getList(AESUtil.encrypt(telephone, KeyConstant.TELEPHONE), startDate, endDate);
}
@Override
public Page<SMSRecord> getPage(int pageNumber, int pageSize,String telephone,String startDate,String endDate,String state) {
Page<SMSRecord> page = smsRecordDao.getPage(pageNumber, pageSize, telephone, startDate, endDate, state);
if(page == null){
page = new Page<SMSRecord>();
}
return page;
}
}

View File

@@ -0,0 +1,9 @@
package com.kelp.business.dao;
import com.kelp.base.dao.BaseDao;
import com.kelp.business.entity.Buy;
import com.kelp.business.entity.News;
public interface BuyDao extends BaseDao<Buy, Long>{
}

View File

@@ -0,0 +1,10 @@
package com.kelp.business.dao;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.business.entity.News;
public interface NewsDao extends BaseDao<News, Long>{
Page<News> getPage(int pageNum, int i, String type);
}

View File

@@ -0,0 +1,11 @@
package com.kelp.business.dao.impl;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.business.dao.BuyDao;
import com.kelp.business.entity.Buy;
import org.springframework.stereotype.Repository;
@Repository
public class BuyDaoImpl extends BaseDaoImpl<Buy, Long> implements BuyDao {
}

View File

@@ -0,0 +1,30 @@
package com.kelp.business.dao.impl;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.business.dao.NewsDao;
import com.kelp.business.entity.News;
import com.kelp.common.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
public class NewsDaoImpl extends BaseDaoImpl<News, Long> implements NewsDao {
@Override
public Page<News> getPage(int pageNum, int pageSize, String type) {
String sql = " from News o where 1 = 1 ";
List<Object> params = new ArrayList<>();
int index = 1;
if (!StringUtils.isEmpty(type)) {
sql += " and type = ?" + index++;
params.add(type);
}
sql += " order by createTime desc";
return getBeanPage(pageNum, pageSize, sql, params);
}
}

View File

@@ -0,0 +1,74 @@
package com.kelp.business.entity;
import com.kelp.base.BaseEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "dt_business_buy")
public class Buy extends BaseEntity {
private Long customerId;
@Transient
private String name;
@Transient
private String telephone;
@Transient
private String companyName;
private String type;
private String fuwu;
public String getFuwu() {
return fuwu;
}
public void setFuwu(String fuwu) {
this.fuwu = fuwu;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public Long getCustomerId() {
return customerId;
}
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
}

View File

@@ -0,0 +1,75 @@
package com.kelp.business.entity;
import com.kelp.base.BaseEntity;
import org.springframework.util.StringUtils;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "dt_business_news")
public class News extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
private String title;
@Transient
private String subTitle;
private String content;
private String img;
private String type;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSubTitle() {
if (StringUtils.isEmpty(content)) {
return "";
}
if (content.length() > 100) {
return content.substring(0, 100) + "...";
}
return content;
}
public void setSubTitle(String subTitle) {
this.subTitle = subTitle;
}
}

View File

@@ -0,0 +1,16 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.Department;
public interface DepartmentDao extends BaseDao<Department, Long>{
public Page<Department> getPage(int pageNumber, int pageSize,Long enterpriseId,Long pId,String name,String state);
//取得直接下级
public List<Department> listTop(Long enterpriseId,Long pId);
public List<Department> listdsub(Long enterpriseId,Long pId);
}

View File

@@ -0,0 +1,16 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.EAccount;
public interface EAccountDao extends BaseDao<EAccount, Long> {
public void setState(List<Long> ids, String state);
public Page<EAccount> getPage(int pageNumber, int pageSize,Long enterpriseId,Long departmentId,String name,String telephone, Long roleId,String state);
public Page<EAccount> getPage4m(int pageNumber, int pageSize,Long enterpriseId,String name,String telephone, Long roleId,String state);
}

View File

@@ -0,0 +1,16 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.EContract;
public interface EContractDao extends BaseDao<EContract, Long> {
public void setState(List<Long> ids, String state);
public Page<EContract> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state);
}

View File

@@ -0,0 +1,20 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.ECustomer;
public interface ECustomerDao extends BaseDao<ECustomer, Long> {
public List<ECustomer> getAll(String state);
public void setState(List<Long> ids, String state);
public Page<ECustomer> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state);
public Page<ECustomer> getPage4NoVisit(int pageNumber, int pageSize, String startDate, String endDate);
}

View File

@@ -0,0 +1,16 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.ECustomerVisit;
public interface ECustomerVisitDao extends BaseDao<ECustomerVisit, Long> {
public void setState(List<Long> ids, String state);
public Page<ECustomerVisit> getPage(int pageNumber, int pageSize, Long customerId, String startDate, String endDate,
String state);
}

View File

@@ -0,0 +1,19 @@
package com.kelp.crm.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.crm.entity.Enterprise;
public interface EnterpriseDao extends BaseDao<Enterprise, Long>{
public Page<Enterprise> getPage(int pageNumber, int pageSize,Long pId,String name,String state);
public List<Enterprise> listAll(String state);
//取得直接下级
public List<Enterprise> listTop(Long pId);
public List<Enterprise> listdsub(Long pId);
public List<Enterprise> listdsub(Long pId,String type);
}

View File

@@ -0,0 +1,79 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.crm.dao.DepartmentDao;
import com.kelp.crm.entity.Department;
@Repository
public class DepartmentDaoImpl extends BaseDaoImpl<Department, Long> implements DepartmentDao{
@Transactional
@Override
public boolean delete(List<Long> ids) {
for(Long id : ids){
delete(id);
}
return true;
}
@Override
public boolean delete(Long id) {
String sqld = "update Department set state = '10' where id = :id ";
String sqlq = "select o from Department o where pId = :pId order by orderNumber";
@SuppressWarnings("unchecked")
List<Department> departmentList = em.createQuery(sqlq).setParameter("pId", id).getResultList();
if(0 < departmentList.size()){
for(Department department : departmentList){
delete(department.getId());
}
}
em.createQuery(sqld).setParameter("id", id).executeUpdate();
return true;
}
@Override
public Page<Department> getPage(int pageNumber, int pageSize, Long enterpriseId, Long pId, String name, String state) {
if(name == null || name.length() == 0 || name.length() > 50){
name = "";
}
if(state == null || state.length() != 2){
state = "00";
}
String sql = " from Department o where enterpriseId=?1 and name like ?2 and pId = ?3 and state = ?4 order by orderNumber";
List<Object> params = new ArrayList<Object>();
params.add(enterpriseId);
params.add("%" + name + "%");
params.add(pId);
params.add(state);
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<Department> listTop(Long enterpriseId, Long pId) {
String sql = "select new com.kelp.crm.entity.Department(o.id,o.name,o.pId,o.idPath) from Department o where id = :pId and enterpriseId = :enterpriseId and state = '00' order by orderNumber";
return em.createQuery(sql).setParameter("enterpriseId", enterpriseId).setParameter("pId", pId).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Department> listdsub(Long enterpriseId,Long pId) {
String sql = "select new com.kelp.crm.entity.Department(o.id,o.name,o.pId,o.idPath) from Department o where id != pId and enterpriseId = :enterpriseId and pId = :pId and state = '00' order by orderNumber";
return em.createQuery(sql).setParameter("enterpriseId", enterpriseId).setParameter("pId", pId).getResultList();
}
}

View File

@@ -0,0 +1,95 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.crm.dao.EAccountDao;
import com.kelp.crm.entity.EAccount;
@Repository
public class EAccountDaoImpl extends BaseDaoImpl<EAccount, Long> implements EAccountDao {
@Override
public Page<EAccount> getPage(int pageNumber, int pageSize, Long enterpriseId, Long departmentId, String name, String telephone, Long roleId,
String state) {
String sql = " from EAccount o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
sql += " and enterpriseId = ?" + index++;
params.add(enterpriseId);
sql += " and departmentId = ?" + index++;
params.add(departmentId);
if(!StringUtils.isEmpty(name) && name.length() < 50){
sql += " and name like ?" + index++;
params.add("%" + name + "%");
}
if(!StringUtils.isEmpty(telephone) && telephone.length() <= 32){
sql += " and telephone = ?" + index++;
params.add(telephone);
}
if(roleId != null ){
sql += " and roleId = ?" + index++;
params.add(roleId);
}
if(state != null && state.length() == 2){
sql += " and state = ?" + index;
params.add(state);
}
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public void setState(List<Long> ids ,String state) {
String sql = "update EAccount set state = :state where id in (:ids)";
em.createQuery(sql).setParameter("state", state).setParameter("ids", ids).executeUpdate();
}
@Override
public Page<EAccount> getPage4m(int pageNumber, int pageSize, Long enterpriseId, String name, String telephone,
Long roleId, String state) {
String sql = " from EAccount o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
sql += " and enterpriseId = ?" + index++;
params.add(enterpriseId);
if(!StringUtils.isEmpty(name) && name.length() < 50){
sql += " and name like ?" + index++;
params.add("%" + name + "%");
}
if(!StringUtils.isEmpty(telephone) && telephone.length() <= 32){
sql += " and telephone = ?" + index++;
params.add(telephone);
}
if(roleId != null ){
sql += " and roleId = ?" + index++;
params.add(roleId);
}
if(state != null && state.length() == 2){
sql += " and state = ?" + index;
params.add(state);
}
return getBeanPage(pageNumber, pageSize, sql, params);
}
}

View File

@@ -0,0 +1,62 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
import com.kelp.common.utils.DateUtils;
import com.kelp.crm.dao.EContractDao;
import com.kelp.crm.entity.EContract;
@Repository
public class EContractDaoImpl extends BaseDaoImpl<EContract, Long> implements EContractDao {
@Override
public Page<EContract> getPage(int pageNumber, int pageSize, String startDate, String endDate,
String name, String state) {
String sql = " from EContract o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if (startDate != null && DateUtils.string2date(startDate + " 00:00:00") != null) {
sql = sql + " and signTime >= ?" + index++;
params.add(DateUtils.string2date(startDate + " 00:00:00").getTime());
}
if (endDate != null && DateUtils.string2date(endDate + " 23:59:59") != null) {
sql = sql + " and signTime <= ?" + index++;
params.add(DateUtils.string2date(endDate + " 23:59:59").getTime());
}
if (!StringUtils.isEmpty(name) && name.length() <= 50) {
sql += " and customerName = ?" + index++;
params.add(AESUtil.encrypt(name, KeyConstant.REALNAME));
}
if (state != null && state.length() == 2) {
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by createTime desc";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public void setState(List<Long> ids, String state) {
String sql = "update EContract set state = :state where id in (:ids)";
em.createQuery(sql).setParameter("state", state).setParameter("ids", ids).executeUpdate();
}
}

View File

@@ -0,0 +1,95 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.common.utils.DateUtils;
import com.kelp.crm.dao.ECustomerDao;
import com.kelp.crm.entity.ECustomer;
@Repository
public class ECustomerDaoImpl extends BaseDaoImpl<ECustomer, Long> implements ECustomerDao {
@Override
public Page<ECustomer> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state) {
String sql = " from ECustomer o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if (startDate != null && DateUtils.string2date(startDate + " 00:00:00") != null) {
sql = sql + " and createTime >= ?" + index++;
params.add(DateUtils.string2date(startDate + " 00:00:00").getTime());
}
if (endDate != null && DateUtils.string2date(endDate + " 23:59:59") != null) {
sql = sql + " and createTime <= ?" + index++;
params.add(DateUtils.string2date(endDate + " 23:59:59").getTime());
}
if (!StringUtils.isEmpty(name) && name.length() <= 50) {
sql += " and name = ?" + index++;
params.add(name);
}
if (state != null && state.length() == 2) {
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by createTime desc";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Override
public Page<ECustomer> getPage4NoVisit(int pageNumber, int pageSize, String startDate, String endDate) {
String sql = " from ECustomer o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if (startDate == null || DateUtils.string2date(startDate + " 00:00:00") == null) {
startDate = DateUtils.date2Day(new Date());
}
if (endDate == null || DateUtils.string2date(endDate + " 23:59:59") == null) {
endDate = DateUtils.date2Day(new Date());
}
sql += " and id not in (select distinct customerId from ECustomerVisit where createTime >= ?" + (index++)
+ " and createTime <= ?" + (index++) + " and state != '10')";
params.add(DateUtils.string2date(startDate + " 00:00:00").getTime());
params.add(DateUtils.string2date(endDate + " 23:59:59").getTime());
sql += " order by createTime desc";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public void setState(List<Long> ids, String state) {
String sql = "update ECustomer set state = :state where id in (:ids)";
em.createQuery(sql).setParameter("state", state).setParameter("ids", ids).executeUpdate();
}
@SuppressWarnings("unchecked")
@Override
public List<ECustomer> getAll(String state) {
if (state == null || state.length() != 2) {
return getAll();
}
String sql = "select o from ECustomer o where state = :state ";
return em.createQuery(sql).setParameter("state", state).getResultList();
}
}

View File

@@ -0,0 +1,59 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.common.utils.DateUtils;
import com.kelp.crm.dao.ECustomerVisitDao;
import com.kelp.crm.entity.ECustomerVisit;
@Repository
public class ECustomerVisitDaoImpl extends BaseDaoImpl<ECustomerVisit, Long> implements ECustomerVisitDao {
@Override
public Page<ECustomerVisit> getPage(int pageNumber, int pageSize, Long customerId, String startDate,
String endDate, String state) {
String sql = " from ECustomerVisit o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if (customerId != null) {
sql += " and customerId = ?" + index++;
params.add(customerId);
}
if (startDate != null && DateUtils.string2date(startDate + " 00:00:00") != null) {
sql = sql + " and visitTime >= ?" + index++;
params.add(DateUtils.string2date(startDate + " 00:00:00").getTime());
}
if (endDate != null && DateUtils.string2date(endDate + " 23:59:59") != null) {
sql = sql + " and visitTime <= ?" + index++;
params.add(DateUtils.string2date(endDate + " 23:59:59").getTime());
}
if (state != null && state.length() == 2) {
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by visitTime desc ";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public void setState(List<Long> ids, String state) {
String sql = "update ECustomerVisit set state = :state where id in (:ids)";
em.createQuery(sql).setParameter("state", state).setParameter("ids", ids).executeUpdate();
}
}

View File

@@ -0,0 +1,104 @@
package com.kelp.crm.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.crm.dao.EnterpriseDao;
import com.kelp.crm.entity.Enterprise;
@Repository
public class EnterpriseDaoImpl extends BaseDaoImpl<Enterprise, Long> implements EnterpriseDao{
@Transactional
@Override
public boolean delete(List<Long> ids) {
for(Long id : ids){
delete(id);
}
return true;
}
@Override
public boolean delete(Long id) {
String sqld = "update Enterprise set state = '10' where id = :id ";
String sqlq = "select o from Enterprise o where pId = :pId order by name";
@SuppressWarnings("unchecked")
List<Enterprise> enterpriseList = em.createQuery(sqlq).setParameter("pId", id).getResultList();
if(0 < enterpriseList.size()){
for(Enterprise enterprise : enterpriseList){
delete(enterprise.getId());
}
}
em.createQuery(sqld).setParameter("id", id).executeUpdate();
return true;
}
@Override
public Page<Enterprise> getPage(int pageNumber, int pageSize, Long pId, String name, String state) {
String sql = " from Enterprise o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
sql += " and pId = ?" + index++;
params.add(pId);
if(!StringUtils.isEmpty(name) && name.length() < 50){
sql += " and name like ?" + index++;
params.add("%" + name + "%");
}
if(state != null && state.length() == 2){
sql += " and state = ?" + index;
params.add(state);
}
sql += " order by name";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<Enterprise> listTop(Long pId) {
String sql = "select new com.kelp.crm.entity.Enterprise(o.id,o.name,o.pId,o.type) from Enterprise o where id = :pId and state = '00' order by name";
return em.createQuery(sql).setParameter("pId", pId).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Enterprise> listdsub(Long pId) {
String sql = "select new com.kelp.crm.entity.Enterprise(o.id,o.name,o.pId,o.type) from Enterprise o where id != pId and pId = :pId and state = '00' order by name";
return em.createQuery(sql).setParameter("pId", pId).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Enterprise> listdsub(Long pId,String type) {
String sql = "select new com.kelp.crm.entity.Enterprise(o.id,o.name,o.pId,o.type) from Enterprise o where id != pId and pId = :pId and type = :type and state = '00' order by name";
return em.createQuery(sql).setParameter("pId", pId).setParameter("type", type).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Enterprise> listAll(String state) {
if(state == null || state.length() != 2) {
return getAll();
}
String sql = "select o from Enterprise o where state = :state ";
return em.createQuery(sql).setParameter("state", state).getResultList();
}
}

View File

@@ -0,0 +1,157 @@
/**
* 企业部门
*/
package com.kelp.crm.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise_departmemt")
public class Department extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
public Department() {}
public Department(Long id,String name,Long pId,String idPath) {
this.setId(id);
this.name = name;
this.pId = pId;
this.idPath = idPath;
}
/**
* 所属企业,一个人只能属于一家企业
*/
@Column(nullable = false,name="enterpriseId")
private Long enterpriseId;
/**
* 企业id path
*/
@Column(nullable = false,length = 512)
private String eidPath;
/**
* 上级id如果id=pId则为顶级
*/
@Column(name="pId",nullable = false)
private Long pId;
/**
* id path默认支持10级
*/
@Column(nullable = false,length = 512)
private String idPath;
/**
* 部门名称
*/
@Column(length = 50, nullable = false)
private String name;
/**
* 联系电话
*/
@Column(length = 128, nullable = false,name="phone")
private String phone_;
/**
* 部门领导
*/
@Column(length = 50, nullable = false,name="leader")
private String leader_;
/**
* 显示排序
*/
private int orderNumber;
/**
* 00-正常;10删除
*/
@Column(length = 2, nullable = false)
private String state;
@Transient
public Boolean isParent = true;
public Long getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Long enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEidPath() {
return eidPath;
}
public void setEidPath(String eidPath) {
this.eidPath = eidPath;
}
public Long getpId() {
return pId;
}
public void setpId(Long pId) {
this.pId = pId;
}
public String getIdPath() {
return idPath;
}
public void setIdPath(String idPath) {
this.idPath = idPath;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone_ != null ? AESUtil.decrypt(phone_, KeyConstant.TELEPHONE) : "";
}
public void setPhone(String phone) {
if (!StringUtils.isEmpty(phone)) {
this.phone_ = AESUtil.encrypt(phone, KeyConstant.TELEPHONE);
}
}
public String getLeader() {
return leader_ != null ? AESUtil.decrypt(leader_, KeyConstant.NAME) : "";
}
public void setLeader(String leader) {
if (!StringUtils.isEmpty(leader)) {
this.leader_ = AESUtil.encrypt(leader, KeyConstant.NAME);
}
}
public int getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(int orderNumber) {
this.orderNumber = orderNumber;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,199 @@
/**
* 企业账号
*/
package com.kelp.crm.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise_account")
public class EAccount extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 所属企业,一个人只能属于一家企业
*/
@Column(nullable = false,name="enterpriseId")
private Long enterpriseId;
/**
* 企业id path
*/
@Column(nullable = false,length = 512)
private String eidPath;
/**
* 所属部门,一个人只能属于一个部门
*/
@Column(nullable = false,name="departmentId")
private Long departmentId;
/**
* 部门id path
*/
@Column(nullable = false,length = 512)
private String didPath;
/**
* 昵称
*/
@Column(nullable = false,name="name",length = 50)
private String name;
/**
* 联系电话加密
*/
@Column(length = 128, nullable = false, name = "telephone")
private String telephone_;
/**
* 加密真实姓名
*/
@Column(length = 128,name = "realName")
private String realName_;
/**
* 头像
*/
@Column(length = 128)
private String avatar;
/**
* 性别:0-男;1-女;2-未知
*/
@Column(nullable = false,length = 1)
private String sex;
/**
* 密码,telephone为盐值
*/
@Column(nullable = false,length=128)
private String password;
/**
* role Id
*/
@Column(nullable = false,name="roleId")
private Long roleId;
/**
* 状态:00-正常,10-锁定
*/
@Column(nullable = false,length = 2)
private String state;
public Long getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Long enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEidPath() {
return eidPath;
}
public void setEidPath(String eidPath) {
this.eidPath = eidPath;
}
public Long getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Long departmentId) {
this.departmentId = departmentId;
}
public String getDidPath() {
return didPath;
}
public void setDidPath(String didPath) {
this.didPath = didPath;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone_ != null ? AESUtil.decrypt(telephone_, KeyConstant.TELEPHONE) : "";
}
public void setTelephone(String telephone) {
if (!StringUtils.isEmpty(telephone)) {
this.telephone_ = AESUtil.encrypt(telephone, KeyConstant.TELEPHONE);
}
}
public String getRealName() {
return realName_ != null ? AESUtil.decrypt(realName_, KeyConstant.REALNAME) : "";
}
public void setRealName(String realName) {
if (!StringUtils.isEmpty(realName)) {
this.realName_ = AESUtil.encrypt(realName, KeyConstant.REALNAME);
}
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
/**
* 将隐私数据处理
* @param account
* @return
*/
public EAccount mask() {
this.setId(null);
this.setCreateTime(null);
this.setUpdateTime(null);
this.departmentId = null;
this.password = null;
return this;
}
}

View File

@@ -0,0 +1,256 @@
/**
* 合同
*/
package com.kelp.crm.entity;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise_contract")
public class EContract extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 企业,目前不使用
*/
// @Column(nullable = false,name="enterpriseId")
// private Long enterpriseId;
/**
* 企业id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String eidPath;
/**
* 部门,目前不使用
*/
// @Column(nullable = false,name="departmentId")
// private Long departmentId;
/**
* 部门id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String didPath;
/**
* 客户id不可修改
*/
@Column(nullable = false)
private Long customerId;
/**
* 客户名称,不可修改
*/
@Column(nullable = false,name="customerName",length = 128)
private String customerName_;
/**
* 录入人,不可修改
*/
@Column(nullable = false)
private Long accountId;
/**
* 录入人姓名,不可修改
*/
@Column(length = 128,nullable = false,name="accountName")
private String accountName_;
/**
* 我方签订人
*/
@Column(length = 128,nullable = false,name="staffName")
private String staffName_;
/**
* 甲方签订人
*/
@Column(length = 128,nullable = false,name="customerSignatory")
private String customerSignatory_;
/**
* 签订时间
*/
@Column(nullable = false)
private Long signTime;
/**
* 合同终止时间
*/
private Long endTime;
/**
* 合同金额
*/
private BigDecimal amount;
/**
* 发票情况
*/
@Column(length = 1024)
private String fapiao;
/**
* 回款情况
*/
@Column(length = 1024)
private String dso;
/**
* 备注或内容
*/
@Column(length = 1024)
private String content;
/**
* 状态:00-正常,10-删除
*/
@Column(nullable = false,length = 2)
private String state;
// public Long getEnterpriseId() {
// return enterpriseId;
// }
// public void setEnterpriseId(Long enterpriseId) {
// this.enterpriseId = enterpriseId;
// }
// public String getEidPath() {
// return eidPath;
// }
// public void setEidPath(String eidPath) {
// this.eidPath = eidPath;
// }
// public Long getDepartmentId() {
// return departmentId;
// }
// public void setDepartmentId(Long departmentId) {
// this.departmentId = departmentId;
// }
// public String getDidPath() {
// return didPath;
// }
// public void setDidPath(String didPath) {
// this.didPath = didPath;
// }
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getAccountName() {
return accountName_ != null ? AESUtil.decrypt(accountName_, KeyConstant.REALNAME) : "";
}
public void setAccountName(String accountName) {
if (!StringUtils.isEmpty(accountName)) {
this.accountName_ = AESUtil.encrypt(accountName, KeyConstant.REALNAME);
}
}
public String getStaffName() {
return staffName_ != null ? AESUtil.decrypt(staffName_, KeyConstant.REALNAME) : "";
}
public void setStaffName(String staffName) {
if (!StringUtils.isEmpty(staffName)) {
this.staffName_ = AESUtil.encrypt(staffName, KeyConstant.REALNAME);
}
}
public Long getCustomerId() {
return customerId;
}
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName_ != null ? AESUtil.decrypt(customerName_, KeyConstant.REALNAME) : "";
}
public void setCustomerName(String customerName) {
if (!StringUtils.isEmpty(customerName)) {
this.customerName_ = AESUtil.encrypt(customerName, KeyConstant.REALNAME);
}
}
public String getCustomerSignatory() {
return customerSignatory_ != null ? AESUtil.decrypt(customerSignatory_, KeyConstant.REALNAME) : "";
}
public void setCustomerSignatory(String customerSignatory) {
if (!StringUtils.isEmpty(customerSignatory)) {
this.customerSignatory_ = AESUtil.encrypt(customerSignatory, KeyConstant.REALNAME);
}
}
public Long getSignTime() {
return signTime;
}
public void setSignTime(Long signTime) {
this.signTime = signTime;
}
public Long getEndTime() {
return endTime;
}
public void setEndTime(Long endTime) {
this.endTime = endTime;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getFapiao() {
return fapiao;
}
public void setFapiao(String fapiao) {
this.fapiao = fapiao;
}
public String getDso() {
return dso;
}
public void setDso(String dso) {
this.dso = dso;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,216 @@
/**
* 客户
*/
package com.kelp.crm.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise_customer")
public class ECustomer extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 当前所属企业,目前不使用
*/
// @Column(nullable = false,name="enterpriseId")
// private Long enterpriseId;
/**
* 企业id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String eidPath;
/**
* 当前所属部门,目前不使用
*/
// @Column(nullable = false,name="departmentId")
// private Long departmentId;
/**
* 部门id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String didPath;
/**
* 录入人,不可修改,目前不使用
*/
// @Column(nullable = false)
// private Long accountId;
/**
* 录入人姓名,不可修改,目前不使用
*/
// @Column(length = 128,nullable = false,name = "accountName")
// private String accountName_;
/**
* 跟单人
*/
@Column(length = 128,name="staffName")
private String staffName_;
/**
* 客户名称
*/
@Column(nullable = false,name="name",length = 128,unique = true)
private String name_;
/**
* 联系人
*/
@Column(length = 128, nullable = false,name="contact")
private String contact_;
/**
* 联系电话加密
*/
@Column(length = 128, nullable = false, name = "telephone")
private String telephone_;
/**
* 最后有效日期始
*/
private long effctiveTime;
/**
* 最后有效日期止
*/
private long expiredTime;
/**
* 描述
*/
@Column(length=256)
private String description;
/**
* 状态:00-待签约,01-签约,10-死单,11-删除
*/
@Column(nullable = false,length = 2)
private String state;
// public Long getEnterpriseId() {
// return enterpriseId;
// }
// public void setEnterpriseId(Long enterpriseId) {
// this.enterpriseId = enterpriseId;
// }
// public String getEidPath() {
// return eidPath;
// }
// public void setEidPath(String eidPath) {
// this.eidPath = eidPath;
// }
// public Long getDepartmentId() {
// return departmentId;
// }
// public void setDepartmentId(Long departmentId) {
// this.departmentId = departmentId;
// }
// public String getDidPath() {
// return didPath;
// }
// public void setDidPath(String didPath) {
// this.didPath = didPath;
// }
// public Long getAccountId() {
// return accountId;
// }
// public void setAccountId(Long accountId) {
// this.accountId = accountId;
// }
// public String getAccountName() {
// return accountName_ != null ? AESUtil.decrypt(accountName_, KeyConstant.REALNAME) : "";
// }
// public void setAccountName(String accountName) {
// if (!StringUtils.isEmpty(accountName)) {
// this.accountName_ = AESUtil.encrypt(accountName, KeyConstant.REALNAME);
// }
// }
public String getName() {
return name_ != null ? AESUtil.decrypt(name_, KeyConstant.REALNAME) : "";
}
public void setName(String name) {
if (!StringUtils.isEmpty(name)) {
this.name_ = AESUtil.encrypt(name, KeyConstant.REALNAME);
}
}
public String getContact() {
return contact_ != null ? AESUtil.decrypt(contact_, KeyConstant.NAME) : "";
}
public void setContact(String contact) {
if(!StringUtils.isEmpty(contact)) {
this.contact_ = AESUtil.encrypt(contact, KeyConstant.NAME);
}
}
public String getTelephone() {
return telephone_ != null ? AESUtil.decrypt(telephone_, KeyConstant.TELEPHONE) : "";
}
public void setTelephone(String telephone) {
if (!StringUtils.isEmpty(telephone)) {
this.telephone_ = AESUtil.encrypt(telephone, KeyConstant.TELEPHONE);
}
}
public String getStaffName() {
return staffName_ != null ? AESUtil.decrypt(staffName_, KeyConstant.REALNAME) : "";
}
public void setStaffName(String staffName) {
if (!StringUtils.isEmpty(staffName)) {
this.staffName_ = AESUtil.encrypt(staffName, KeyConstant.REALNAME);
}
}
public long getEffctiveTime() {
return effctiveTime;
}
public void setEffctiveTime(long effctiveTime) {
this.effctiveTime = effctiveTime;
}
public long getExpiredTime() {
return expiredTime;
}
public void setExpiredTime(long expiredTime) {
this.expiredTime = expiredTime;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,233 @@
/**
* 客户拜访记录
*/
package com.kelp.crm.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise_customer_visit")
public class ECustomerVisit extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 企业,目前不使用
*/
// @Column(nullable = false,name="enterpriseId")
// private Long enterpriseId;
/**
* 企业id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String eidPath;
/**
* 部门,目前不使用
*/
// @Column(nullable = false,name="departmentId")
// private Long departmentId;
/**
* 部门id path目前不使用
*/
// @Column(nullable = false,length = 512)
// private String didPath;
/**
* 录入人,不可修改
*/
@Column(nullable = false)
private Long accountId;
/**
* 录入人姓名,不可修改
*/
@Column(length = 128,nullable = false,name="accountName")
private String accountName_;
/**
* 拜访人
*/
@Column(length = 128,nullable = false,name="staffName")
private String staffName_;
/**
* 约见人
*/
@Column(length = 128,nullable = false,name="visiter")
private String visiter_;
/**
* 约见人
*/
@Column(length = 128,nullable = false,name="visiterTelephone")
private String visiterTelephone_;
/**
* 拜访时间
*/
@Column(nullable = false)
private Long visitTime;
/**
* 客户id不可修改
*/
@Column(nullable = false)
private Long customerId;
/**
* 客户名称,不可修改
*/
@Column(nullable = false,name="customerName",length = 128)
private String customerName_;
/**
* 联系电话加密
*/
@Column(length = 128, nullable = false, name = "customerTelephone")
private String customerTelephone_;
/**
* 拜访内容及结果
*/
@Column(length = 1024,nullable = false)
private String content;
/**
* 状态:00-待签约,01-签约,10-死单,11-删除
*/
@Column(nullable = false,length = 2)
private String state;
// public Long getEnterpriseId() {
// return enterpriseId;
// }
// public void setEnterpriseId(Long enterpriseId) {
// this.enterpriseId = enterpriseId;
// }
// public String getEidPath() {
// return eidPath;
// }
// public void setEidPath(String eidPath) {
// this.eidPath = eidPath;
// }
// public Long getDepartmentId() {
// return departmentId;
// }
// public void setDepartmentId(Long departmentId) {
// this.departmentId = departmentId;
// }
// public String getDidPath() {
// return didPath;
// }
// public void setDidPath(String didPath) {
// this.didPath = didPath;
// }
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getAccountName() {
return accountName_ != null ? AESUtil.decrypt(accountName_, KeyConstant.REALNAME) : "";
}
public void setAccountName(String accountName) {
if (!StringUtils.isEmpty(accountName)) {
this.accountName_ = AESUtil.encrypt(accountName, KeyConstant.REALNAME);
}
}
public String getStaffName() {
return staffName_ != null ? AESUtil.decrypt(staffName_, KeyConstant.REALNAME) : "";
}
public void setStaffName(String staffName) {
if (!StringUtils.isEmpty(staffName)) {
this.staffName_ = AESUtil.encrypt(staffName, KeyConstant.REALNAME);
}
}
public String getVisiter() {
return visiter_ != null ? AESUtil.decrypt(visiter_, KeyConstant.REALNAME) : "";
}
public void setVisiter(String visiter) {
if (!StringUtils.isEmpty(visiter)) {
this.visiter_ = AESUtil.encrypt(visiter, KeyConstant.REALNAME);
}
}
public String getVisiterTelephone() {
return visiterTelephone_ != null ? AESUtil.decrypt(visiterTelephone_, KeyConstant.TELEPHONE) : "";
}
public void setVisiterTelephone(String visiterTelephone) {
if (!StringUtils.isEmpty(visiterTelephone)) {
this.visiterTelephone_ = AESUtil.encrypt(visiterTelephone, KeyConstant.TELEPHONE);
}
}
public Long getVisitTime() {
return visitTime;
}
public void setVisitTime(Long visitTime) {
this.visitTime = visitTime;
}
public Long getCustomerId() {
return customerId;
}
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName_ != null ? AESUtil.decrypt(customerName_, KeyConstant.REALNAME) : "";
}
public void setCustomerName(String customerName) {
if (!StringUtils.isEmpty(customerName)) {
this.customerName_ = AESUtil.encrypt(customerName, KeyConstant.REALNAME);
}
}
public String getCustomerTelephone() {
return customerTelephone_ != null ? AESUtil.decrypt(customerTelephone_, KeyConstant.TELEPHONE) : "";
}
public void setCustomerTelephone(String customerTelephone) {
if (!StringUtils.isEmpty(customerTelephone)) {
this.customerTelephone_ = AESUtil.encrypt(customerTelephone, KeyConstant.TELEPHONE);
}
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,172 @@
/**
* 企业
*/
package com.kelp.crm.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_enterprise")
public class Enterprise extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
public Enterprise() {}
public Enterprise(Long id,String name,Long pId,String type) {
this.setId(id);
this.name = name;
this.pId = pId;
this.type = type;
}
/**
* 类型:00-企业;01-代理
*/
@Column(length = 2,nullable = false)
private String type = "00";
/**
* 上级id如果id=pId则为顶级
*/
@Column(name="pId",nullable = false)
private Long pId;
/**
* id path默认支持10级
*/
@Column(nullable = false,length = 512)
private String idPath;
/**
* 名称
*/
@Column(nullable = false,name="name",length = 50,unique = true)
private String name;
/**
* 联系电话加密
*/
@Column(length = 128, nullable = false, name = "telephone")
private String telephone_;
/**
* 联系人
*/
@Column(length = 50, nullable = false,name="contact")
private String contact_;
/**
* 图片
*/
@Column(length = 128)
private String avatar;
/**
* 地址
*/
private String address;
/**
* 简介
*/
@Lob
private String description;
/**
* 状态:00-正常,10-锁定
*/
@Column(nullable = false,length = 2)
private String state;
@Transient
public Boolean isParent = true;
public Long getpId() {
return pId;
}
public void setpId(Long pId) {
this.pId = pId;
}
public String getIdPath() {
return idPath;
}
public void setIdPath(String idPath) {
this.idPath = idPath;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone_ != null ? AESUtil.decrypt(telephone_, KeyConstant.TELEPHONE) : "";
}
public void setTelephone(String telephone) {
if(!StringUtils.isEmpty(telephone)) {
this.telephone_ = AESUtil.encrypt(telephone, KeyConstant.TELEPHONE);
}
}
public String getContact() {
return contact_ != null ? AESUtil.decrypt(contact_, KeyConstant.NAME) : "";
}
public void setContact(String contact) {
if(!StringUtils.isEmpty(contact)) {
this.contact_ = AESUtil.encrypt(contact, KeyConstant.NAME);
}
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,25 @@
package com.kelp.crm.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.crm.entity.Department;
public interface DepartmentService {
public void add(Department department);
public void update(Department department);
public void delete(String[] ids);
public Department getById(String id);
//
public Page<Department> getPage(int pageNumber, int pageSize,String enterpriseId,String pId,String name,String state);
//取得直接下级
public List<Department> listTop(String enterpriseId,String pId);
public List<Department> listdsub(String enterpriseId,String pId);
}

View File

@@ -0,0 +1,52 @@
package com.kelp.crm.service;
import com.kelp.base.Page;
import com.kelp.crm.entity.EAccount;
public interface EAccountService {
public void add(EAccount account);
public void add4m(EAccount account);
public void update(EAccount account);
public void update4m(EAccount account);
public EAccount getById(String id);
public EAccount getByTelephone(String telephone);
public EAccount getBySelfId(String selfId);
public void delete(String[] ids);
/**
*
* @param pageNumber
* @param pageSize
* @param name - 昵称
* @param telephone
* @param roleId
* @param state
* @return
*/
public Page<EAccount> getPage(int pageNumber, int pageSize, String enterpriseId, String departmentId, String name,
String telephone, String roleId, String state);
/**
* 公司管理员查询
*
* @param pageNumber
* @param pageSize
* @param enterpriseId
* @param name
* @param telephone
* @param roleId
* @param state
* @return
*/
public Page<EAccount> getPage4m(int pageNumber, int pageSize, String enterpriseId, String name, String telephone,
String roleId, String state);
}

View File

@@ -0,0 +1,19 @@
package com.kelp.crm.service;
import com.kelp.base.Page;
import com.kelp.crm.entity.EContract;
public interface EContractService {
public void add(EContract contract);
public void update(EContract contract);
public EContract getById(String id);
public void delete(String[] ids);
public Page<EContract> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state);
}

View File

@@ -0,0 +1,27 @@
package com.kelp.crm.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.crm.entity.ECustomer;
public interface ECustomerService {
public ECustomer add(ECustomer customer);
public void update(ECustomer customer);
public ECustomer getByName(String name);
public ECustomer getById(String id);
public void delete(String[] ids);
public List<ECustomer> getAll(String state);
public Page<ECustomer> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state);
public Page<ECustomer> getPage4NoVisit(int pageNumber, int pageSize, String startDate, String endDate);
}

View File

@@ -0,0 +1,19 @@
package com.kelp.crm.service;
import com.kelp.base.Page;
import com.kelp.crm.entity.ECustomerVisit;
public interface ECustomerVisitService {
public void add(ECustomerVisit customerVisit);
public void update(ECustomerVisit customerVisit);
public ECustomerVisit getById(String id);
public void delete(String[] ids);
public Page<ECustomerVisit> getPage(int pageNumber, int pageSize, String customerId, String startDate,
String endDate, String state);
}

View File

@@ -0,0 +1,29 @@
package com.kelp.crm.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.crm.entity.Enterprise;
public interface EnterpriseService {
public void add(Enterprise company);
public void update(Enterprise company);
public void delete(String[] ids);
public Enterprise getById(String id);
public Enterprise getByName(String name);
public List<Enterprise> listAll(String state);
//
public Page<Enterprise> getPage(int pageNumber, int pageSize,String pId,String name,String state);
//取得直接下级
public List<Enterprise> listTop(Long pId);
public List<Enterprise> listdsub(String pId);
public List<Enterprise> listdsub(String pId ,String type);
}

View File

@@ -0,0 +1,93 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.DepartmentDao;
import com.kelp.crm.dao.EnterpriseDao;
import com.kelp.crm.entity.Department;
import com.kelp.crm.entity.Enterprise;
import com.kelp.crm.service.DepartmentService;
@Service
public class DepartmentServiceImpl implements DepartmentService {
@Autowired
private IdWorker idWorker;
@Autowired
private DepartmentDao departmentDao;
@Autowired
private EnterpriseDao enterpriseDao;
@Override
public void add(Department department) {
Enterprise enterprise = enterpriseDao.get(department.getEnterpriseId());
department.setEidPath(enterprise != null?enterprise.getIdPath():"0");
department.setId(idWorker.nextId());
//先设为0
department.setIdPath("0");
//保存之后处理
Department pdepartment = departmentDao.get(department.getpId());
department.setIdPath((pdepartment != null?pdepartment.getIdPath():"0") + "-" + String.valueOf(department.getId()));
departmentDao.update(department);
}
@Override
public void update(Department department) {
Enterprise enterprise = enterpriseDao.get(department.getEnterpriseId());
department.setEidPath(enterprise != null?enterprise.getIdPath():"0");
Department pdepartment = departmentDao.get(department.getpId());
department.setIdPath((pdepartment != null?pdepartment.getIdPath():"0") + "-" + String.valueOf(department.getId()));
departmentDao.update(department);
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
departmentDao.delete(ids_);
}
@Override
public Department getById(String id) {
return departmentDao.get(Long.valueOf(id));
}
@Override
public Page<Department> getPage(int pageNumber, int pageSize,String enterpriseId,String pId,String name,String state) {
Page<Department> page = departmentDao.getPage(pageNumber, pageSize,Long.valueOf(enterpriseId),Long.valueOf(pId),name,state);
if(page == null){
page = new Page<Department>();
}
return page;
}
@Override
public List<Department> listTop(String enterpriseId, String pId) {
return departmentDao.listTop(Long.valueOf(enterpriseId),Long.valueOf(pId));
}
@Override
public List<Department> listdsub(String enterpriseId,String pId) {
return departmentDao.listdsub(Long.valueOf(enterpriseId),Long.valueOf(pId));
}
}

View File

@@ -0,0 +1,125 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.DepartmentDao;
import com.kelp.crm.dao.EAccountDao;
import com.kelp.crm.dao.EnterpriseDao;
import com.kelp.crm.entity.Department;
import com.kelp.crm.entity.EAccount;
import com.kelp.crm.entity.Enterprise;
import com.kelp.crm.service.EAccountService;
@Service
public class EAccountServiceImpl implements EAccountService {
@Autowired
private IdWorker idWorker;
@Autowired
private EAccountDao accountDao;
@Autowired
private DepartmentDao departmentDao;
@Autowired
private EnterpriseDao enterpriseDao;
@Override
public EAccount getByTelephone(String telephone) {
return accountDao.get("telephone_", AESUtil.encrypt(telephone, KeyConstant.TELEPHONE));
}
@Override
public EAccount getBySelfId(String selfId) {
return accountDao.get("selfId_", AESUtil.encrypt(selfId, KeyConstant.SELFID));
}
@Override
public void add(EAccount account) {
Department department = departmentDao.get(account.getDepartmentId());
account.setId(idWorker.nextId());
account.setEidPath(department != null?department.getEidPath():"0");
account.setDidPath(department != null?department.getIdPath():"0");
accountDao.add(account);
}
@Override
public void add4m(EAccount account) {
Enterprise enterprise = enterpriseDao.get(account.getEnterpriseId());
account.setId(idWorker.nextId());
account.setEidPath(enterprise != null?enterprise.getIdPath():"0");
account.setDepartmentId(0L);
account.setDidPath("0");
accountDao.add(account);
}
@Override
public void update(EAccount account) {
Department department = departmentDao.get(account.getDepartmentId());
account.setEidPath(department != null?department.getEidPath():"0");
account.setDidPath(department != null?department.getIdPath():"0");
accountDao.update(account);
}
@Override
public void update4m(EAccount account) {
Enterprise enterprise = enterpriseDao.get(account.getEnterpriseId());
account.setEidPath(enterprise != null?enterprise.getIdPath():"0");
account.setDepartmentId(0L);
account.setDidPath("0");
accountDao.update(account);
}
@Override
public EAccount getById(String id) {
return accountDao.get(Long.valueOf(id));
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
accountDao.setState(ids_, "10");
}
@Override
public Page<EAccount> getPage(int pageNumber, int pageSize, String enterpriseId, String departmentId, String name, String telephone, String roleId,
String state) {
Page<EAccount> page = accountDao.getPage(pageNumber, pageSize,Long.valueOf(enterpriseId),(!StringUtils.isEmpty(departmentId))?Long.valueOf(departmentId) : null, name, !StringUtils.isEmpty(telephone) ? AESUtil.encrypt(telephone, KeyConstant.TELEPHONE) : null, (!StringUtils.isEmpty(roleId))?Long.valueOf(roleId) : null, state);
if (page == null) {
page = new Page<EAccount>();
}
return page;
}
@Override
public Page<EAccount> getPage4m(int pageNumber, int pageSize, String enterpriseId, String name, String telephone, String roleId,
String state) {
Page<EAccount> page = accountDao.getPage4m(pageNumber, pageSize,Long.valueOf(enterpriseId), name, !StringUtils.isEmpty(telephone) ? AESUtil.encrypt(telephone, KeyConstant.TELEPHONE) : null, (!StringUtils.isEmpty(roleId))?Long.valueOf(roleId) : null, state);
if (page == null) {
page = new Page<EAccount>();
}
return page;
}
}

View File

@@ -0,0 +1,85 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.EAccountDao;
import com.kelp.crm.dao.EContractDao;
import com.kelp.crm.dao.ECustomerDao;
import com.kelp.crm.entity.EAccount;
import com.kelp.crm.entity.EContract;
import com.kelp.crm.entity.ECustomer;
import com.kelp.crm.service.EContractService;
@Service
public class EContractServiceImpl implements EContractService {
@Autowired
private IdWorker idWorker;
@Autowired
private ECustomerDao customerDao;
@Autowired
private EAccountDao accountDao;
@Autowired
private EContractDao contractDao;
@Override
public void add(EContract contract) {
// 设置默认值
EAccount account = accountDao.get(contract.getAccountId());
ECustomer customer = customerDao.get(contract.getCustomerId());
if (account == null || customer == null) {
return;
}
contract.setId(idWorker.nextId());
contract.setAccountName(account.getName());
contract.setCustomerName(customer.getName());
contractDao.add(contract);
}
@Override
public void update(EContract contract) {
contractDao.update(contract);
}
@Override
public EContract getById(String id) {
return contractDao.get(Long.valueOf(id));
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for (String id : ids) {
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
contractDao.setState(ids_, "10");
}
@Override
public Page<EContract> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state) {
Page<EContract> page = contractDao.getPage(pageNumber, pageSize, startDate, endDate, name, state);
if (page == null) {
page = new Page<EContract>();
}
return page;
}
}

View File

@@ -0,0 +1,89 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.ECustomerDao;
import com.kelp.crm.entity.ECustomer;
import com.kelp.crm.service.ECustomerService;
@Service
public class ECustomerServiceImpl implements ECustomerService {
@Autowired
private IdWorker idWorker;
@Autowired
private ECustomerDao customerDao;
@Override
public ECustomer add(ECustomer customer) {
customer.setId(idWorker.nextId());
customerDao.add(customer);
return customer;
}
@Override
public void update(ECustomer customer) {
customerDao.update(customer);
}
@Override
public ECustomer getByName(String name) {
return customerDao.get("name_", AESUtil.encrypt(name, KeyConstant.REALNAME));
}
@Override
public ECustomer getById(String id) {
return customerDao.get(Long.valueOf(id));
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for (String id : ids) {
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
customerDao.setState(ids_, "11");
}
@Override
public Page<ECustomer> getPage(int pageNumber, int pageSize, String startDate, String endDate, String name,
String state) {
Page<ECustomer> page = customerDao.getPage(pageNumber, pageSize, startDate, endDate, name, state);
if (page == null) {
page = new Page<ECustomer>();
}
return page;
}
@Override
public Page<ECustomer> getPage4NoVisit(int pageNumber, int pageSize, String startDate, String endDate) {
Page<ECustomer> page = customerDao.getPage4NoVisit(pageNumber, pageSize, startDate, endDate);
if (page == null) {
page = new Page<ECustomer>();
}
return page;
}
@Override
public List<ECustomer> getAll(String state) {
return customerDao.getAll(state);
}
}

View File

@@ -0,0 +1,90 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.EAccountDao;
import com.kelp.crm.dao.ECustomerDao;
import com.kelp.crm.dao.ECustomerVisitDao;
import com.kelp.crm.entity.EAccount;
import com.kelp.crm.entity.ECustomer;
import com.kelp.crm.entity.ECustomerVisit;
import com.kelp.crm.service.ECustomerVisitService;
@Service
public class ECustomerVisitServiceImpl implements ECustomerVisitService {
@Autowired
private IdWorker idWorker;
@Autowired
private ECustomerVisitDao customerVisitDao;
@Autowired
private ECustomerDao customerDao;
@Autowired
private EAccountDao accountDao;
@Override
public void add(ECustomerVisit customerVisit) {
// 设置默认值
ECustomer customer = customerDao.get(customerVisit.getCustomerId());
EAccount account = accountDao.get(customerVisit.getAccountId());
if (customer == null || account == null) {
return;
}
customerVisit.setId(idWorker.nextId());
customerVisit.setAccountName(account.getRealName());
customerVisit.setCustomerName(customer.getName());
customerVisit.setCustomerTelephone(customer.getTelephone());
customerVisitDao.add(customerVisit);
}
@Override
public void update(ECustomerVisit customerVisit) {
customerVisitDao.update(customerVisit);
}
@Override
public ECustomerVisit getById(String id) {
return customerVisitDao.get(Long.valueOf(id));
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for (String id : ids) {
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
customerVisitDao.setState(ids_, "10");
}
@Override
public Page<ECustomerVisit> getPage(int pageNumber, int pageSize, String customerId, String startDate,
String endDate, String state) {
Page<ECustomerVisit> page = customerVisitDao.getPage(pageNumber, pageSize,
customerId != null ? Long.valueOf(customerId) : null, startDate, endDate, state);
if (page == null) {
page = new Page<ECustomerVisit>();
}
return page;
}
}

View File

@@ -0,0 +1,96 @@
package com.kelp.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.utils.IdWorker;
import com.kelp.crm.dao.EnterpriseDao;
import com.kelp.crm.entity.Enterprise;
import com.kelp.crm.service.EnterpriseService;
@Service
public class EnterpriseServiceImpl implements EnterpriseService {
@Autowired
private IdWorker idWorker;
@Autowired
private EnterpriseDao enterpriseDao;
@Override
public void add(Enterprise enterprise) {
enterprise.setId(idWorker.nextId());
enterprise.setIdPath("0");
Enterprise penterprise = enterpriseDao.get(enterprise.getpId());
enterprise.setIdPath((penterprise != null ? penterprise.getIdPath(): "0") + "-" + String.valueOf(enterprise.getId()));
enterpriseDao.add(enterprise);
}
@Override
public void update(Enterprise enterprise) {
Enterprise penterprise = enterpriseDao.get(enterprise.getpId());
enterprise.setIdPath((penterprise != null ? penterprise.getIdPath(): "0") + "-" + String.valueOf(enterprise.getId()));
enterpriseDao.update(enterprise);
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
enterpriseDao.delete(ids_);
}
@Override
public Enterprise getById(String id) {
return enterpriseDao.get(Long.valueOf(id));
}
@Override
public Enterprise getByName(String name) {
return enterpriseDao.get("name",name);
}
@Override
public List<Enterprise> listAll(String state) {
return enterpriseDao.listAll(state);
}
@Override
public Page<Enterprise> getPage(int pageNumber, int pageSize, String pId,String name,String state) {
Page<Enterprise> page = enterpriseDao.getPage(pageNumber, pageSize,Long.valueOf(pId),name,state);
if(page == null){
page = new Page<Enterprise>();
}
return page;
}
@Override
public List<Enterprise> listTop(Long pId) {
return enterpriseDao.listTop(pId);
}
@Override
public List<Enterprise> listdsub(String pId) {
return enterpriseDao.listdsub(Long.valueOf(pId));
}
@Override
public List<Enterprise> listdsub(String pId,String type) {
return enterpriseDao.listdsub(Long.valueOf(pId),type);
}
}

View File

@@ -0,0 +1,49 @@
package com.kelp.es.dao;
import java.util.List;
import java.util.Map;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import com.kelp.base.BaseEntity;
import com.kelp.base.Page;
/**
* ES操作基类接口
*
* @author Administrator
*
* @param <T> 泛型比如我们对实体类Course进行数据库操作则在子类中传入Course见CourseDaoBean代码T必须实现持久化接口
* @param <PK> 泛型,主键,可以是任意类型
*/
public interface ESDocumentDao<T> {
/**
* 添加或更新
*
* @param indexName
* @param entity
*/
public void add(String indexName, BaseEntity entity);
public void adds(String indexName, List<BaseEntity> list);
public void update(String indexName, BaseEntity entity);
/**
* 此处id为document id
*
* @param indexName
* @param id
* @return
*/
public Map<String, Object> getById(String indexName, Integer id);
public void delete(String indexName, Integer id);
public void deletes(String idxName, List<Integer> idList);
public Page<T> getPage(int pageNumber, int pageSize, String indexName, Class classz,
SearchSourceBuilder searchSourceBuilder, List<String> highlightFields);
}

View File

@@ -0,0 +1,17 @@
package com.kelp.es.dao;
/**
* ES操作基类接口
*
*/
public interface ESIndexDao {
public void createIndex(String indexName);
public boolean isExistsIndex(String indexName);
public void updateIndexSettings(String indexName);
public void deleteIndex(String indexName);
}

View File

@@ -0,0 +1,215 @@
package com.kelp.es.dao.impl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.CountRequest;
import org.elasticsearch.client.core.CountResponse;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.BaseEntity;
import com.kelp.base.Page;
import com.kelp.common.utils.object.ObjectUtil;
import com.kelp.es.dao.ESDocumentDao;
/**
* 基类ESDocument的实现是抽象类
*/
@Service
public class ESDocumentDaoImpl<T extends Serializable> implements ESDocumentDao<T> {
private static Logger log = LoggerFactory.getLogger(ESDocumentDaoImpl.class);
/**
* 这里获取的ElasticSearchConfig中声明的RestHighLevelClient对象
*/
@Autowired
private RestHighLevelClient restHighLevelClient;
@SuppressWarnings("unchecked")
@Override
public void add(String indexName, BaseEntity entity) {
IndexRequest request = new IndexRequest(indexName).id(entity.getId().toString())
.source(ObjectUtil.objectToJson(entity), XContentType.JSON);
try {
restHighLevelClient.index(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: add document failed - " + e.getMessage());
}
}
@SuppressWarnings("unchecked")
@Override
public void adds(String indexName, List<BaseEntity> list) {
BulkRequest request = new BulkRequest();
list.forEach(item -> request.add(new IndexRequest(indexName).id(item.getId().toString())
.source(ObjectUtil.objectToJson(item), XContentType.JSON)));
try {
restHighLevelClient.bulk(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: add documents failed - " + e.getMessage());
}
}
@Override
public Map<String, Object> getById(String indexName, Integer id) {
GetRequest request = new GetRequest(indexName, id.toString());
try {
GetResponse response = restHighLevelClient.get(request, RequestOptions.DEFAULT);
if (response.isExists()) {
return response.getSourceAsMap();
}
} catch (Exception e) {
log.error("ES: get document failed - " + e.getMessage());
}
return null;
}
@SuppressWarnings("unchecked")
@Override
public void update(String indexName, BaseEntity entity) {
try {
restHighLevelClient.update(new UpdateRequest(indexName, entity.getId().toString())
.doc(ObjectUtil.objectToJson(entity), XContentType.JSON), RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: update document failed - " + e.getMessage());
}
}
@Override
public void delete(String indexName, Integer id) {
try {
restHighLevelClient.delete(new DeleteRequest(indexName, id.toString()), RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: delete document failed - " + e.getMessage());
}
}
@Override
public void deletes(String indexName, List<Integer> ids) {
BulkRequest request = new BulkRequest();
ids.forEach(item -> request.add(new DeleteRequest(indexName, item.toString())));
try {
restHighLevelClient.bulk(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: delete documents failed - " + e.getMessage());
}
}
@Override
public Page<T> getPage(int pageNumber, int pageSize, String indexName, Class classz,
SearchSourceBuilder searchSourceBuilder, List<String> highlightFields) {
int count = getCount(indexName, searchSourceBuilder).intValue();
if (count == 0) {
return null;
}
// 总页数
int pageCount = count / pageSize + ((count % pageSize) == 0 ? 0 : 1);
if (pageNumber < 1) {
pageNumber = 1;
}
// 页码
if (pageNumber > pageCount) {
pageNumber = pageCount;
}
searchSourceBuilder.from(--pageNumber * pageSize).size(pageSize);
// 设置超时时间为2s
searchSourceBuilder.timeout(new TimeValue(2000));
// 高亮处理
if (highlightFields.size() > 0) {
HighlightBuilder highlightBuilder = new HighlightBuilder();
highlightBuilder.preTags("<strong style='color:#009688'>").postTags("</strong>");
// 设置高亮的方法
highlightBuilder.highlighterType("plain");
// 设置分段的数量不做限制
highlightBuilder.numOfFragments(0);
for (String field : highlightFields) {
highlightBuilder.field(field);
}
searchSourceBuilder.highlighter(highlightBuilder);
}
SearchRequest searchRequest = new SearchRequest(indexName);
searchRequest.source(searchSourceBuilder);
Page<T> page = new Page<T>();
try {
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
page.setData(makeList(searchResponse.getHits(), classz));
page.setLimit(pageSize);
page.setTotal(count);
page.setPageIndex(++pageNumber);
page.setTotalPage(pageCount);
return page;
} catch (Exception e) {
log.error("ES: get base entity page failed - " + e.getMessage(), e);
return null;
}
}
private List<T> makeList(SearchHits searchHits, Class classz) {
if (searchHits != null) {
List<T> list = new ArrayList<T>();
for (SearchHit hit : searchHits) {
Map<String, Object> map = hit.getSourceAsMap();
Map<String, HighlightField> map_ = hit.getHighlightFields();
for (String key : map_.keySet()) {
String value = map_.get(key).getFragments()[0].toString();
map.replace(key, value);
}
list.add((T) (ObjectUtil.map2Object(map, classz)));
}
return list;
}
return null;
}
private Long getCount(String indexName, SearchSourceBuilder builder) {
CountRequest request = new CountRequest(indexName).source(builder);
try {
CountResponse response = restHighLevelClient.count(request, RequestOptions.DEFAULT);
return response.getCount();
} catch (Exception e) {
log.error("ES: getCount by builder with value of field in index " + indexName + " - " + e.getMessage());
}
return 0L;
}
}

View File

@@ -0,0 +1,99 @@
package com.kelp.es.dao.impl;
import java.io.IOException;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.CreateIndexResponse;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.common.settings.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.kelp.es.dao.ESIndexDao;
/**
* 基类ESIndex的实现
*/
@Service
public class ESIndexDaoImpl implements ESIndexDao {
private static Logger log = LoggerFactory.getLogger(ESIndexDaoImpl.class);
/**
* 分片数量
*/
@Value("${elasticsearch.shards}")
private int shards;
/**
* 拷贝数量
*/
@Value("${elasticsearch.replicas}")
private int replicas;
/**
* 这里获取的ElasticSearchConfig中声明的RestHighLevelClient对象
*/
@Autowired
private RestHighLevelClient restHighLevelClient;
@Override
public void createIndex(String indexName) {
if (!isExistsIndex(indexName)) {
CreateIndexRequest request = new CreateIndexRequest(indexName).settings(
Settings.builder().put("index.number_of_shards", shards).put("index.number_of_replicas", replicas));
try {
CreateIndexResponse response = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
if (!response.isAcknowledged()) {
log.error("ES : init index failed.");
}
} catch (Exception e) {
log.error("ES : init index failed - " + e.getMessage());
}
}
}
@Override
public boolean isExistsIndex(String indexName) {
try {
return restHighLevelClient.indices().exists(new GetIndexRequest(indexName), RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: index is exists failed - " + e.getMessage());
return false;
}
}
@Override
public void deleteIndex(String indexName) {
try {
restHighLevelClient.indices().delete(new DeleteIndexRequest(indexName), RequestOptions.DEFAULT);
} catch (Exception e) {
log.error("ES: delete index failed - " + e.getMessage());
}
}
@Override
public void updateIndexSettings(String indexName) {
UpdateSettingsRequest request = new UpdateSettingsRequest(indexName);
request.settings(
Settings.builder().put("index.number_of_shards", shards).put("index.number_of_replicas", replicas))
.setPreserveExisting(true);
try {
restHighLevelClient.indices().putSettings(request, RequestOptions.DEFAULT);
} catch (IOException e) {
log.error("ES: index is exists failed - " + e.getMessage());
}
}
}

View File

@@ -0,0 +1,14 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Account;
public interface AccountDao extends BaseDao<Account, Long> {
public void setState(List<Long> ids, String state);
public Page<Account> getPage(int pageNumber, int pageSize,String name,String telephone, Long roleId,String state);
}

View File

@@ -0,0 +1,31 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.E_RF;
import com.kelp.plat.entity.Function;
public interface E_RFDao extends BaseDao<E_RF, Long> {
/**
* 取得这个Role可以访问的资源
* @param roleId
* @return
*/
public List<Function> getSRFByRoleId(Long roleId);
/**
* 保存权限信息
* @param roleId
* @param functionIds
*/
public void setRFs(Long roleId,List<Long> functionIds);
/**
* 取得这个Role的权限设置信息
* @param roleId
* @return
*/
public List<E_RF> getRFsByRoleId(Long roleId);
}

View File

@@ -0,0 +1,17 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.E_Role;
public interface E_RoleDao extends BaseDao<E_Role, Long>{
public Page<E_Role> getPage(int pageNumber, int pageSize,String name,Integer level);
public List<E_Role> getByLevel(Integer level);
public List<E_Role> getAll();
}

View File

@@ -0,0 +1,15 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Function;
public interface FunctionDao extends BaseDao<Function, Long> {
public Page<Function> getPage(int pageNumber, int pageSize,Long moduleId,String name);
public boolean delete(List<Long> ids);
}

View File

@@ -0,0 +1,45 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Menu;
public interface MenuDao extends BaseDao<Menu, Long> {
public Page<Menu> getPage(int pageNumber, int pageSize,String name,Long pId);
public List<Menu> listdsub(Long pId);
/**************************************************************/
/**
* 取得平台顶层菜单,pId=1
* @return
*/
public List<Menu> getTMenus();
/**
* 取得系统角色菜单
* @param roleId
* @return
*/
public List<Menu> getMenus(Long roleId);
/**************************************************************/
/**
* 取得企业顶层菜单,pId=2
* @return
*/
public List<Menu> getTMenus4Enterprise();
/**
* 取得企业角色菜单
* @param roleId
* @return
*/
public List<Menu> getMenus4Enterprise(Long roleId);
}

View File

@@ -0,0 +1,15 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Module;
public interface ModuleDao extends BaseDao<Module, Long> {
public Page<Module> getPage(int pageNumber, int pageSize,String name ,String state);
public List<Module> getAll(String state);
}

View File

@@ -0,0 +1,31 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Function;
import com.kelp.plat.entity.RF;
public interface RFDao extends BaseDao<RF, Long> {
/**
* 取得这个Role可以访问的资源
* @param roleId
* @return
*/
public List<Function> getSRFByRoleId(Long roleId);
/**
* 保存权限信息
* @param roleId
* @param functionIds
*/
public void setRFs(Long roleId,List<Long> functionIds);
/**
* 取得这个Role的权限设置信息
* @param roleId
* @return
*/
public List<RF> getRFsByRoleId(Long roleId);
}

View File

@@ -0,0 +1,17 @@
package com.kelp.plat.dao;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.base.dao.BaseDao;
import com.kelp.plat.entity.Role;
public interface RoleDao extends BaseDao<Role, Long>{
public Page<Role> getPage(int pageNumber, int pageSize,String name,Integer level);
public List<Role> getByLevel(Integer level);
public List<Role> getAll();
}

View File

@@ -0,0 +1,56 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.AccountDao;
import com.kelp.plat.entity.Account;
@Repository
public class AccountDaoImpl extends BaseDaoImpl<Account, Long> implements AccountDao {
@Override
public Page<Account> getPage(int pageNumber, int pageSize, String name, String telephone, Long roleId,
String state) {
String sql = " from Account o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if(!StringUtils.isEmpty(name) && name.length() < 50){
sql += " and name like ?" + index++;
params.add("%" + name + "%");
}
if(!StringUtils.isEmpty(telephone) && telephone.length() <= 32){
sql += " and telephone = ?" + index++;
params.add(telephone);
}
if(roleId != null ){
sql += " and roleId = ?" + index++;
params.add(roleId);
}
if(state != null && state.length() == 2){
sql += " and state = ?" + index;
params.add(state);
}
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public void setState(List<Long> ids ,String state) {
String sql = "update Account set state = :state where id in (:ids)";
em.createQuery(sql).setParameter("state", state).setParameter("ids", ids).executeUpdate();
}
}

View File

@@ -0,0 +1,52 @@
package com.kelp.plat.dao.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.common.utils.IdWorker;
import com.kelp.plat.dao.E_RFDao;
import com.kelp.plat.entity.E_RF;
import com.kelp.plat.entity.Function;
@Repository
@Transactional
public class E_RFDaoImpl extends BaseDaoImpl<E_RF, Long> implements E_RFDao {
@Autowired
private IdWorker idWorker;
@SuppressWarnings("unchecked")
@Override
public List<Function> getSRFByRoleId(Long roleId) {
String sql = "select o from Function o where o.id in (select functionId from E_RF where roleId = :roleId) order by moduleId";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
@Override
@Transactional
public void setRFs(Long roleId, List<Long> functionIds) {
//先删除
String sql = "delete E_RF where roleId = :roleId";
em.createQuery(sql).setParameter("roleId", roleId).executeUpdate();
//再添加
for(Long functionId : functionIds){
E_RF rf = new E_RF(roleId,functionId);
rf.setId(idWorker.nextId());
em.persist(rf);
}
}
@SuppressWarnings("unchecked")
@Override
public List<E_RF> getRFsByRoleId(Long roleId) {
String sql = "select o from E_RF o where roleId = :roleId";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
}

View File

@@ -0,0 +1,69 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.E_RoleDao;
import com.kelp.plat.entity.E_Role;
@Repository
@Transactional
public class E_RoleDaoImpl extends BaseDaoImpl<E_Role, Long> implements E_RoleDao {
@Override
@Transactional
public boolean delete(List<Long> ids) {
//处理RF
String sql = "delete E_RF where roleId in(:roleIds)";
em.createQuery(sql).setParameter("roleIds", ids).executeUpdate();
super.delete(ids);
return true;
}
@Override
public Page<E_Role> getPage(int pageNumber, int pageSize,String name,Integer level) {
String sql = " from E_Role o where 1=1 ";
List<Object> params = new ArrayList<Object>();
int i = 1;
if(name == null || name.length() == 0){
name = "";
sql += " and name like ?" + i++;
params.add("%" + name + "%");
}
if(level != null) {
sql += "and level = ?" + i++;
params.add(level);
}
sql += "order by level";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<E_Role> getAll() {
String sql = "select o from E_Role o order by level";
return em.createQuery(sql).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<E_Role> getByLevel(Integer level) {
String sql = "select o from E_Role o where level = :level ";
return em.createQuery(sql).setParameter("level", level).getResultList();
}
}

View File

@@ -0,0 +1,56 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.FunctionDao;
import com.kelp.plat.entity.Function;
@Repository
public class FunctionDaoImpl extends BaseDaoImpl<Function, Long> implements
FunctionDao {
@Override
public Page<Function> getPage(int pageNumber, int pageSize,Long moduleId,String name) {
String sql = " from Function o where 1=1 ";
List<Object> params = new ArrayList<Object>();
int i=1;
if(moduleId != null ){
sql += " and moduleId = ? " + i++;
params.add(moduleId);
}
if(name != null && name.length() > 0 && name.length() <= 20){
sql += " and name like ? " + i++;
params.add("%" + (name!=null?name:"") + "%");
}
sql += " order by moduleId,name ";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Override
@Transactional
public boolean delete(List<Long> ids) {
//处理RF中的Function的关联
String sqlRF = "delete RF where functionId in (:functionIds)";
em.createQuery(sqlRF).setParameter("functionIds", ids).executeUpdate();
//处理菜单
String sqlMenu = "update Menu set functionId = null,functionUrl = '' where functionId in (:functionIds)";
em.createQuery(sqlMenu).setParameter("functionIds", ids).executeUpdate();
//处理本身的删除
super.delete(ids);
return true;
}
}

View File

@@ -0,0 +1,103 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.MenuDao;
import com.kelp.plat.entity.Menu;
@Repository
public class MenuDaoImpl extends BaseDaoImpl<Menu, Long> implements MenuDao {
@Override
public Page<Menu> getPage(int pageNumber, int pageSize, String name, Long pId) {
String sql = " from Menu o where 1=1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if(name != null && name.length() > 0){
sql += " and name like ?" + index++;
params.add("%" + (name!=null?name:"") + "%");
}
if(pId != null){
sql += " and pId = ?" + index++;
params.add(pId);
}
sql += "order by pId,orderNumber";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@Transactional
@Override
public boolean delete(List<Long> ids) {
for(Long id : ids){
delete(id);
}
return true;
}
@Override
public boolean delete(Long id) {
String sqlMenuD = " delete Menu where id = :id ";
String sqlMenuQ = "select o from Menu o where pId = :pId ";
@SuppressWarnings("unchecked")
List<Menu> menuList = em.createQuery(sqlMenuQ).setParameter("pId", id).getResultList();
if(0 < menuList.size()){
for(Menu menu : menuList){
delete(Long.valueOf(menu.getId()));
}
}
em.createQuery(sqlMenuD).setParameter("id", id).executeUpdate();
return true;
}
@SuppressWarnings("unchecked")
@Override
public List<Menu> listdsub(Long pId) {
String sql = "select new com.kelp.plat.entity.Menu(o.id,o.name,o.pId) from Menu o where pId = :pId order by orderNumber";
return em.createQuery(sql).setParameter("pId", pId).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Menu> getTMenus() {
String sql = "select o from Menu o where o.pId = 1 order by orderNumber ";
return em.createQuery(sql).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Menu> getMenus(Long roleId) {
String sql = "select o from Menu o where o.functionId in(select functionId from RF where roleId = :roleId) order by orderNumber ";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Menu> getTMenus4Enterprise() {
String sql = "select o from Menu o where o.pId = 2 order by orderNumber ";
return em.createQuery(sql).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Menu> getMenus4Enterprise(Long roleId) {
String sql = "select o from Menu o where o.functionId in(select functionId from E_RF where roleId = :roleId) order by orderNumber ";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
}

View File

@@ -0,0 +1,58 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.ModuleDao;
import com.kelp.plat.entity.Module;
@Repository
public class ModuleDaoImpl extends BaseDaoImpl<Module, Long> implements
ModuleDao {
@Override
public Page<Module> getPage(int pageNumber, int pageSize, String name, String state) {
String sql = " from Module o where 1 = 1 ";
List<Object> params = new ArrayList<Object>();
int index = 1;
if(name == null || name.length() == 0 || name.length() > 50){
name = "";
}
sql += " and name like ?" + index++;
params.add("%" + name + "%");
if(state != null && state.length() == 2){
sql += " and state = ?" + index++;
params.add(state);
}
sql += " order by name ";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<Module> getAll(String state) {
String sql = "select o from Module o where state = :state order by name ";
if(state == null || state.length() != 2){
state = "";
}
return em.createQuery(sql).setParameter("state", state).getResultList();
}
@Override
public boolean delete(List<Long> ids) {
String sql = "update Module set state = '10' where id in (:ids)";
em.createQuery(sql).setParameter("ids", ids).executeUpdate();
return true;
}
}

View File

@@ -0,0 +1,51 @@
package com.kelp.plat.dao.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.common.utils.IdWorker;
import com.kelp.plat.dao.RFDao;
import com.kelp.plat.entity.Function;
import com.kelp.plat.entity.RF;
@Repository
public class RFDaoImpl extends BaseDaoImpl<RF, Long> implements RFDao {
@Autowired
private IdWorker idWorker;
@SuppressWarnings("unchecked")
@Override
public List<Function> getSRFByRoleId(Long roleId) {
String sql = "select o from Function o where o.id in (select functionId from RF where roleId = :roleId) order by moduleId";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
@Override
@Transactional
public void setRFs(Long roleId, List<Long> functionIds) {
//先删除
String sql = "delete RF where roleId = :roleId";
em.createQuery(sql).setParameter("roleId", roleId).executeUpdate();
//再添加
for(Long functionId : functionIds){
RF rf = new RF(roleId,functionId);
rf.setId(idWorker.nextId());
em.persist(rf);
}
}
@SuppressWarnings("unchecked")
@Override
public List<RF> getRFsByRoleId(Long roleId) {
String sql = "select o from RF o where roleId = :roleId";
return em.createQuery(sql).setParameter("roleId", roleId).getResultList();
}
}

View File

@@ -0,0 +1,68 @@
package com.kelp.plat.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.kelp.base.Page;
import com.kelp.base.dao.impl.BaseDaoImpl;
import com.kelp.plat.dao.RoleDao;
import com.kelp.plat.entity.Role;
@Repository
public class RoleDaoImpl extends BaseDaoImpl<Role, Long> implements RoleDao {
@Override
@Transactional
public boolean delete(List<Long> ids) {
//处理RF
String sql = "delete RF where roleId in(:roleIds)";
em.createQuery(sql).setParameter("roleIds", ids).executeUpdate();
super.delete(ids);
return true;
}
@Override
public Page<Role> getPage(int pageNumber, int pageSize,String name,Integer level) {
String sql = " from Role o where 1=1 ";
List<Object> params = new ArrayList<Object>();
int i = 1;
if(name == null || name.length() == 0){
name = "";
sql += " and name like ?" + i++;
params.add("%" + name + "%");
}
if(level != null) {
sql += "and level = ?" + i++;
params.add(level);
}
sql += "order by level";
return getBeanPage(pageNumber, pageSize, sql, params);
}
@SuppressWarnings("unchecked")
@Override
public List<Role> getAll() {
String sql = "select o from Role o order by level";
return em.createQuery(sql).getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<Role> getByLevel(Integer level) {
String sql = "select o from Role o where level = :level ";
return em.createQuery(sql).setParameter("level", level).getResultList();
}
}

View File

@@ -0,0 +1,146 @@
/**
* 账号
*/
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import com.kelp.base.BaseEntity;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
@Entity
@Table(name = "dt_mis_account")
public class Account extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 昵称
*/
@Column(length = 128, nullable = false)
private String name;
/**
* 联系电话加密
*/
@Column(length = 128, nullable = false,unique = true, name = "telephone")
private String telephone_;
/**
* 加密真实姓名
*/
@Column(length = 128,name = "realName")
private String realName_;
/**
* 头像
*/
@Column(length = 128)
private String avatar;
/**
* 性别:0-男;1-女;2-未知
*/
@Column(nullable = false,length = 1)
private String sex;
/**
* 密码,telephone为盐值
*/
@Column(nullable = false,length=128)
private String password;
/**
* role Id
*/
@Column(nullable = false)
private Long roleId;
/**
* 状态:00-正常,10-锁定
*/
@Column(nullable = false,length = 2)
private String state;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone_ != null ? AESUtil.decrypt(telephone_, KeyConstant.TELEPHONE) : "";
}
public void setTelephone(String telephone) {
if (!StringUtils.isEmpty(telephone)) {
this.telephone_ = AESUtil.encrypt(telephone, KeyConstant.TELEPHONE);
}
}
public String getRealName() {
return realName_ != null ? AESUtil.decrypt(realName_, KeyConstant.REALNAME) : "";
}
public void setRealName(String realName) {
if (!StringUtils.isEmpty(realName)) {
this.realName_ = AESUtil.encrypt(realName, KeyConstant.REALNAME);
}
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
/**
* 将隐私数据处理
* @param account
* @return
*/
public Account mask() {
this.setId(null);
this.setCreateTime(null);
this.setUpdateTime(null);
this.password = null;
return this;
}
}

View File

@@ -0,0 +1,54 @@
/**
* enterpirse rf
*/
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_e_rf")
public class E_RF extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
public E_RF() {}
public E_RF(Long roleId,Long functionId) {
this.roleId = roleId;
this.functionId = functionId;
}
/**
* 角色id
*/
@Column(nullable = false)
private Long roleId;
/**
* 资源id
*/
@Column(nullable = false)
private Long functionId;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public Long getFunctionId() {
return functionId;
}
public void setFunctionId(Long functionId) {
this.functionId = functionId;
}
}

View File

@@ -0,0 +1,60 @@
/**
* enterpirse role
*/
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_e_role")
public class E_Role extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 角色名称
*/
@Column(length = 50, nullable = false)
private String name;
/**
*
*/
@Column(nullable = false)
private Integer level = 0;
/**
* 描述
*/
@Column(length=128)
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}

View File

@@ -0,0 +1,97 @@
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_mis_function")
public class Function extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 名称
*/
@Column(length=50,nullable = false, unique = true)
private String name;
/**
* url
*/
@Column(nullable = false,unique = true)
private String url;
/**
* 是否记录日志
* 00-不记日志
* 10-记录日志
*/
private String isLog;
/**
* 所属模块的ID
*/
@Column(nullable=false)
private Long moduleId;
/**
* 描述
*/
@Column(length = 256)
private String description;
/**
* 权限处理里是否选中状态,不映射数据库
*/
@Transient
private String isChecked;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getIsLog() {
return isLog;
}
public void setIsLog(String isLog) {
this.isLog = isLog;
}
public Long getModuleId() {
return moduleId;
}
public void setModuleId(Long moduleId) {
this.moduleId = moduleId;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getIsChecked() {
return isChecked;
}
public void setIsChecked(String isChecked) {
this.isChecked = isChecked;
}
}

View File

@@ -0,0 +1,31 @@
package com.kelp.plat.entity;
import java.io.Serializable;
import java.util.List;
public class MF implements Serializable {
/**
*
*/
private static final long serialVersionUID = 648607480793276509L;
private Module module;
private List<Function> functions;
public Module getModule() {
return module;
}
public void setModule(Module module) {
this.module = module;
}
public List<Function> getFunctions() {
return functions;
}
public void setFunctions(List<Function> functions) {
this.functions = functions;
}
}

View File

@@ -0,0 +1,123 @@
/**
* 菜单
*/
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_mis_menu")
public class Menu extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
public Menu() {}
public Menu(Long id,String name,Long pId) {
this.setId(id);
this.name = name;
this.pId = pId;
}
/**
* 菜单名称
*/
@Column(nullable = false,length=50)
private String name;
/**
* 父ID
*/
@Column(nullable = false)
private Long pId;
/**
* 关联的功能Id
*/
@Column(name="functionId")
private Long functionId;
/**
* 关联的功能url与function保持一致
*/
private String functionUrl;
/**
* 序号
*/
@Column(nullable=false)
private int orderNumber;
/**
* 自定义css
*/
@Column(length = 128)
private String css;
/**
* 描述
*/
@Column(length=128)
private String description;
@Transient
public Boolean isParent = true;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getpId() {
return pId;
}
public void setpId(Long pId) {
this.pId = pId;
}
public Long getFunctionId() {
return functionId;
}
public void setFunctionId(Long functionId) {
this.functionId = functionId;
}
public String getFunctionUrl() {
return functionUrl;
}
public void setFunctionUrl(String functionUrl) {
this.functionUrl = functionUrl;
}
public int getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(int orderNumber) {
this.orderNumber = orderNumber;
}
public String getCss() {
return css;
}
public void setCss(String css) {
this.css = css;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}

View File

@@ -0,0 +1,61 @@
/**
* 模块
*/
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_mis_module")
public class Module extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 名称
*/
@Column(length=50,nullable = false, unique = true)
private String name;
/**
* 00-正常
* 10-禁用
*/
@Column(length=2,nullable = false)
private String state;
/**
* 描述
*/
@Column(length=128)
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}

View File

@@ -0,0 +1,52 @@
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_mis_rf")
public class RF extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 1L;
public RF() {}
public RF(Long roleId,Long functionId) {
this.roleId = roleId;
this.functionId = functionId;
}
/**
* 角色id
*/
@Column(nullable = false)
private Long roleId;
/**
* 资源id
*/
@Column(nullable = false)
private Long functionId;
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public Long getFunctionId() {
return functionId;
}
public void setFunctionId(Long functionId) {
this.functionId = functionId;
}
}

View File

@@ -0,0 +1,54 @@
package com.kelp.plat.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.kelp.base.BaseEntity;
@Entity
@Table(name="dt_mis_role")
public class Role extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = 1L;
@Column(nullable = false,length=50,unique = true)
private String name;
/**
* 0-省,1-市,2-县,3-乡,4-村
*/
@Column(nullable = false)
private Integer level = 0;
/**
* 描述
*/
@Column(length=128)
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}

View File

@@ -0,0 +1,31 @@
package com.kelp.plat.entity;
import java.io.Serializable;
import java.util.List;
public class TSMenu implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3114824770165538134L;
private Menu topMenu;
private List<Menu> subMenus;
public Menu getTopMenu() {
return topMenu;
}
public void setTopMenu(Menu topMenu) {
this.topMenu = topMenu;
}
public List<Menu> getSubMenus() {
return subMenus;
}
public void setSubMenus(List<Menu> subMenus) {
this.subMenus = subMenus;
}
}

View File

@@ -0,0 +1,32 @@
package com.kelp.plat.service;
import com.kelp.base.Page;
import com.kelp.plat.entity.Account;
public interface AccountService {
public void add(Account account);
public void update(Account account);
public Account getById(String id);
public Account getByTelephone(String telephone);
public Account getBySelfId(String selfId);
public void delete(String[] ids);
/**
*
* @param pageNumber
* @param pageSize
* @param name - 昵称
* @param telephone
* @param roleId
* @param state
* @return
*/
public Page<Account> getPage(int pageNumber, int pageSize,String name,String telephone, String roleId,String state);
}

View File

@@ -0,0 +1,34 @@
package com.kelp.plat.service;
import java.util.List;
import java.util.Map;
import com.kelp.plat.entity.E_RF;
import com.kelp.plat.entity.MF;
public interface E_RFService {
/**
* 取得权限信息key为urlvalue为roleId
* @param roleId
* @return
*/
public Map<String, String> getSRFs(String roleId);
/**
* 保存权限信息
* @param roleId
* @param functionIds
*/
public void setRFs(String roleId,String[] functionIds);
public List<MF> getMFs();
/**
* 取得此角色所有的权限信息
* @param roleId
* @return
*/
public List<E_RF> getRFs(String roleId);
}

View File

@@ -0,0 +1,28 @@
package com.kelp.plat.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.plat.entity.E_Role;
public interface E_RoleService {
public void add(E_Role role);
public void update(E_Role role);
public void delete(String[] ids);
public E_Role getById(String id);
public E_Role getByName(String name);
public Page<E_Role> getPage(int pageNumber, int pageSize,String name, Integer level);
///////////////////////////////////////////
public List<E_Role> getByLevel(Integer level);
public List<E_Role> getAll();
}

View File

@@ -0,0 +1,31 @@
package com.kelp.plat.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.plat.entity.Function;
public interface FunctionService {
public void add(Function function);
public void update(Function function);
public void delete(String[] ids);
public Function getById(String id);
public Function getByUrl(String url);
public Function getByName(String name);
public Page<Function> getPage(int pageNumber, int pageSize,String moduleId, String name);
/**
* 取得所有功能
* @return
*/
public List<Function> getFunctions();
}

View File

@@ -0,0 +1,53 @@
package com.kelp.plat.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.plat.entity.Menu;
import com.kelp.plat.entity.TSMenu;
public interface MenuService {
public void add(Menu menu);
public void update(Menu menu);
public void delete(String[] ids);
public Menu getById(String id);
public Page<Menu> getPage(int pageNumber, int pageSize,String name,String pId);
/**
* 取得直接下级菜单
* @param pId
* @return
*/
public List<Menu> listdsub(String pId);
/**************************************************************/
/**
* 取得所有的菜单
* @return
*/
public List<Menu> getMenus();
/**
*取得系统角色菜单
* @param roleId
* @return
*/
public List<TSMenu> getMenus(String roleId);
/**************************************************************/
/**
* 取得企业角色菜单
* @param roleId
* @return
*/
public List<TSMenu> getMenus4Enterprise(String roleId);
}

View File

@@ -0,0 +1,25 @@
package com.kelp.plat.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.plat.entity.Module;
public interface ModuleService {
public void add(Module module);
public void update(Module module);
public Module getById(String id);
public Module getByName(String name);
public void delete(String[] ids);
public Page<Module> getPage(int pageNumber, int pageSize,String name,String state);
public List<Module> getAll(String state);
}

View File

@@ -0,0 +1,35 @@
package com.kelp.plat.service;
import java.util.List;
import java.util.Map;
import com.kelp.plat.entity.MF;
import com.kelp.plat.entity.RF;
public interface RFService {
/**
* 取得权限信息key为urlvalue为roleId
* @param roleId
* @return
*/
public Map<String, String> getSRFs(String roleId);
/**
* 保存权限信息
* @param roleId
* @param functionIds
*/
public void setRFs(String roleId,String[] functionIds);
public List<MF> getMFs();
/**
* 取得此角色所有的权限信息
* @param roleId
* @return
*/
public List<RF> getRFs(String roleId);
}

View File

@@ -0,0 +1,29 @@
package com.kelp.plat.service;
import java.util.List;
import com.kelp.base.Page;
import com.kelp.plat.entity.Role;
public interface RoleService {
public void add(Role role);
public void update(Role role);
public void delete(String[] ids);
public Role getById(String id);
public Role getByName(String name);
public Page<Role> getPage(int pageNumber, int pageSize,String name, Integer level);
///////////////////////////////////////////
public List<Role> getByLevel(Integer level);
public List<Role> getAll();
}

View File

@@ -0,0 +1,78 @@
package com.kelp.plat.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.constant.KeyConstant;
import com.kelp.common.utils.AESUtil;
import com.kelp.common.utils.IdWorker;
import com.kelp.plat.dao.AccountDao;
import com.kelp.plat.entity.Account;
import com.kelp.plat.service.AccountService;
@Service
public class AccountServiceImpl implements AccountService {
@Autowired
private IdWorker idWorker;
@Autowired
private AccountDao accountDao;
@Override
public Account getByTelephone(String telephone) {
return accountDao.get("telephone_", AESUtil.encrypt(telephone, KeyConstant.TELEPHONE));
}
@Override
public Account getBySelfId(String selfId) {
return accountDao.get("selfId_", AESUtil.encrypt(selfId, KeyConstant.SELFID));
}
@Override
public void add(Account account) {
account.setId(idWorker.nextId());
accountDao.add(account);
}
@Override
public void update(Account account) {
accountDao.update(account);
}
@Override
public Account getById(String id) {
return accountDao.get(Long.valueOf(id));
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
try {
ids_.add(Long.valueOf(id));
} catch (Exception e) {
return;
}
}
accountDao.setState(ids_, "10");
}
@Override
public Page<Account> getPage(int pageNumber, int pageSize, String name, String telephone, String roleId,
String state) {
Page<Account> page = accountDao.getPage(pageNumber, pageSize, name, !StringUtils.isEmpty(telephone) ? AESUtil.encrypt(telephone, KeyConstant.KEY) : null, (roleId != null && roleId.length() > 0)?Long.valueOf(roleId) : null, state);
if (page == null) {
page = new Page<Account>();
}
return page;
}
}

View File

@@ -0,0 +1,84 @@
package com.kelp.plat.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.kelp.plat.dao.E_RFDao;
import com.kelp.plat.dao.FunctionDao;
import com.kelp.plat.dao.ModuleDao;
import com.kelp.plat.entity.E_RF;
import com.kelp.plat.entity.Function;
import com.kelp.plat.entity.MF;
import com.kelp.plat.entity.Module;
import com.kelp.plat.service.E_RFService;
@Service
public class E_RFServiceImpl implements E_RFService {
@Resource
private E_RFDao rfDao;
@Resource
private FunctionDao functiondao;
@Resource
private ModuleDao moduleDao;
@Override
public Map<String, String> getSRFs(String roleId) {
List<Function> functions = rfDao.getSRFByRoleId(Long.valueOf(roleId));
Map<String, String> rfMap = new HashMap<String, String>();
for(Function function : functions){
rfMap.put(function.getUrl(), roleId);
}
return rfMap;
}
@Override
public void setRFs(String roleId, String[] functionIds) {
List<Long> functionIds_ = new ArrayList<Long>();
for(String functionId : functionIds){
functionIds_.add(Long.valueOf(functionId));
}
rfDao.setRFs(Long.valueOf(roleId), functionIds_);
}
@Override
public List<MF> getMFs() {
List<MF> mfs = new ArrayList<MF>();
List<Module> modules = moduleDao.getAll("00");
List<Function> allFunctions = functiondao.getAll("moduleId","asc");
for(Module module : modules){
MF mf = new MF();
mf.setModule(module);
List<Function> functions = new ArrayList<Function>();
for(Function function : allFunctions){
if(function.getModuleId().equals(module.getId())){
functions.add(function);
}
}
mf.setFunctions(functions);
mfs.add(mf);
}
return mfs;
}
@Override
public List<E_RF> getRFs(String roleId) {
return rfDao.getRFsByRoleId(Long.valueOf(roleId));
}
}

View File

@@ -0,0 +1,78 @@
package com.kelp.plat.service.impl;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kelp.base.Page;
import com.kelp.common.utils.IdWorker;
import com.kelp.plat.dao.E_RoleDao;
import com.kelp.plat.entity.E_Role;
import com.kelp.plat.service.E_RoleService;
@Service
public class E_RoleServiceImpl implements E_RoleService {
@Autowired
private IdWorker idWorker;
@Resource
private E_RoleDao roleDao;
@Override
public void add(E_Role role) {
role.setId(idWorker.nextId());
roleDao.add(role);
}
@Override
public void update(E_Role role) {
roleDao.update(role);
}
@Override
public void delete(String[] ids) {
List<Long> ids_ = new ArrayList<Long>();
for(String id : ids){
ids_.add(Long.valueOf(id));
}
roleDao.delete(ids_);
}
@Override
public E_Role getById(String id) {
return roleDao.get(Long.valueOf(id));
}
@Override
public Page<E_Role> getPage(int pageNumber, int pageSize,String name, Integer level) {
Page<E_Role> page = roleDao.getPage(pageNumber, pageSize,name,level);
if(page == null){
page = new Page<E_Role>();
}
return page;
}
@Override
public E_Role getByName(String name) {
return roleDao.get("name", name);
}
@Override
public List<E_Role> getAll() {
return roleDao.getAll();
}
@Override
public List<E_Role> getByLevel(Integer level) {
return roleDao.getByLevel(level);
}
}

Some files were not shown because too many files have changed in this diff Show More