商品信息编辑功能
写在前面:本篇仅用于帮助博主个人梳理思路
源码地址在本人GitHub:链接: Bond-hsh.
在index.ftl文件里面设计好前端的样式
文件所在位置
代码
<ul id="middle_nav" class="clearfix">
<li class="on"><a href="http://hust.2shoujie.com/user/goods">我发布的基金</a></li>
</ul>
<div id="my_products">
<div id="onsale_pro">
<#if goodsList??>
<#list goodsList as goods>
<div class="enshr_each" id="">
<div class="enshr_info">
<h2><a href="" title="${goods.name}">${goods.name}</a></h2>
<p>${goods.content}</p>
<div class="enshr_state">
<span id="prostate">状态:正在出售</span>
<span id="prostate">${goods.updateTime}</span>
<span class="enshrine_it" onclick="sellout(5);">确认售出</span>
<span class="enshrine_it make_edition" onclick="offshelf(68);">下架</span>
<span class="enshrine_it make_edition" onclick="refresh(124);">向前靠</span>
<a href="edit_goods?id=${goods.name}" target="_top">
<span class="enshrine_it make_edition">编辑</span>
</a>
</div>
</div>
<a href="http://hust.2shoujie.com/goods/186267">
<img class="enshr_ph" src="/photo/view?filename=${goods.photo}" alt="${goods.name}">
</a>
</div>
</#list>
</#if>
</div>
</div>
前端效果展示
修改Controller层文件
文件所在位置
代码
/*
* 基金信息编辑界面
*/
@RequestMapping(value="/edit_goods",method=RequestMethod.GET)
public String publish(@RequestParam(name="id",required=true)Long id,Model model){
return "home/stu/edit_goods";
}
修改Dao层文件
文件所在位置
代码
/**
* 根据用户id和基金id查询
* @param id
* @param uesrId
* @return
*/
@Query("select g from Goods g where id = :id and g.stu.id= :stuId")
Goods find(@Param("id")Long id,@Param("stuId")Long stuId);
修改Service层文件
文件所在位置
代码
/**
* 根据用户id和基金id查询
* @param id
* @param stuId
* @return
*/
public Goods find(Long id,Long stuId){
return goodsDao.find(id, stuId);
}
再次修改Service层文件
代码
/*
* 基金信息编辑界面
*/
@RequestMapping(value="/edit_goods",method=RequestMethod.GET)
public String publish(@RequestParam(name="id",required=true)Long id,Model model){
Stu loginedStu = (Stu)SessionUtil.get(SessionConstant.SESSION_STUDENT_LOGIN_KEY);
Goods goods = goodsService.find(id, loginedStu.getId());
if(goods == null){
model.addAttribute("msg", "该基金不存在");
return "error/runtime_error";
}
model.addAttribute("goods", goods);
return "home/stu/edit_goods";
}
设计编辑界面
代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>${siteName!""}发布基金</title>
<link rel="icon" href="/home/imgs/favicon.ico" type="image/x-icon">
<link media="all" href="/home/css/release_product.css" type="text/css" rel="stylesheet">
<link media="all" href="/home/css/index.css" type="text/css" rel="stylesheet">
</head>
<body>
<#include "../common/top_header.ftl"/>
<div class="container">
<div class="main center">
<img class="release-icon-main" src="/home/imgs/release-icon.png" alt="">
<div class="wave-fluid"></div>
<div class="release-title">发布基金出售</div>
<form action="publish" id="publish-form" method="post">
<div class="form-wr">
<div class="form-must-wr">
<input type="hidden" name="id" value="${goods.id}">
<input id="photo" type="hidden" name="photo" value="${goods.photo}" class = "required" tips = "请上传图片">
<div id="show-img" class="form-item l goods-title" style ="height:100px;">
<div class="form-key">
<span>基金图片</span>
</div>
<div class="form-value">
<div class="form-input-wr">
<img id="uploaded-img" src= "/photo/view?filename=${goods.photo}" width="100px" height="100px">
</div>
</div>
</div>
<div class="form-item l goods-title">
<div class="form-key">
<span>选择基金图片</span></div>
<div class="form-value">
<div class="form-input-wr">
<input type="file" id="uploadFile" />
</div>
</div>
</div>
<div class="form-item l goods-title">
<div class="form-key">
<span>基金名称</span></div>
<div class="form-value">
<div class="form-input-wr">
<input id="name" name="name" placeholder="最多18个字" maxlength="18" value="${goods.name}" type="text" class = "required" tips = "请填写基金名称"></div>
</div>
</div>
<div class="form-item l goods-title">
<div class="form-key">
<span>基金代码</span></div>
<div class="form-value">
<div class="form-input-wr">
<input id="code" name="code" value="${goods.code}" type="text" class = "required" tips = "请填写基金代码"></div>
</div>
</div>
<div class="form-item l goods-title">
<div class="form-key">
<span>基金日增长率</span></div>
<div class="form-value">
<div class="form-input-wr">
<input id="day_up" name="day_up" value="${goods.day_up}" type="text" class = "required" tips = "请填写基金日增长率"></div>
</div>
</div>
<div class="form-item l goods-title">
<div class="form-key">
<span>基金日增长值</span></div>
<div class="form-value">
<div class="form-input-wr">
<input id="day_upnum" name="day_upnum" value="${goods.day_upnum}" type="text" class = "required" tips = "请填写基金日增长值"></div>
</div>
</div>
<div class="form-item xl goods-desc">
<div class="form-key">
<span>基金详细信息</span></div>
<div class="form-value">
<div class="form-input-wr">
<textarea name="content" id="desc" placeholder="填写至少15个字" class = "required" tips = "请填写详情描述">${goods.content}</textarea>
</div>
</div>
</div>
<div class="form-item l goods-price">
<div class="form-key">
<span>起购价</span>
</div>
<div class="form-value">
<div class="form-input-wr">
<input class="price required" id="price" name="price" value="${goods.price}" type="number" tips = "请填写基金起购价">
</div>
</div>
</div>
<!--选择分类信息 -->
<div class="form-item l goods-cat">
<div class="form-key">
<span>分类</span>
</div>
<div class="form-value">
<div class="form-input-wr">
<select id="cid">
<option>---请选择大类----</option>
<#if goodsCategorys??>
<#list goodsCategorys as goodsCategory>
<#if goodsCategory.parent??><>
<#else>
<option value="${goodsCategory.id}" <#if goods.goodsCategory.parent.id == goodsCategory.id> selected </#if> >${goodsCategory.name}</option>
</#if>
</#list>
</#if>
</select>
<select id="cid2" name="goodsCategory.id">
<option value="-1">----请选择小类----</option>
<#if goodsCategorys??>
<#list goodsCategorys as goodsCategory>
<#if goodsCategory.parent??>
<#if goodsCategory.parent.id == goods.goodsCategory.parent.id>
<option value="${goodsCategory.id} " pid="${goodsCategory.parent.id}" <#if goods.goodsCategory.id == goodsCategory.id> selected </#if>>${goodsCategory.name}</option>
<#else>
<option style="display:none;" value="${goodsCategory.id} " pid="${goodsCategory.parent.id}">${goodsCategory.name}</option>
</#if>
</#if>
</#list>
</#if>
</select>
</div>
</div>
</div>
</div>
<input class="form-submit" id="submit-btn" type="button" value="发布" />
</div>
</form>
</div>
</div>
</html>
前端效果展示
再次修改Controller层文件
代码
/**
* 基金信息编辑表单提交
* @param goods
* @return
*/
@RequestMapping(value="/edit_goods",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> editGoods(Goods goods){
CodeMsg validate = ValidateEntityUtil.validate(goods);
if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){
return Result.error(validate);
}
if(goods.getGoodsCategory() ==null ||goods.getGoodsCategory().getId() == null ||goods.getGoodsCategory().getId().longValue() == -1){
return Result.error(CodeMsg.HOME_STU_PUBLISH_CATEGORY_EMPTY);
}
Stu loginedStu = (Stu)SessionUtil.get(SessionConstant.SESSION_STUDENT_LOGIN_KEY);
Goods existGoods = goodsService.find(goods.getId(), loginedStu.getId());
if(existGoods == null){
return Result.error(CodeMsg.HOME_STU_GOODS_NO_EXIST);
}
existGoods.setPrice(goods.getPrice());
existGoods.setContent(goods.getContent());
existGoods.setGoodsCategory(goods.getGoodsCategory());
existGoods.setDay_up(goods.getDay_up());
existGoods.setDay_upnum(goods.getDay_upnum());
existGoods.setName(goods.getName());
existGoods.setPhoto(goods.getPhoto());
existGoods.setCode(goods.getCode());
if(goodsService.save(existGoods) == null){
return Result.error(CodeMsg.HOME_STU_GOODS_EDIT_ERROR);
}
return Result.success(true);
}