package cn.dreampie.resource.user;
import cn.dreampie.orm.aspect.AspectFactory;
import cn.dreampie.orm.page.FullPage;
import cn.dreampie.orm.transaction.TransactionAspect;
import cn.dreampie.resource.ApiResource;
import cn.dreampie.resource.user.model.User;
import cn.dreampie.resource.user.service.UserService;
import cn.dreampie.resource.user.service.UserServiceImpl;
import cn.dreampie.route.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* Created by ice on 14-12-29.
*/
@API("/users")
public class UserResource extends ApiResource {
//用于使用service层的 事务
// @Transaction(name = {"default", "demo"})的注解需要写在service的接口上
// 注意java的自动代理必须存在接口
private UserService userService = AspectFactory.newInstance(new UserServiceImpl(), new TransactionAspect());
//查询集合
@GET
public List<User> findAll() {
return User.dao.findAll();
}
//查询单个user对象
@GET("/:id")
public User find(String id) {
return User.dao.findById(id);
}
//全部对象分页 http://localhost:8081/api/v1.0/users/1/10
@GET("/:pageNumber/:pageSize")
public FullPage<User> paginate(int pageNumber, int pageSize) {
return User.dao.fullPaginateAll(pageNumber, pageSize);
}
//按条件分页 http://localhost:8081/api/v1.0/users/1/10/x
@GET("/:page_Number/:_page$Size/:$term")
public FullPage<User> paginate(int page_Number, int _page$Size, String $term) {
return User.dao.fullPaginateBy(page_Number, _page$Size, "username=?", $term);
}
//更新
@PUT
public User put(User user) {
user.update();
return user;
}
//保存
@POST("/:id")
public Set<User> save(int id, Set<User> users) {
userService.save(users.iterator().next());
return users;
}
//删除
@DELETE("/:id")
public boolean put(String id) {
String xx = getParam("xx");
return User.dao.deleteById(id);
}
@GET("/transactions")
// @Transaction
public User transaction() {
User u = new User().set("username", "testtr").set("providername", "test").set("password", "123456").set("sid", "1").set("created_at", new Date());
// UserInfo userInfo = null;
// if (u.get("user_info") == null) {
// userInfo = new UserInfo().set("gender", 0);
// } else {
// userInfo = u.get("user_info");
// }
// if (u.save()) {
// userInfo.set("user_id", u.get("id"));
// userInfo.save();
// int[] a = new int[0];
// System.out.println(a[2]); 报错 让事务回滚
// }
// u.set("id", u.get("id")).set("username", "x").update();
// return u;
//service层的事务
userService.save(u);
return null;
}
}