package com.zr.bean;
import java.util.List;
public class PageInfo<T> {
private List<T> list;
private int totalCount;
private int size;
private int totalPages;
private int currentPage;
public PageInfo() {
}
public PageInfo(List<T> list, int totalCount, int size, int totalPages, int currentPage) {
this.list = list;
this.totalCount = totalCount;
this.size = size;
this.totalPages = totalPages;
this.currentPage = currentPage;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
@Override
public String toString() {
return "PageInfo{" +
"list=" + list +
", totalCount=" + totalCount +
", size=" + size +
", totalPages=" + totalPages +
", currentPage=" + currentPage +
'}';
}
}
package com.zr.controller;
import com.zr.bean.PageInfo;
import com.zr.bean.Role;
import com.zr.bean.User;
import com.zr.service.IRoleService;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import javax.swing.plaf.PanelUI;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@Autowired
private IRoleService roleService;
@RequestMapping("login.do")
// public ModelAndView login(String username, String password){
public ModelAndView login(User user, HttpSession session){
// boolean flag = userService.login(username, password); //调用服务层的判断登录逻辑函数
int id = userService.login(user.getUsername(), user.getPassword()); //调用服务层的判断登录逻辑函数
ModelAndView modelAndView = new ModelAndView();
if (id != -1){
//根据用户id查询出roleid
List<Integer> roleIds = roleService.findRoleByUserId(id);
session.setAttribute("user",user);
session.setAttribute("roleIds", roleIds);
modelAndView.setViewName("main");
}
else {
modelAndView.setViewName("../failer");
}
return modelAndView;
}
@RequestMapping("findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage, String username,
@RequestParam(defaultValue = "0") int type,
HttpSession session){
if (type == 1){
session.setAttribute("searchname", username);
}else if(type == 0){
username = (String) session.getAttribute("searchname");
}
else if (type == 2){
session.removeAttribute("searchname");
}
PageInfo<User> pageInfo = userService.findAll(currentPage, username);
ModelAndView mv = new ModelAndView();
mv.setViewName("user-list");
mv.addObject("pageInfo",pageInfo);
return mv;
}
@RequestMapping("deleteById.do")
public String deleteById(int id){
System.out.println(id);
userService.deleteById(id);
return "redirect:findAll.do";
}
@RequestMapping("add.do")
public String add(User user){
userService.add(user);
return "redirect:findAll.do";
}
@RequestMapping("toUpdate.do")
public ModelAndView toUpdate(int id){
User user = userService.selectUserById(id);
ModelAndView mv = new ModelAndView();
mv.addObject("user", user);
mv.setViewName("user-update");
return mv;
}
@RequestMapping("update.do")
public String update(User user){
userService.update(user);
return "redirect:findAll.do";
}
@RequestMapping("logout.do")
public String logout(HttpSession session)
{
// ModelAndView modelAndView =new ModelAndView();
session.removeAttribute("user");
return "../login";
}
@RequestMapping("toAddRole.do")
public ModelAndView toAddRole(int id){
List<Role> roleList = roleService.findNotRoleByUserId(id);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("roles", roleList);
modelAndView.setViewName("user-role-add");
modelAndView.addObject("id",id);
return modelAndView;
}
@RequestMapping("AddRole.do")
public String AddRole(String roleIds, String userId){
String[] strs = roleIds.split(",");
List<Integer> ids = new ArrayList<>();
for (String s:strs){
ids.add(Integer.parseInt(s));
}
roleService.addRole(ids,Integer.parseInt(userId));
return "redirect:findAll.do";
}
@RequestMapping("deleteAll.do")
@ResponseBody
public String deleteAll(String userList){
String[] strings = userList.split(",");
List<Integer> ids = new ArrayList<>();
for (String s:strings){
ids.add(Integer.parseInt(s));
}
userService.deletetAll(ids);
return "";
}
}
package com.zr.service.impl;
import com.zr.bean.PageInfo;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public int login(String username, String password) {
User user =userDao.findUserByUsername(username); //调用永久层中的find方法,进行数据库的查询操作
if (user != null && user.getPassword().equals(password)){
return user.getId();
}
return -1;
}
@Override
public PageInfo<User> findAll(int currentPage, String username) {
PageInfo pageInfo = new PageInfo();
int totalcount = userDao.getTotalCount(username);
pageInfo.setTotalCount(totalcount);
double d = totalcount / 5.0;
// double d = pageInfo.getTotalCount() / 5.0;
int tp = (int) Math.ceil(d);
pageInfo.setTotalPages(tp);
pageInfo.setSize(5);
if (currentPage < 1){
pageInfo.setCurrentPage(1);
}else if (currentPage > tp){
pageInfo.setCurrentPage(tp);
}else {
pageInfo.setCurrentPage(currentPage);
}
int start = (pageInfo.getCurrentPage() - 1) * 5;
List<User> userList = userDao.findAll(start, 5,username);
pageInfo.setList(userList);
return pageInfo;
}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public User selectUserById(int id) {
return userDao.selectUserById(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public void deletetAll(List<Integer> ids) {
userDao.deleteAll(ids);
}
}
package com.zr.service.impl;
import com.zr.bean.PageInfo;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public int login(String username, String password) {
User user =userDao.findUserByUsername(username); //调用永久层中的find方法,进行数据库的查询操作
if (user != null && user.getPassword().equals(password)){
return user.getId();
}
return -1;
}
@Override
public PageInfo<User> findAll(int currentPage, String username) {
PageInfo pageInfo = new PageInfo();
int totalcount = userDao.getTotalCount(username);
pageInfo.setTotalCount(totalcount);
double d = totalcount / 5.0;
// double d = pageInfo.getTotalCount() / 5.0;
int tp = (int) Math.ceil(d);
pageInfo.setTotalPages(tp);
pageInfo.setSize(5);
if (currentPage < 1){
pageInfo.setCurrentPage(1);
}else if (currentPage > tp){
pageInfo.setCurrentPage(tp);
}else {
pageInfo.setCurrentPage(currentPage);
}
int start = (pageInfo.getCurrentPage() - 1) * 5;
List<User> userList = userDao.findAll(start, 5,username);
pageInfo.setList(userList);
return pageInfo;
}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public User selectUserById(int id) {
return userDao.selectUserById(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public void deletetAll(List<Integer> ids) {
userDao.deleteAll(ids);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
<select id="findUserByUsername" parameterType="String" resultType="com.zr.bean.User">
select * from tb_user where username = #{
username}
</select>
<select id="findAll" resultType="user">
select * from tb_user
<if test="username!=null and username !=''">
where username like concat("%", #{
username},"%")
</if>
limit #{
start}, #{
size}
</select>
<delete id="deleteById" parameterType="int">
delete from tb_user where id = #{
id}
</delete>
<insert id="add" parameterType="user">
insert into tb_user(username, password) values (#{
username}, #{
password})
</insert>
<select id="selectUserById" parameterType="int" resultType="user">
select * from tb_user where id = #{
id}
</select>
<update id="update" parameterType="user">
update tb_user set username = #{
username}, password = #{
password} where id = #{
id}
</update>
<select id="getTotalCount" resultType="int">
select count(*) from tb_user
<if test="username!=null and username !=''">
where username like concat("%", #{
username},"%")
</if>
</select>
<delete id="deleteAll" parameterType="list">
delete from tb_user where id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{
id}
</foreach>
</delete>
</mapper>
在中午花了一个小时时间完成了老师早上教授的内容后,我就开始小组项目中我的分工,即我的购物车子功能实现
package com.taobao.dao;
import com.taobao.bean.CarInfo;
import java.util.List;
public interface CarDao {
List<CarInfo> findAllCar(int userId);
CarInfo selectUserById(int id);
void update(CarInfo shopcarinfo);
double selectTotal(int id);
void deleteById(int id);
}
package com.taobao.controller;
import com.taobao.bean.CarInfo;
import com.taobao.service.CarService;
import com.taobao.bean.Goods;
import com.taobao.bean.Pages;
import com.taobao.service.IShopService;
import com.taobao.service.impl.ShopServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("shop")
public class shopController {
@Autowired
private IShopService shopService;
@Autowired
private CarService carService;
@RequestMapping("user_manage.do")
public ModelAndView User_Manage(){
ModelAndView mv = new ModelAndView();
mv.setViewName("user-list");
return mv;
}
@RequestMapping("my_collection.do")
public ModelAndView My_Collection(){
List<Goods> goodsList = shopService.findAll();
ModelAndView mv=new ModelAndView();
mv.setViewName("shop-collect");
mv.addObject("gs",goodsList);
return mv;
}
@RequestMapping("addCar.do")
public String addCar(String idList){
String[] strs=idList.split(",");
System.out.println(strs);
List<Integer> ids=new ArrayList<>();
for(String s:strs){
System.out.println(s);
ids.add(Integer.parseInt(s));
}
shopService.addCar(ids);
return "redirect:addCar.do";
}
@RequestMapping("addOrder.do")
public String addOrder(String idList){
String[] strs=idList.split(",");
System.out.println(strs);
List<Integer> ids=new ArrayList<>();
for(String s:strs){
System.out.println(s);
ids.add(Integer.parseInt(s));
}
shopService.addOrder(ids);
return "redirect:addCar.do";
}
/*
*我的购物车页面
*/
@RequestMapping("shop_car.do")
public ModelAndView Shop_Car(int userId){
List<CarInfo> shopcarList = carService.findAllCar(userId);
ModelAndView mv = new ModelAndView();
mv.addObject("roles", shopcarList);
mv.setViewName("shop-car");
mv.addObject("userId",userId);
// mv.setViewName("user-role-add");
return mv;
}
/*
*修改商品信息
*/
@RequestMapping("toUpdate.do")
public ModelAndView toUpdate(int id){
CarInfo shopinfo = carService.selectUserById(id);
ModelAndView mv = new ModelAndView();
mv.addObject("shopinfo", shopinfo);
mv.setViewName("shopcar-update");
return mv;
}
//修改后保存
@RequestMapping("save.do")
public String update(CarInfo shopcarinfo){
// String total = carService.selectTotal(shopcarinfo.getId()); //单价
// int totalprice =Integer.parseInt(total);
// int finaltotal =shopcarinfo.getNum() * totalprice;
// shopcarinfo.setTotal(Integer.toString(finaltotal));
// String price = carService.selectTotal(shopcarinfo.getId());
// int curretprice = Integer.parseInt(price);
// int finaltotal = shopcarinfo.getNum() * curretprice;
// shopcarinfo.setTotal(Integer.toString(finaltotal));
// carService.update(shopcarinfo);
double price = carService.selectTotal(shopcarinfo.getId());
// int curretprice = Integer.parseInt(price);
double finaltotal = shopcarinfo.getNum() * price;
shopcarinfo.setTotal(Double.toString(finaltotal));
carService.update(shopcarinfo);
return "redirect:shop_car.do?userId=1";
}
/*
*删除购物车记录
*/
@RequestMapping("deleteById.do")
public String deleteById(int id){
System.out.println(id);
carService.deleteById(id);
return "redirect:shop_car.do?userId=1";
}
@RequestMapping("shop_order.do")
public ModelAndView Shop_Order(){
ModelAndView mv = new ModelAndView();
mv.setViewName("shop-order");
return mv;
}
@RequestMapping("yonghu_info.do")
public ModelAndView YongHu_Info(){
ModelAndView mv = new ModelAndView();
mv.setViewName("yonghu-info");
return mv;
}
}
package com.taobao.service;
import com.taobao.bean.CarInfo;
import java.util.List;
public interface CarService {
List<CarInfo> findAllCar(int userId);
CarInfo selectUserById(int id);
void update(CarInfo shopcarinfo);
double selectTotal(int id);
void deleteById(int id);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.taobao.dao.CarDao">
<select id="findAllCar" parameterType="int" resultType="carinfo">
select * from shop_car where user_id = #{
userId}
</select>
<select id="selectUserById" parameterType="int" resultType="carinfo">
select * from shop_car where id = #{
id}
</select>
<select id="selectTotal" parameterType="int" resultType="double">
select price from shop_car where id = #{
id}
</select>
<update id="update" parameterType="carinfo">
update shop_car set shopname = #{
shopname}, num = #{
num}, total = #{
total} where id = #{
id}
</update>
<delete id="deleteById" parameterType="int">
delete from shop_car where id = #{
id}
</delete>
</mapper>