package org.fireflow.demo.security.module;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.fireflow.demo.MainModule;
import org.fireflow.demo.misc.Utils;
import org.fireflow.demo.security.bean.UserRole;
import org.nutz.dao.Sqls;
import org.nutz.dao.pager.Pager;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.service.EntityService;
import org.nutz.trans.Atom;
import org.nutz.trans.Trans;
@At("/module/UserRole")
@IocBean(fields={"dao"})
public class UserRoleModule extends EntityService<UserRole>{
public static final String DEFAULT_GROUP_CODE = "0";
private static final Log log = Logs.get();
@At
public Object list(@Param("page") int page ,@Param("rows") int rows){
if (rows < 1)
rows = 10;
Pager pager = dao().createPager(page, rows);
List<UserRole> list = dao().query(UserRole.class, null, pager);
Map<String, Object> map = new HashMap<String, Object>();
if (pager != null) {
pager.setRecordCount(dao().count(UserRole.class));
map.put("pager", pager);
}
map.put("list", list);
return map;
}
@At
public boolean add(@Param("..") UserRole obj){
try{
dao().insert(obj);
return true;
}catch (Throwable e) {
log.error(Utils.exceptionStackToString(e));
return false;
}
}
@At
public boolean delete(@Param("..") UserRole obj){
try{
dao().delete(obj);
return true;
}catch (Throwable e) {
log.error(Utils.exceptionStackToString(e));
return false;
}
}
@At
public boolean update(@Param("..") UserRole obj){
try{
dao().update(obj);
return true;
}catch (Throwable e) {
log.error(Utils.exceptionStackToString(e));
return false;
}
}
@At
@Ok("json")
public Map<String,Object> updateUserRole(HttpServletRequest req){
final String roleCode = req.getParameter("roleCode");
String tmp = req.getParameter("groupCode");
if (tmp==null || tmp.trim().equals("")){
tmp = DEFAULT_GROUP_CODE;
}
final String groupCode = tmp;
// final List<UserRole> oldUserRoleList = dao().query(UserRole.class, Cnd.where("roleCode","=",roleCode));
String[] userCodeList = req.getParameterValues("userCode");
final List<UserRole> newUserRoleList = new ArrayList<UserRole>();
if (userCodeList!=null){
for (String userCode :userCodeList){
UserRole ur = new UserRole();
ur.setRoleCode(roleCode);
ur.setUserCode(userCode);
ur.setLastUpdatePerson(Utils.getCurrentUser().getName());
ur.setGroupCode(groupCode);
newUserRoleList.add(ur);
}
}
Trans.exec(new Atom(){
public void run() {
Sql sql = Sqls.create("delete from T_security_user_role where role_code='"+roleCode+"' and group_code='"+groupCode+"'");
dao().execute(sql);//先删除
if (newUserRoleList!=null){
for (UserRole ur: newUserRoleList){
dao().insert(ur);
}
}
}
});
Map<String,Object> result = new HashMap<String,Object>();
result.put(MainModule.JTABLE_RESULT_KEY, MainModule.JTABLE_RESULT_VALUE_OK);
return result;
}
}