import com.reptile.bean.sys.Module;
import com.reptile.formbean.TreeNode;
import com.reptile.formbean.sys.BeanModule;
/**
* @ClassName IModuleService
* @Description 模块Service接口
* @author Bert
* @date 2013-01-13
*/
public interface IModuleService {
/**
*
* 获得菜单树
* @return
*/
public List<TreeNode> menuAllTree();
/**
*
* 获得菜单树
* @return
*/
public List<TreeNode> Tree();
/**
* 获取一个moduleGrid
* @return
*/
public List<BeanModule> moduleGrid(String id);
/**
* 保存
* @param model
*/
public void save(BeanModule model);
/**
* 删除
* @param id
* @return
*/
public Module remove(String id);
/**
* 修改一个菜单
* @param id
* @return
*/
public void edit(BeanModule model);
/**
* 获得操作友限
* @return
*/
public List<Module> getModuleRole(String hql);
}
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.reptile.bean.sys.Module;
import com.reptile.dao.sys.IModuleDao;
import com.reptile.formbean.TreeNode;
import com.reptile.formbean.sys.BeanModule;
import com.reptile.service.sys.IModuleService;
/**
* @ClassName MenuServiceImpl
* @Description 模块Service接口实现
* @author Bert
* @date 2013-01-13
*/
@Service("moduleService")
public class ModuleServiceImpl implements IModuleService {
private IModuleDao moduleDao;
@Inject
public void setModuleDao(IModuleDao moduleDao) {
this.moduleDao = moduleDao;
}
@Override
public List<TreeNode> menuAllTree() {
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("sortNumber", "asc");
List<Module> list = this.moduleDao.getScrollData(-1, -1, orderby).getResultlist();
List<TreeNode> tree = new ArrayList<TreeNode>();
if (list != null && list.size() > 0) {
for (Module bean : list) {
TreeNode node = new TreeNode();
node.setId(bean.getId());
node.setText(bean.getName());
if (bean.getIconName() != null && !"".equals(bean.getIconName())) {
node.setIconCls(bean.getIconName().trim());
} else {
node.setIconCls("");
}
if (bean.getModule() != null) {
node.setPid(bean.getModule().getId());
}
tree.add(node);
}
}
return tree;
}
@Override
public List<BeanModule> moduleGrid(String id) {
StringBuffer whereJPQL = new StringBuffer();
Map<String, Object> params = new HashMap<String, Object>();
if (id != null && !"".equals(id)) {
whereJPQL.append("o.module.id = :id");
params.put("id", id);
} else {
whereJPQL.append("o.module is null");
}
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("sortNumber", "asc");
List<Module> list = this.moduleDao.getScrollData(-1, -1, whereJPQL.toString(), params, orderby).getResultlist();
return getFromModules(list);
}
/**
* 组合树型表数据集合
*
* @param m
* @return
*/
private List<BeanModule> getFromModules(List<Module> list) {
List<BeanModule> menuTree = new ArrayList<BeanModule>();
if (list != null && list.size() > 0) {
for (Module module : list) {
BeanModule bm = new BeanModule();
BeanUtils.copyProperties(module, bm);
if (module.getModule() != null) {
bm.setPid(module.getModule().getId());
bm.setParentText(module.getModule().getName());
}
if (module.getModules() != null && module.getModules().size() > 0) {
bm.setState("closed");
}
if (module.getIconName() == null) {
bm.setIconCls("");
} else {
bm.setIconCls(module.getIconName());
}
menuTree.add(bm);
}
}
return menuTree;
}
@Override
public List<TreeNode> Tree() {
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("sortNumber", "asc");
List<Module> list = this.moduleDao.getScrollData(-1, -1, orderby).getResultlist();
List<TreeNode> tree = new ArrayList<TreeNode>();
if (list != null && list.size() > 0) {
for (Module bean : list) {
TreeNode node = new TreeNode();
node.setId(bean.getId());
node.setText(bean.getName());
if (bean.getIconName() != null && !"".equals(bean.getIconName())) {
node.setIconCls(bean.getIconName().trim());
} else {
node.setIconCls("");
}
if (bean.getModule() != null) {
node.setPid(bean.getModule().getId());
}
tree.add(node);
}
}
return tree;
}
@Override
public void save(BeanModule model) {
Module bean = new Module();
BeanUtils.copyProperties(model, bean, new String[] { "id", "createdate" });
if (model.getPid() != null && !"".equals(model.getPid())) {
bean.setModule(this.moduleDao.get((Serializable) model.getPid()));
}
this.moduleDao.save(bean);
}
@Override
public Module remove(String id) {
return this.moduleDao.deleteById((Serializable) id);
}
@Override
public void edit(BeanModule model) {
Module bean = this.moduleDao.get((Serializable) model.getId());
BeanUtils.copyProperties(model, bean, new String[] { "id", "createdate", "createUserNO" });
if (model.getPid() != null && !"".equals(model.getPid())) {
Module md = this.moduleDao.get((Serializable) model.getPid());
if (md != null) {
if (isDown(bean, md)) {// 要将当前节点修改到当前节点的子节点中
Set<Module> modules = bean.getModules();// 当前要修改的节点的所有下级节点
if (modules != null && modules.size() > 0) {
for (Module module : modules) {
if (module != null) {
module.setModule(null);
}
}
}
}
bean.setModule(md);
}
}
}
/**
* 判断是否是将当前节点修改到当前节点的子节点
* @param entity 根
* @param bean 子
* @return
*/
private boolean isDown(Module entity, Module bean) {
if (bean.getModule() != null) {
if (bean.getModule().getId().equals(entity.getId())) {
return true;
} else {
return isDown(entity, bean.getModule());
}
}
return false;
}
@Override
public List<Module> getModuleRole(String hql) {
return this.moduleDao.executeHqlList("select m from Module m where m.id in ("+hql+") and m.type = 'button'");
}
}
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.reptile.basic.framework.model.PageView;
import com.reptile.basic.framework.model.QueryResult;
import com.reptile.bean.sys.Role;
import com.reptile.bean.sys.User;
import com.reptile.dao.sys.IRoleDao;
import com.reptile.dao.sys.IUserDao;
import com.reptile.formbean.DataGrid;
import com.reptile.formbean.PageModel;
import com.reptile.formbean.sys.UserCombogridModel;
import com.reptile.formbean.sys.UserModel;
import com.reptile.service.sys.IUserService;
import com.reptile.utils.EncryptUtils;
import com.reptile.utils.SessionUtils;
/**
* @ClassName IUserService
* @Description 登录用户Service接口现实
* @author Bert
* @date 2013-01-13
*/
@Service("userService")
public class UserServiceImpl implements IUserService {
private IUserDao userDao;
private IRoleDao roleDao;
@Inject
public void setUserDao(IUserDao userDao) {
this.userDao = userDao;
}
@Inject
public void setRoleDao(IRoleDao roleDao) {
this.roleDao = roleDao;
}
@Override
public boolean userExist(String username){
return this.userDao.userExist(username);
}
@Override
public User save(UserModel model) {
User bean = new User();
BeanUtils.copyProperties(model, bean, new String[] { "id", "password","administrator", "createdate" });
bean.setPassword(EncryptUtils.md5AndSha(model.getPassword()));
bean.setCreateUserNO(SessionUtils.getUser().getUsername());
return userDao.save(bean);
}
@Override
public User login(String username, String password) {
return this.userDao.login(username, password);
}
@Override
public DataGrid<UserModel> list(PageModel pageModel, UserModel model) {
DataGrid<UserModel> dg = new DataGrid<UserModel>();
PageView<User> pageView = new PageView<User>(pageModel.getRows(), pageModel.getPage());
StringBuffer whereJPQL = new StringBuffer();
Map<String, Object> params = new HashMap<String, Object>();
if (model.getUsername() != null && !"".equals(model.getUsername().trim())) {
if (params.size() > 0)
whereJPQL.append(" and ");
whereJPQL.append("o.username like :username");
params.put("username", "%" + model.getUsername().trim() + "%");
}
if (model.getCnname() != null && !"".equals(model.getCnname().trim())) {
if (params.size() > 0)
whereJPQL.append(" and ");
whereJPQL.append("o.cnname like :cnname");
params.put("cnname", "%" + model.getCnname().trim() + "%");
}
if(model.getSex() != null && !"".equals(model.getSex())){
if(params.size() > 0 )
whereJPQL.append(" and ");
whereJPQL.append("o.sex = :sex");
params.put("sex", model.getSex());
}
if(model.getTelephone() != null && !"".equals(model.getTelephone().trim())){
if(params.size() > 0 )
whereJPQL.append(" and ");
whereJPQL.append("o.telephone = :telephone");
params.put("telephone", model.getTelephone().trim());
}
if(model.getStartcreatedate()!=null && !"".equals(model.getStartcreatedate()) && model.getEndcreatedate() !=null && !"".equals(model.getEndcreatedate().trim())){
if(params.size() > 0 )
whereJPQL.append(" and ");
whereJPQL.append("o.createdate >= :startcreatedate");
params.put("startcreatedate", DateUtils.format(model.getStartcreatedate().trim()+" 00:00:00"));
if(params.size() > 0 )
whereJPQL.append(" and ");
whereJPQL.append("o.createdate <= :endcreatedate");
params.put("endcreatedate", DateUtils.format(model.getEndcreatedate().trim()+" 23:59:59"));
}
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put(pageModel.getSort(), pageModel.getOrder());
QueryResult<User> result = userDao.getScrollData(pageView.getFirstResult(), pageView.getMaxresult(), whereJPQL.toString(), params, orderby);
List<UserModel> modellist = new ArrayList<UserModel>();
if (result.getResultlist() != null && result.getResultlist().size() > 0) {
for (User user : result.getResultlist()) {
UserModel userModel = new UserModel();
BeanUtils.copyProperties(user, userModel);
modellist.add(userModel);
}
}
dg.setTotal(result.getTotalrecord());
dg.setRows(modellist);
return dg;
}
@Override
public void remove(String ids) {
String[] nids = ids.split(",");
String hql = "delete User o where o.id in(";
for(int i = 0; i< nids.length; i++){
if(i>0){
hql += ",";
}
hql += "'" + nids[i] + "'";
}
hql += ")";
this.userDao.executeHql(hql);
}
@Override
public void edit(UserModel model) {
User bean = this.userDao.get((Serializable)model.getId());
BeanUtils.copyProperties(model, bean, new String[]{"id","username","password","createdate","createUserNO"});
bean.setUpdater(SessionUtils.getUser().getUsername());
bean.setUpdateTime(new Date());
this.userDao.update(bean);
}
@Override
public DataGrid<UserCombogridModel> userCombogrid(PageModel pageModel) {
DataGrid<UserCombogridModel> dg = new DataGrid<UserCombogridModel>();
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put(pageModel.getSort(), pageModel.getOrder());
QueryResult<User> result = userDao.getScrollData(-1, -1, orderby);
List<UserCombogridModel> modellist = new ArrayList<UserCombogridModel>();
if (result.getResultlist() != null && result.getResultlist().size() > 0) {
for (User user : result.getResultlist()) {
UserCombogridModel userCombogrid = new UserCombogridModel();
userCombogrid.setId(user.getId());
userCombogrid.setCnname(user.getCnname());
if (user.getSex() != null && !"".equals(user.getSex())) {
userCombogrid.setSex(user.getSex().getGender());
}
userCombogrid.setTelephone(user.getTelephone());
userCombogrid.setEmail(user.getEmail());
userCombogrid.setCreatedate(user.getCreatedate());
modellist.add(userCombogrid);
}
}
dg.setTotal(result.getTotalrecord());
dg.setRows(modellist);
return dg;
}
@Override
public DataGrid<UserCombogridModel> userCombogrid(PageModel pageModel, UserCombogridModel model) {
DataGrid<UserCombogridModel> dg = new DataGrid<UserCombogridModel>();
PageView<User> pageView = new PageView<User>(pageModel.getRows(), pageModel.getPage());
StringBuffer whereJPQL = new StringBuffer();
Map<String, Object> params = new HashMap<String, Object>();
/*
if (model.getEnterpriseid() != null && !"".equals(model.getEnterpriseid().trim())) {
if (params.size() > 0)
whereJPQL.append(" and ");
whereJPQL.append("o.department.enterprise.id = :enid");
params.put("enid", model.getEnterpriseid().trim());
}
if (model.getDepartmentid() != null && !"".equals(model.getDepartmentid().trim())) {
if (params.size() > 0)
whereJPQL.append(" and ");
whereJPQL.append("o.department.id = :depid");
params.put("depid",model.getDepartmentid());
}
*/
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put(pageModel.getSort(), pageModel.getOrder());
QueryResult<User> result = userDao.getScrollData(pageView.getFirstResult(), pageView.getMaxresult(), whereJPQL.toString(), params, orderby);
List<UserCombogridModel> modellist = new ArrayList<UserCombogridModel>();
if (result.getResultlist() != null && result.getResultlist().size() > 0) {
for (User user : result.getResultlist()) {
UserCombogridModel userCombogrid = new UserCombogridModel();
userCombogrid.setId(user.getId());
userCombogrid.setCnname(user.getCnname());
if (user.getSex() != null && !"".equals(user.getSex())) {
userCombogrid.setSex(user.getSex().getGender());
}
userCombogrid.setTelephone(user.getTelephone());
userCombogrid.setEmail(user.getEmail());
userCombogrid.setCreatedate(user.getCreatedate());
modellist.add(userCombogrid);
}
}
dg.setTotal(result.getTotalrecord());
dg.setRows(modellist);
return dg;
}
@Override
public String getUpRoleBatch() {
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("sortNumber", "asc");
List<Role> role = this.roleDao.getScrollData(-1, -1, orderby).getResultlist();
StringBuilder sb = new StringBuilder();
sb.append("<table width=\"100%\" border=\"0\"><tr>");
int i = 0;
for (Role r : role) {
sb.append("<td><input type=\"checkbox\" name=\"rids\" value=\"");
sb.append(r.getId());
sb.append("\" ");
sb.append("/> ");
sb.append(r.getName());
sb.append("</td>");
i++;
if (i % 2 == 0)
sb.append("</tr><tr>");
}
sb.append("</tr></table>");
return sb.toString();
}
@Override
public String getUpRole(String id) {
StringBuilder sb = new StringBuilder();
if(id != null && !"".equals(id)){
User user = this.userDao.get((Serializable)id);
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("sortNumber", "asc");
List<Role> role = this.roleDao.getScrollData(-1, -1, orderby).getResultlist();
sb.append("<table width=\"100%\" border=\"0\"><tr>");
int i = 0;
for (Role r : role) {
sb.append("<td><input type=\"checkbox\" name=\"rids\" value=\"");
sb.append(r.getId());
sb.append("\" ");
if (user.getRoles().contains(r)) {
sb.append(" checked ");
}
sb.append(" /> ");
sb.append(r.getName());
sb.append("</td>");
i++;
if (i % 2 == 0)
sb.append("</tr><tr>");
}
sb.append("</tr></table>");
}
return sb.toString();
}
@Override
public void saveUpUserRole(UserModel model) {
if(model.getIds() != null && !"".equals(model.getIds())){
for(String id : model.getIds().split(",")){
User user = this.userDao.get((Serializable) id);
user.getRoles().clear();
if(model.getRids() != null && model.getRids().length > 0){
Set<Role> role = new HashSet<Role>();
for(String rid : model.getRids()){
role.add(this.roleDao.get((Serializable) rid));
//user.addPrivilegeRole(new Role(rid));
}
user.setRoles(role);
}
}
}
}
}