package cn.jeesoft.mvc.action.app; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import cn.jeesoft.core.interceptor.Before; import cn.jeesoft.core.model.PagerModel; import cn.jeesoft.core.utils.StringUtils; import cn.jeesoft.interceptor.UsersLoginInterceptor; import cn.jeesoft.mvc.action.BaseAppAction; import cn.jeesoft.mvc.bean.ProductCart; import cn.jeesoft.mvc.helper.LoginUserHolder; import cn.jeesoft.mvc.model.ResultCode; import cn.jeesoft.mvc.services.ProductCartService; /** * 购物车管理 * @author hzy * */ @RestController("app.product.cart") @RequestMapping("app/product/cart") @Before(UsersLoginInterceptor.class) public class ProductCartAction extends BaseAppAction<ProductCart, ProductCartAction.MPagerModel> { static class MPagerModel extends PagerModel<ProductCart, ProductCart> { } @Autowired private ProductCartService productCartService; //分页查询购物车列表 @ResponseBody @RequestMapping("list") public String list(HttpServletRequest request, MPagerModel pager) { if (pager.getQuery() == null) { pager.setQuery(new ProductCart()); } pager.getQuery().setUsersId(LoginUserHolder.getLoginUser().getId()); pager = productCartService.selectPageList(pager); return toSuccess(pager); } /** * 加入购物车 * 接口参数 param productId=商品ID number=商品数量 */ @ResponseBody @RequestMapping("append") public String append(HttpServletRequest request, ProductCart bean) { if (bean.getNumber() == null || bean.getNumber() <= 0) { bean.setNumber(1); } return updateOrAppend(bean, true); } /** * 修改购物车某条商品的数量 * 接口参数 param productId=商品ID number=商品数量 */ @ResponseBody @RequestMapping("update") public String update(HttpServletRequest request, ProductCart bean) { if (bean.getNumber() == null || bean.getNumber() <= 0) { bean.setNumber(1); } return updateOrAppend(bean, false); } private String updateOrAppend(ProductCart bean, boolean append) { bean.setUsersId(LoginUserHolder.getLoginUser().getId()); bean.setCreateTime(new Date()); //当前时间 // 更新数量 int result; try { result = productCartService.updateOrAppend(bean, append); if (result <= 0) { return toFailure(ResultCode.FAILURE, "加入购物车失败,请稍后重试"); } } catch (Exception e) { return toFailure(ResultCode.FAILURE, e); } return toSuccess(); } /** * 商品移除购物车 * 接口参数 param productId=商品ID */ @ResponseBody @RequestMapping("delete") public String delete(HttpServletRequest request, ProductCart bean) { if(StringUtils.isEmpty(bean.getProductId())){ return toFailure(ResultCode.ERROE_PARAMETER, "商品ID不能为空"); } // 获取SESSION里的userId bean.setUsersId(LoginUserHolder.getLoginUser().getId()); int result= productCartService.delete(bean); //开始删除 if(result > 0){ return toSuccess(); }else{ return toFailure(ResultCode.FAILURE, "移除购物车失败,请稍后重试"); } } @Override public ProductCartService getService() { return productCartService; } }