Spring Boot:用户中心的商品信息编辑功能


写在前面:本篇仅用于帮助博主个人梳理思路
源码地址在本人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>
	                        	&nbsp;&nbsp;<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);
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只天蝎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值