Ei kuvausta

UserService.java 7.9KB

    package com.ekexiu.console.system.service; import com.ekexiu.console.service.Upload; import com.ekexiu.console.system.dao.PictableDao; import com.ekexiu.console.system.dao.RoleDao; import com.ekexiu.console.system.dao.UserDao; import com.ekexiu.console.system.po.Pictable; import com.ekexiu.console.system.po.Role; import com.ekexiu.console.system.po.User; import com.ekexiu.console.system.vo.ConsoleAuthUser; import org.jfw.apt.annotation.Autowrie; import org.jfw.apt.annotation.DefaultValue; import org.jfw.apt.annotation.Nullable; import org.jfw.apt.web.annotation.LoginUser; import org.jfw.apt.web.annotation.Path; import org.jfw.apt.web.annotation.method.InvalidSession; import org.jfw.apt.web.annotation.method.SetSession; import org.jfw.apt.web.annotation.operate.Get; import org.jfw.apt.web.annotation.operate.Post; import org.jfw.apt.web.annotation.operate.Put; import org.jfw.apt.web.annotation.param.*; import org.jfw.util.PageQueryResult; import org.jfw.util.StringUtil; import org.jfw.util.auth.AuthUtil; import org.jfw.util.exception.JfwBaseException; import org.jfw.util.jdbc.JdbcUtil; import org.jfw.util.jdbc.ResultSetExtractor; import org.jfw.util.web.fileupload.UploadItemIterator; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @Path("/sys/user") public class UserService extends Upload { public static final String DEFAULT_AUTH_STR = AuthUtil.serialAuth(new int[]{0}); public static final String DEFAULT_PW_STR = StringUtil.md5("12345678"); @Autowrie private UserDao userDao; @Autowrie RoleDao roleDao; @Autowrie private PictableDao pictableDao; public PictableDao getPictableDao() { return pictableDao; } public void setPictableDao(PictableDao pictableDao) { this.pictableDao = pictableDao; } public RoleDao getRoleDao() { return roleDao; } public void setRoleDao(RoleDao roleDao) { this.roleDao = roleDao; } public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } @SetSession("JFW_SESSION_LOGIN_USER=result") @Path("/login") @Post public ConsoleAuthUser login(@JdbcConn Connection con, String key, String pw) throws SQLException { User user = userDao.queryByLoginKey(con, key); if (user != null && StringUtil.md5(pw).equals(user.getLoginPassword()) && user.isActived()) { ConsoleAuthUser cau = new ConsoleAuthUser(user); cau.setHead(user.getHead()); cau.setId(user.getId()); cau.setName(user.getName()); cau.setMobile(user.getMobile()); cau.setEmail(user.getEmail()); ArrayList<int[]> list = new ArrayList<int[]>(1); list.add(AuthUtil.deSerialAuth(user.getAuthinfo())); for (Role role : this.roleDao.queryByUser(con, user.getId())) { list.add(AuthUtil.deSerialAuth(role.getAuthinfo())); } cau.setAuths(AuthUtil.merge(list.toArray(new int[0][0]))); return cau; } return null; } @Get @Path public ConsoleAuthUser get(@LoginUser ConsoleAuthUser user) { return user; } @Get @Path("/logout") @InvalidSession public void logout() { } public static void main(String[] args) throws Exception { System.out.println(AuthUtil.serialAuth(new int[]{0})); } @Get @Path("/pq") public PageQueryResult<User> pageQuery(@JdbcConn Connection con, @Nullable String name, @Nullable Boolean actived, @Nullable String mobile, @Nullable String email, @Nullable String bt, @Nullable String et, @DefaultValue("1") int pageNo, @DefaultValue("10") int pageSize) throws SQLException { if (bt != null) bt = bt + "000000"; if (et != null) et = et + "235959"; PageQueryResult<User> ret = this.userDao.pageQuery(con, name, actived, mobile, email, bt, et, pageNo, pageSize); for (User u : ret.getData()) { u.setLoginPassword(null); u.setAuthinfo(null); } return ret; } @Post @Path public void insert(@JdbcConn(true) Connection con, @RequestParam(fields = {@FieldParam(value = "id", valueClass = String.class, required = false),@FieldParam(value = "name", valueClass = String.class, required = true), @FieldParam(value = "email", valueClass = String.class, required = true), @FieldParam(value = "mobile", valueClass = String.class, required = false), @FieldParam(value = "descp", valueClass = String.class, required = false), @FieldParam(value = "head", valueClass = String.class, required = false)}) User user) throws SQLException { if(user.getId() == null){ user.setId(StringUtil.buildUUID()); } user.setActived(true); user.setAuthinfo(DEFAULT_AUTH_STR); user.setLoginPassword(DEFAULT_PW_STR); this.userDao.insert(con, user); } @Get @Path("/all") public List<User> queryall(@JdbcConn Connection con) throws SQLException { List<User> users = this.userDao.queryall(con); for (User user : users) { if (user != null) { user.setLoginPassword(null); user.setAuthinfo(null); } } return users; } @Put @Path public void update(@JdbcConn(true) Connection con, @RequestBody User user) throws SQLException { user.setLoginPassword(null); this.userDao.update(con, user); } @Get @Path("/info") public User editInfo(@JdbcConn Connection con, @LoginUser ConsoleAuthUser cau) throws SQLException { User user = this.userDao.queryById(con, cau.getId()); if (user != null) { user.setLoginPassword(null); } return user; } @Post @Path("/resetpw") public void resetpw(@JdbcConn(true) Connection con, String[] ids) throws SQLException { this.userDao.resetPassword(con, ids, DEFAULT_PW_STR); } @Post @Path("/cp") public void changePassword(@JdbcConn(true) Connection con,@LoginUser ConsoleAuthUser cau,String pw)throws SQLException { this.userDao.changePassword(con, cau.getId(),StringUtil.md5(pw)); } @Get @Path("/right/{id}") public int[] getRights(@JdbcConn Connection con, @PathVar String id) throws SQLException { User user = this.userDao.queryById(con, id); if (user != null) { return AuthUtil.unCompress(AuthUtil.deSerialAuth(user.getAuthinfo())); } return null; } @Post @Path("/right") public void updateRights(@JdbcConn(true) Connection con, String userid, int[] right) throws SQLException { this.userDao.update(con, userid, AuthUtil.serialAuth(AuthUtil.compress(right))); } @Post @Path("/head") public Upload.UploadItem head(@org.jfw.apt.web.annotation.param.Upload UploadItemIterator it) throws JfwBaseException, IOException { return this.upload(it); } @Post @Path("/del") public void delete(@JdbcConn(true) Connection con, String[] ids) throws SQLException { this.userDao.delete(con, ids); } @Get @Path("/id/{id}") public User query(@JdbcConn Connection con, @PathVar String id) throws SQLException { User user = this.userDao.queryById(con, id); if (user != null) { user.setLoginPassword(null); user.setAuthinfo(null); } return user; } @Get @Path("/pictable/{id}") public List<Pictable> queryRec(@JdbcConn Connection con, @PathVar String id) throws SQLException { return this.pictableDao.queryRec(con, id); } @Get @Path("/userName") public List<TestService.TypeaheadItem> get(@JdbcConn Connection con) throws SQLException{ //String key = null; //if(q!=null) //{ // key= "%"+q+"%"; //} List<TestService.TypeaheadItem> ret = new ArrayList<>(); //final String finalKey = key; List<String> typeahead = JdbcUtil.queryList(con, "SELECT NAME FROM CUSER", new ResultSetExtractor<String>() { @Override public String extractData(ResultSet resultSet) throws SQLException { String s1 = resultSet.getString("NAME"); return s1; } }); for (String s1 : typeahead) { TestService.TypeaheadItem thi = new TestService.TypeaheadItem(); thi.setCode(s1); thi.setCaption(s1); ret.add(thi); } return ret; } }