项目学习《第六天》

早上决定先把昨天晚上还没有解决的缓冲连接池的问题放一放,先把修改用户信息写了吧!

UserController

    /*跳转用户修改页面*/
    @GetMapping("user/userManage")
    public String userManage(Model model){
        User user = (User) httpSession.getAttribute("user"); //获取登录的用户信息
        User user1 = userService.selectByNameAndPwd(user); //获取该用户信息的其他所有信息
        model.addAttribute("user", user1);
        return "user/userManage";
    }

    /*用户修改页面*/
    @PostMapping("user/userManage")
    public String userManagePost(User user, Model model, HttpSession httpSession){
        Date date = new Date();
        user.setUpdateDate(date); //设置更新日期为最新日期
        int i = userService.update(user);
        httpSession.setAttribute("user",user);
        return "redirect:login";
    }

解决完小问题成功实现该功能后的惯例
在这里插入图片描述

下面完成页面的这四个功能
在这里插入图片描述
商品管理这个功能需要操作数据库 tb_item , tb_re_item , tb_category,所以先完成这个三个mapper

ItemMapper

@Mapper
@Repository
public interface ItemMapper {

    @Select("select * from tb_item where id=#{id}")
    Item selectById(Item item);

    @Delete("delete from tb_item where id=#{id} ")
    int delete(Item item);

    @Select("SELECT i.* , t.name as categoryName FROM tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1 AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND price BETWEEN #{minPrice} AND #{maxPrice} ORDER BY updated desc limit #{start},#{end}")
    List<Item> list(Item item);

    @Select("SELECT i.* , t.name as categoryName FROM tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1 AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND num BETWEEN #{minNum} AND #{maxNum,} ORDER BY num limit #{start},#{end}")
    List<Item> lists(Item item);

    @Select("SELECT count(*) from tb_item i LEFT JOIN tb_category t ON i.cid = t.id WHERE i.status = 1AND title LIKE concat('%', #{title}, '%') AND cid = #{cid} AND price BETWEEN #{minPrice} AND #{maxPrice} ORDER BY price")
    int count(Item item);

    @Insert("INSERT INTO tb_item (id, title, sell_point, price, num, barcode, image, cid, status, created, updated) VALUES (#{id},#{title},#{sellPoint},#{price},#{num},#{barcode},#{image},#{cid},1,#{created},#{updated})")
    int insert(Item item);

    @Update("UPDATE tb_item SET title = #{title}, sell_point= #{sellPoint}, price = #{price}, num = #{num}, cid = #{cid}, updated = #{updated},image = #{image} WHERE id = #{id}")
    int update(Item item);

    @Select("select * from tb_item")
    List<Item> selectAll();
}

ReItemMapper

@Repository
@Mapper
public interface ReItemMapper {

    @Delete("delete from tb_re_item where id=#{id}")
    int deleteByPrimaryKey(int id);

    @Insert("insert into tb_re_item (id, title, sell_point, price, num, barcode, image, cid, status, recovered) values (#{id}, #{title}, #{sellPoint}, #{price}, #{num}, #{barcode}, #{image}, #{cid}, #{status}, #{recovered})")
    int insert(ReItem record);

    @Select("select id, title, sell_point, price, num, barcode, image, cid, status, recovered from tb_re_item where id = #{id}")
    ReItem selectByPrimaryKey(int id);

    @Select("select id, title, sell_point, price, num, barcode, image, cid, status, recovered from tb_re_item ORDER BY recovered DESC")
    List<ReItem> selectAll();

    @Update("update tb_re_item set title = #{title}, sell_point = #{sellPoint}, price = #{price}, num = #{num},  barcode = #{barcode}, image = #{image}, cid = #{cid}, status = #{status}, recovered = #{recovered} where id = #{id}")
    int updateByPrimaryKey(ReItem record);

    @Select("SELECT count(*) from tb_re_item")
    int count(ReItem record);
}

DateUtil

/*日期工具类*/
public class DateUtil {

    /*将日期转换为字符串*/
    public static String getDateStr(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String format = sdf.format(date);
        return format;
    }

    /*将字符创转换为日期*/
    public static Date strToDate(String date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d = null;
        try {
            d = sdf.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return d;
    }
}

惯例
在这里插入图片描述

PageUtil

public class PageUtil {

    public static String getPageContent(String url,int pageCurrent ,int pageSize,int pageCount){
       if (pageCount == 0){
           return "";
       }

       /*设置url中的参数*/
       String urlNew = url.replace("{pageSize}", pageSize+"").replace("{pageCount}",pageCount+"");
       /*第一页的url*/
       String first = urlNew.replace("{pageCurrent}",1+"");
       /*前一页的url*/
       String prev = urlNew.replace("{pageCurrent",(pageCurrent-1)+"");
       /*后一页的url*/
       String next = urlNew.replace("{pageCurrent",(pageCurrent+1)+"");
       /*最后一页的url*/
       String last = urlNew.replace("{pageCurrent}",pageCount+"");
       
       StringBuffer html = new StringBuffer();
        html.append("<li class=\"footable-page-arrow"+(pageCurrent<=1?" disabled":"")+"\"><a href=\""+(pageCurrent<=1?"#":first)+"\">«</a></li>");
        html.append("<li class=\"footable-page-arrow"+(pageCurrent<=1?" disabled":"")+"\"><a href=\""+(pageCurrent<=1?"#":prev)+"\">‹</a></li>");
        for(int i = 0 ;i < pageCount; i++){
            String urlItem = urlNew.replace("{pageCurrent}", (i+1)+"");
            html.append("<li class=\"footable-page"+(((i+1) == pageCurrent)?" active":"")+"\"><a href=\""+urlItem+"\">"+(i+1)+"</a></li>");
        }
        html.append("<li class=\"footable-page-arrow"+(pageCurrent==pageCount?" disabled":"")+"\"><a href=\""+(pageCurrent==pageCount?"#":next)+"\">›</a></li>");
        html.append("<li class=\"footable-page-arrow"+(pageCurrent==pageCount?" disabled":"")+"\"><a href=\""+(pageCurrent==pageCount?"#":last)+"\">»</a></li>");

        return html.toString().replaceAll("null", "");               
    }
}

ItemCategoryMapper

@Mapper
@Repository
public interface ItemCategoryMapper {

    @Select("SELECT * from tb_category where id = #{id}")
    ItemCategory findById(ItemCategory itemCategory);

    @Select("SELECT * from tb_category where status = 1 AND name LIKE concat('%', #{name}, '%') ORDER BY updated DESC limit #{start}, #{end}")
    List<ItemCategory> list(ItemCategory itemCategory);

    @Select("SELECT * from tb_category where status = 1 ORDER BY updated DESC")
    List<ItemCategory> list1();

    @Select("SELECT count(*) from tb_category WHERE status = 1 AND name LIKE concat('%', #{name}, '%')")
    int count(ItemCategory itemCategory);

    @Insert("INSERT INTO tb_category (id, parent_id, name, status, sort_order, is_parent, created, updated) values ( #{id}, null, #{name}, 1, null, null, #{created}, #{updated})")
    int insert(ItemCategory itemCategory);

    @Update("UPDATE tb_category SET name = #{name}, updated = now() WHERE id = #{id}")
    int update(ItemCategory itemCategory);

    @Delete("DELETE FROM tb_category WHERE id = #{id}")
    int delete(ItemCategory itemCategory);

    @Update("UPDATE tb_category SET status = #{status}, updated = now() WHERE id = #{id}")
    int updateStatus(ItemCategory itemCategory);
}

ItemController

    @Autowired
    ItemMapper itemMapper;

    @Autowired
    ItemCategoryMapper itemCategoryMapper;

    List<Item> itemList;
    @RequestMapping("/user/itemManage_{pageCurrent}_{pageSize}_{pageCount}")
    public String itemManage(Item item, Model model,
                             @PathVariable Integer pageCurrent,
                             @PathVariable Integer pageSize,
                             @PathVariable Integer pageCount){

        /*设置特殊当前页数的值和每页数据数以及计算一共多少页*/
        if (pageCurrent == 0)
            pageCurrent = 1;
        if (pageSize == 0)
            pageSize = 50;
        int count = itemMapper.count(item);
        if (pageCount == 0){
            pageCount = count%pageSize == 0 ? (count/pageSize) : (count/pageSize)+1;
        }

        item.setStart((pageCurrent - 1) * pageSize);
        item.setEnd(pageSize);
        model.addAttribute("item", item);

        /*设置更新日期为字符串格式*/
        itemList = itemMapper.list(item);
        for (Item i : itemList) {
            i.setUpdatedStr(DateUtil.getDateStr(i.getUpdated()));
        }
        model.addAttribute("itemList", itemList);

        /*设置商品分类的开始和结束*/
        ItemCategory itemCategory = new ItemCategory();
        itemCategory.setStart(0);
        itemCategory.setEnd(Integer.MAX_VALUE);


        List<ItemCategory> itemCategoryList = itemCategoryMapper.list(itemCategory);
        model.addAttribute("itemCategoryList", itemCategoryList);

        /*获取最高价格和最低价格*/
        Integer maxPrice = item.getMaxPrice();
        Integer minPrice = item.getMinPrice();

        /*设置动态的url*/
        String pageHTML = PageUtil.getPageContent("itemManage_{pageCurrent}_{pageSize}_{pageCont}?title = " + item.getTitle() + "&cid=" + item.getCid() + "&minPrice=" + item.getMinPrice() + "&maxPrice" + item.getMaxPrice(), pageCurrent, pageSize, pageCount);
        model.addAttribute("pageHTML", pageHTML);

        return "item/itemManage";


    }

写完了这些,并不能运行,去测试哪一步有问题去了~

猜你喜欢

转载自blog.csdn.net/SuJxxx/article/details/89399395