Przeglądaj źródła

呵呵商城改版part5

Aslee 3 lat temu
rodzic
commit
a526fc06f4

+ 18 - 0
src/main/java/com/caimei/modules/hehe/dao/HeheDiscountActivityProductDao.java

@@ -0,0 +1,18 @@
+package com.caimei.modules.hehe.dao;
+
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
+
+import java.util.List;
+
+/**
+ * 限时特价商品DAO接口
+ * @author Aslee
+ * @version 2022-03-25
+ */
+@MyBatisDao
+public interface HeheDiscountActivityProductDao extends CrudDao<HeheDiscountActivityProduct> {
+
+    List<Integer> findDiscountProductIds();
+}

+ 98 - 0
src/main/java/com/caimei/modules/hehe/entity/HeheDiscountActivityProduct.java

@@ -0,0 +1,98 @@
+package com.caimei.modules.hehe.entity;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+
+/**
+ * 限时特价商品Entity
+ * @author Aslee
+ * @version 2022-03-25
+ */
+public class HeheDiscountActivityProduct extends DataEntity<HeheDiscountActivityProduct> {
+	
+	private static final long serialVersionUID = 1L;
+	private Integer activityId;		// 限时特价活动id
+	private Integer productId;		// 对应采美商品id
+	private String discountPrice;		// 限时特价
+	private Integer status;		// 上架状态:0已下架,1已上架
+	private Date addTime;		// 添加时间
+
+	private String name;         //商品名称
+	private String mainImage;       //商品图片
+	private String shopName;        //供应商名称
+	
+	public HeheDiscountActivityProduct() {
+		super();
+	}
+
+	public HeheDiscountActivityProduct(String id){
+		super(id);
+	}
+
+	public String getDiscountPrice() {
+		return discountPrice;
+	}
+
+	public void setDiscountPrice(String discountPrice) {
+		this.discountPrice = discountPrice;
+	}
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	public Date getAddTime() {
+		return addTime;
+	}
+
+	public void setAddTime(Date addTime) {
+		this.addTime = addTime;
+	}
+
+	public Integer getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Integer productId) {
+		this.productId = productId;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getMainImage() {
+		return mainImage;
+	}
+
+	public void setMainImage(String mainImage) {
+		this.mainImage = mainImage;
+	}
+
+	public String getShopName() {
+		return shopName;
+	}
+
+	public void setShopName(String shopName) {
+		this.shopName = shopName;
+	}
+
+	public Integer getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Integer activityId) {
+		this.activityId = activityId;
+	}
+}

+ 73 - 0
src/main/java/com/caimei/modules/hehe/service/HeheDiscountActivityProductService.java

@@ -0,0 +1,73 @@
+package com.caimei.modules.hehe.service;
+
+import java.util.List;
+
+import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
+import com.caimei.modules.hehe.entity.CmHeheProduct;
+import com.caimei.modules.hehe.entity.HeheHomeTypeProduct;
+import com.caimei.utils.AppUtils;
+import com.caimei.utils.StringUtil;
+import com.thinkgem.jeesite.common.config.Global;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.service.CrudService;
+import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
+import com.caimei.modules.hehe.dao.HeheDiscountActivityProductDao;
+
+/**
+ * 限时特价商品Service
+ * @author Aslee
+ * @version 2022-03-25
+ */
+@Service
+@Transactional(readOnly = true)
+public class HeheDiscountActivityProductService extends CrudService<HeheDiscountActivityProductDao, HeheDiscountActivityProduct> {
+	@Autowired
+	private HeheDiscountActivityProductDao heheDiscountActivityProductDao;
+	@Autowired
+	private CmHeheActivityProductDao activityProductDao;
+
+	public HeheDiscountActivityProduct get(String id) {
+		return super.get(id);
+	}
+	
+	public List<HeheDiscountActivityProduct> findList(HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		return super.findList(heheDiscountActivityProduct);
+	}
+	
+	public Page<HeheDiscountActivityProduct> findPage(Page<HeheDiscountActivityProduct> page, HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		return super.findPage(page, heheDiscountActivityProduct);
+	}
+	
+	@Transactional(readOnly = false)
+	public void save(HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		super.save(heheDiscountActivityProduct);
+	}
+	
+	@Transactional(readOnly = false)
+	public void delete(HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		super.delete(heheDiscountActivityProduct);
+	}
+
+	@Transactional(readOnly = false)
+	public void update(HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		heheDiscountActivityProductDao.update(heheDiscountActivityProduct);
+	}
+
+    public Page<CmHeheProduct> findProductPage(Page<CmHeheProduct> productPage, CmHeheProduct product) {
+        List<Integer> productIds = heheDiscountActivityProductDao.findDiscountProductIds();
+        product.setIds(productIds);
+        product.setPage(productPage);
+        List<CmHeheProduct> productList = activityProductDao.findAllHeHeProduct(product);
+        productList.forEach(item -> {
+            if (StringUtil.isNotBlank(item.getMainImage())) {
+                item.setMainImage(AppUtils.getImageURL("product", item.getMainImage(), 0, "https://www.caimei365.com"));
+            }
+        });
+        productPage.setList(productList);
+        return productPage;
+    }
+}

+ 109 - 0
src/main/java/com/caimei/modules/hehe/web/HeheDiscountActivityProductController.java

@@ -0,0 +1,109 @@
+package com.caimei.modules.hehe.web;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.caimei.modules.hehe.entity.CmHeheProduct;
+import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
+import com.google.common.collect.Maps;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+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.mvc.support.RedirectAttributes;
+
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.web.BaseController;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
+import com.caimei.modules.hehe.service.HeheDiscountActivityProductService;
+
+import java.util.Map;
+
+/**
+ * 限时特价商品Controller
+ * @author Aslee
+ * @version 2022-03-25
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/hehe/heheDiscountActivityProduct")
+public class HeheDiscountActivityProductController extends BaseController {
+
+	@Autowired
+	private HeheDiscountActivityProductService heheDiscountActivityProductService;
+	
+	@ModelAttribute
+	public HeheDiscountActivityProduct get(@RequestParam(required=false) String id) {
+		HeheDiscountActivityProduct entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = heheDiscountActivityProductService.get(id);
+		}
+		if (entity == null){
+			entity = new HeheDiscountActivityProduct();
+		}
+		return entity;
+	}
+	
+	@RequestMapping(value = {"list", ""})
+	public String list(HeheDiscountActivityProduct heheDiscountActivityProduct, HttpServletRequest request, HttpServletResponse response, Model model) {
+		Page<HeheDiscountActivityProduct> page = heheDiscountActivityProductService.findPage(new Page<HeheDiscountActivityProduct>(request, response), heheDiscountActivityProduct); 
+		model.addAttribute("page", page);
+		return "modules/hehe/heheDiscountActivityProductList";
+	}
+
+	@RequestMapping(value = "form")
+	public String form(HeheDiscountActivityProduct heheDiscountActivityProduct, Model model) {
+		model.addAttribute("heheDiscountActivityProduct", heheDiscountActivityProduct);
+		return "modules/hehe/heheDiscountActivityProductForm";
+	}
+
+	@RequestMapping(value = "save")
+	public String save(HeheDiscountActivityProduct heheDiscountActivityProduct, Model model, RedirectAttributes redirectAttributes) {
+		if (!beanValidator(model, heheDiscountActivityProduct)){
+			return form(heheDiscountActivityProduct, model);
+		}
+		heheDiscountActivityProductService.save(heheDiscountActivityProduct);
+		addMessage(redirectAttributes, "保存商品成功");
+		return "redirect:" + Global.getAdminPath() + "/hehe/heheDiscountActivityProduct/?repage&activityId=" + heheDiscountActivityProduct.getActivityId();
+	}
+	
+	@RequestMapping(value = "delete")
+	public String delete(HeheDiscountActivityProduct heheDiscountActivityProduct, RedirectAttributes redirectAttributes) {
+		heheDiscountActivityProductService.delete(heheDiscountActivityProduct);
+		addMessage(redirectAttributes, "删除商品成功");
+		return "redirect:"+Global.getAdminPath()+"/hehe/heheDiscountActivityProduct/?repage&activityId=" + heheDiscountActivityProduct.getActivityId();
+	}
+
+	@ResponseBody
+	@RequestMapping(value="updateStatus")
+	public Map<String, Object> updateStatus(Integer status, String id, HttpServletRequest request, HttpServletResponse response){
+		Map<String, Object> map = Maps.newLinkedHashMap();
+		try {
+			HeheDiscountActivityProduct heheDiscountActivityProduct = heheDiscountActivityProductService.get(id);
+			heheDiscountActivityProduct.setStatus(status);
+			heheDiscountActivityProductService.update(heheDiscountActivityProduct);
+			map.put("success",true);
+			map.put("msg", "修改成功");
+		} catch (Exception e) {
+			logger.debug(e.toString(),e);
+			map.put("success",false);
+			map.put("msg", "修改失败");
+		}
+		return map;
+	}
+
+	/**
+	 * 添加商品,商品数据
+	 */
+	@RequestMapping(value = "findProductPage")
+	public String findProductPage(CmHeheProduct product, Model model, HttpServletRequest request, HttpServletResponse response) {
+		Page<CmHeheProduct> page = heheDiscountActivityProductService.findProductPage(new Page<CmHeheProduct>(request, response), product);
+		model.addAttribute("page", page);
+		return "modules/hehe/addDiscountProduct";
+	}
+}

+ 1 - 0
src/main/resources/mappings/modules/hehe/CmHeheProductMapper.xml

@@ -223,6 +223,7 @@
 		FROM cm_hehe_product chp left join product a on chp.productId = a.productID
 				 LEFT JOIN shop s on s.shopID = a.shopID
 		<where>
+		    chp.validFlag = 1
 			<if test="productID != null" >
 				AND a.productID = #{productID}
 			</if>

+ 112 - 0
src/main/resources/mappings/modules/hehe/HeheDiscountActivityProductMapper.xml

@@ -0,0 +1,112 @@
+<?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.caimei.modules.hehe.dao.HeheDiscountActivityProductDao">
+    
+	<sql id="heheDiscountActivityProductColumns">
+		a.id AS "id",
+		a.activityId,
+		a.productId AS "productId",
+		a.discountPrice AS "discountPrice",
+		a.status AS "status",
+		a.addTime AS "addTime",
+		p.mainImage AS "mainImage",
+		p.name AS "name",
+		s.name AS "shopName"
+	</sql>
+	
+	<sql id="heheDiscountActivityProductJoins">
+		LEFT JOIN product p ON a.productId = p.productID
+		LEFT JOIN shop s ON s.shopID = p.shopID
+	</sql>
+    
+	<select id="get" resultType="HeheDiscountActivityProduct">
+		SELECT 
+			<include refid="heheDiscountActivityProductColumns"/>
+		FROM hehe_discount_activity_product a
+		<include refid="heheDiscountActivityProductJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="HeheDiscountActivityProduct">
+		SELECT 
+			<include refid="heheDiscountActivityProductColumns"/>
+		FROM hehe_discount_activity_product a
+		<include refid="heheDiscountActivityProductJoins"/>
+		<where>
+
+			<if test="activityId != null">
+				and a.activityId = #{activityId}
+			</if>
+			<if test="productId != null">
+				AND a.productId = #{productId}
+			</if>
+			<if test="status != null">
+				AND a.status = #{status}
+			</if>
+			<if test="name != null and name != ''">
+				AND p.name LIKE CONCAT('%',#{name},'%')
+			</if>
+			<if test="shopName != null and shopName != ''">
+				AND s.name LIKE CONCAT('%',#{shopName},'%')
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.addTime DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="HeheDiscountActivityProduct">
+		SELECT 
+			<include refid="heheDiscountActivityProductColumns"/>
+		FROM hehe_discount_activity_product a
+		<include refid="heheDiscountActivityProductJoins"/>
+		<where>
+			
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findDiscountProductIds" resultType="java.lang.Integer">
+		select productId from hehe_discount_activity_product;
+	</select>
+
+	<insert id="insert" parameterType="HeheDiscountActivityProduct"  keyProperty="id" useGeneratedKeys="true">
+		INSERT INTO hehe_discount_activity_product(
+		    activityId,
+			productId,
+			discountPrice,
+			status,
+			addTime
+		) VALUES (
+		    #{activityId},
+			#{productId},
+			#{discountPrice},
+			#{status},
+			NOW()
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE hehe_discount_activity_product SET 	
+			productId = #{productId},
+			discountPrice = #{discountPrice},
+			status = #{status}
+		WHERE id = #{id}
+	</update>
+	
+	<delete id="delete">
+		DELETE FROM hehe_discount_activity_product
+		WHERE id = #{id}
+	</delete>
+	
+</mapper>

+ 122 - 0
src/main/webapp/WEB-INF/views/modules/hehe/addDiscountProduct.jsp

@@ -0,0 +1,122 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>选择商品</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table td i {
+            margin: 0 2px;
+        }
+    </style>
+
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $("#searchForm").validate({
+                submitHandler: function (form) {
+                    var isSubMitFlag = true;
+                    var productId = $("#productId").val();
+                    if (isNaN(productId) || productId.indexOf('0') == 0 ) {
+                        alertx("请输入正确的商品ID");
+                        isSubMitFlag = false;
+                        return false;
+                    }
+                    if (isSubMitFlag) {
+                        form.submit();
+                    }
+                }
+            })
+        });
+    </script>
+</head>
+<body>
+<form:form id="searchForm" modelAttribute="cmHeheProduct" action="${ctx}/hehe/heheDiscountActivityProduct/findProductPage" method="post"
+           class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <div class="ul-form">
+        <label>商品ID:</label>
+        <form:input path="productId" id="productId" htmlEscape="false" maxlength="8" class="input-mini" onkeyup="onlynum(this)"/>
+        <label>商品名称:</label>
+        <form:input path="name" htmlEscape="false" class="input-medium" maxlength="20"/>
+        <label>供应商名称:</label>
+        <form:input path="shopName" htmlEscape="false" class="input-medium" maxlength="20"/>
+        &nbsp;&nbsp;  <input id="btnSubmit" class="btn btn-primary" type="submit" value="搜索"/>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<table class="table table-striped table-bordered table-condensed table-hover">
+    <tr>
+        <th style="width:20px;"></th>
+        <th>商品ID</th>
+        <th>商品图片</th>
+        <th>商品名称</th>
+        <th>供应商名称</th>
+    </tr>
+    <tbody>
+    <c:if test="${not empty page.list}">
+        <c:forEach items="${page.list}" var="item">
+            <tr id="${item.productId}" class="itemtr">
+                <th>
+                    <input class="check-item" type="radio" name="info" value='${item.productId}'/>
+                </th>
+                <td>${item.productId}</td>
+                <td><img class="mainImage" src="${item.mainImage}" width="50px" height="50px"></td>
+                <td class="name">${item.name}</td>
+                <td id="shopName">${item.shopName}</td>
+                <input type="hidden" value="${item.price}" id="price">
+            </tr>
+        </c:forEach>
+    </c:if>
+    </tbody>
+</table>
+<c:if test="${empty  page.list}">
+    <p style="text-align: center;"><font color="#1e90ff">暂无数据……</font></p>
+</c:if>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+    $(document).ready(function () {
+        //弹出框去滚动条
+        top.$('#jbox-content').css("overflow-y", "hidden");
+        show_title(30);
+    });
+
+    function page(n, s) {
+        $("#pageNo").val(n);
+        $("#pageSize").val(s);
+        $("#searchForm").submit();
+        return false;
+    }
+
+    function getCheckedItems() {
+        var items = new Array();
+        var $items = $('.check-item:checked');
+        $items.each(function () {
+            items.push({
+                productId: $(this).val(),
+                mainImage: $(this).parents(".itemtr").find(".mainImage").attr("src"),
+                name: $(this).parents(".itemtr").find(".name").text(),
+                shopName: $(this).parents(".itemtr").find("#shopName").text(),
+                price: $(this).parents(".itemtr").find("#price").val()
+            })
+        });
+        return items;
+    }
+
+    function clickAllSelect(ckb) {
+        var isChecked = ckb.checked;
+        $(".check-item").attr('checked', isChecked);
+    }
+
+    /**
+     * @param obj
+     * jquery控制input只能输入数字
+     */
+    function onlynum(obj) {
+        obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+    }
+</script>
+</body>
+</html>
+

+ 2 - 1
src/main/webapp/WEB-INF/views/modules/hehe/cmHeheDiscountActivityList.jsp

@@ -82,7 +82,8 @@
 					<a href="javascript:;" onclick="updateStatus(${cmHeheDiscountActivity.id},${cmHeheDiscountActivity.status})">
 							${cmHeheDiscountActivity.status eq 2?'下架':'上架'}
 					</a>
-    				<a href="${ctx}/hehe/cmHeheDiscountActivity/form?id=${cmHeheDiscountActivity.id}">编辑</a>
+					<a href="${ctx}/hehe/heheDiscountActivityProduct/?activityId=${cmHeheDiscountActivity.id}">商品列表</a>
+					<a href="${ctx}/hehe/cmHeheDiscountActivity/form?id=${cmHeheDiscountActivity.id}">编辑</a>
 					<a href="${ctx}/hehe/cmHeheDiscountActivity/delete?id=${cmHeheDiscountActivity.id}" onclick="return confirmx('确认要删除该活动吗?', this.href)">删除</a>
 				</td>
 			</tr>

+ 157 - 0
src/main/webapp/WEB-INF/views/modules/hehe/heheDiscountActivityProductForm.jsp

@@ -0,0 +1,157 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<html>
+<head>
+	<title>商品管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			//$("#name").focus();
+			$("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+	</script>
+</head>
+<body>
+	<ul class="nav nav-tabs">
+		<li><a href="${ctx}/hehe/heheDiscountActivityProduct/?activityId=${heheDiscountActivityProduct.activityId}">商品列表</a></li>
+		<li class="active"><a href="${ctx}/hehe/heheDiscountActivityProduct/form?id=${heheDiscountActivityProduct.id}&activityId=${heheDiscountActivityProduct.activityId}">商品${not empty heheDiscountActivityProduct.id?'编辑':'添加'}</a></li>
+	</ul><br/>
+	<form:form id="inputForm" modelAttribute="heheDiscountActivityProduct" action="${ctx}/hehe/heheDiscountActivityProduct/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<form:hidden path="activityId"/>
+		<form:hidden path="productId"/>
+		<sys:message content="${message}"/>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>商品:</label>
+			<div class="controls" id="addProduct">
+				<a href="JavaScript:;" onclick="showSelect()">请选择加入呵呵商城的商品</a>
+			</div>
+			<table id="contentTable" class="table table-striped table-bordered table-condensed" hidden="hidden">
+				<thead>
+				<tr>
+					<th>图片</th>
+					<th>商品名称</th>
+					<th>供应商</th>
+					<th>操作</th>
+				</tr>
+				</thead>
+				<tbody>
+				<tr>
+					<td><img id="mainImage" src="${heheDiscountActivityProduct.mainImage}" width="50px" height="50px"></td>
+					<td style="text-align: center" id="name">${heheDiscountActivityProduct.name}</td>
+					<td id="shopName">${heheDiscountActivityProduct.shopName}</td>
+					<td><a href="javascript:void(0);" onclick="deleteProduct()">删除</a></td>
+				</tr>
+				</tbody>
+			</table>
+		</div>
+		<div id="productInfo" hidden="hidden">
+			<div class="control-group">
+				<label class="control-label"><font color="red">*</font>限时特价:</label>
+				<div class="controls">
+					<input type="number" style="width:100px;" min="0" id="discountPrice" name="discountPrice" value="${heheDiscountActivityProduct.discountPrice}" required onblur="checkPrice(this)">
+				</div>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>商品状态:</label>
+			<div class="controls">
+				<form:select path="status" class="input-small required">
+					<form:option value="1" label="已上架"/>
+					<form:option value="0" label="已下架"/>
+				</form:select>
+			</div>
+		</div>
+		<div class="form-actions">
+			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
+			<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+		</div>
+	</form:form>
+<script>
+	$(function () {
+		//初始化商品信息
+		if (${not empty heheDiscountActivityProduct.id}){
+			$('#contentTable').show();
+			$('#productInfo').show();
+			$('#addProduct').hide();
+		}
+	});
+
+	//选择添加商品
+	function showSelect() {
+		var url = '';
+		var title = '';
+		url = "${ctx}/hehe/heheDiscountActivityProduct/findProductPage";
+		title = "选择商品";
+		top.$.jBox("iframe:" + url, {
+			iframeScrolling: 'yes',
+			width: $(top.document).width() - 600,
+			height: $(top.document).height() - 160,
+			persistent: true,
+			title: title,
+			buttons: {"确定": '1', "关闭": '-1'},
+			submit: function (v, h, f) {
+				//确定
+				var $jboxFrame = top.$('#jbox-iframe');
+				var $mainFrame = top.$('#mainFrame');
+				if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
+					var items = $jboxFrame[0].contentWindow.getCheckedItems(0);
+					if (items.length > 0) {
+						console.log(items);
+						$('#contentTable').show();
+						$('#productInfo').show();
+						$('#addProduct').hide();
+						var productId = items[0].productId;
+						var mainImage = items[0].mainImage;
+						var name = items[0].name;
+						var shopName = items[0].shopName;
+						var price = items[0].price;
+						$("#mainImage").attr("src", mainImage);
+						$("#shopName").text(shopName);
+						$("#productId").val(productId);
+						$("#name").text(name);
+						$("#discountPrice").val(price);
+					} else {
+						top.$.jBox.tip("请先勾选商品...");
+						return false;
+					}
+				}
+				return true;
+			}
+		});
+	}
+
+	//删除商品
+	function deleteProduct() {
+		$('#contentTable').hide();
+		$('#productInfo').hide();
+		$('#addProduct').show();
+		$('#productId').val('');
+	}
+
+	/**
+	 * @param obj
+	 * jquery检验售价
+	 */
+	function checkPrice(obj) {
+		if (obj.value == '0') {
+			obj.value = '';
+		}
+	}
+</script>
+</body>
+</html>

+ 132 - 0
src/main/webapp/WEB-INF/views/modules/hehe/heheDiscountActivityProductList.jsp

@@ -0,0 +1,132 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<html>
+<head>
+	<title>商品管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th{text-align: center;}
+		.table td{text-align: center;}
+	</style>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			
+		});
+		function page(n,s){
+			$("#pageNo").val(n);
+			$("#pageSize").val(s);
+			$("#searchForm").submit();
+        	return false;
+        }
+
+		function updateStatus(status, ids) {
+			var msg = '确定上架该商品吗?';
+			if ('0' == status) {
+				msg = '确定下架该商品吗?';
+			}
+			top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
+				if (v == 'ok') {
+					$.post("${ctx}/hehe/heheDiscountActivityProduct/updateStatus", {
+						'status': status,
+						'id': ids
+					}, function (data) {
+						if (true == data.success) {
+							$.jBox.tip(data.msg, 'info');
+						} else {
+							$.jBox.tip(data.msg, 'error');
+						}
+						$("#searchForm").submit();
+					}, "JSON");//这里返回的类型有:json,html,xml,text
+				}
+				return;
+			}, {buttonsFocus: 1, persistent: true});
+		}
+	</script>
+</head>
+<body>
+	<ul class="nav nav-tabs">
+		<li><a href="${ctx}/hehe/cmHeheDiscountActivity">活动列表</a></li>
+		<li class="active"><a href="${ctx}/hehe/heheDiscountActivityProduct/?activityId=${heheDiscountActivityProduct.activityId}">商品列表</a></li>
+	</ul>
+	<form:form id="searchForm" modelAttribute="heheDiscountActivityProduct" action="${ctx}/hehe/heheDiscountActivityProduct/" method="post" class="breadcrumb form-search">
+		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+		<form:hidden path="activityId"/>
+		<div class="ul-form">
+			 <label>商品ID:</label>
+				<form:input path="productId" htmlEscape="false" class="input-medium"/>
+			 <label>商品名称:</label>
+			 <form:input path="name" htmlEscape="false" class="input-medium"/>
+			 <label>供应商名称:</label>
+			 <form:input path="shopName" htmlEscape="false" class="input-medium"/>
+			 <label>状态:</label>
+				<form:select path="status" class="input-medium">
+					<form:option value="" label="请选择"/>
+					<form:option value="1" label="已上架"/>
+					<form:option value="0" label="已下架"/>
+				</form:select>
+			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+			<a class="btn btn-primary" href="${ctx}/hehe/heheDiscountActivityProduct/form?activityId=${heheDiscountActivityProduct.activityId}">添加</a>
+			<div class="clearfix"></div>
+		</div>
+	</form:form>
+	<sys:message content="${message}"/>
+	<table id="contentTable" class="table table-striped table-bordered table-condensed">
+		<thead>
+			<tr>
+				<th>商品ID</th>
+				<th>商品图片</th>
+				<th>商品名称</th>
+				<th>供应商名称</th>
+				<th>限时特价</th>
+				<th>状态</th>
+				<th>添加时间</th>
+				<th>操作</th>
+			</tr>
+		</thead>
+		<tbody>
+		<c:forEach items="${page.list}" var="heheDiscountActivityProduct">
+			<tr>
+				<td>
+					${heheDiscountActivityProduct.productId}
+				</td>
+				<td>
+					<img class="mainImage" src="${heheDiscountActivityProduct.mainImage}" width="50px" height="50px">
+				</td>
+				<td>
+					${heheDiscountActivityProduct.name}
+				</td>
+				<td>
+					${heheDiscountActivityProduct.shopName}
+				</td>
+				<td>
+					${heheDiscountActivityProduct.discountPrice}
+				</td>
+				<td>
+					<c:if test="${heheDiscountActivityProduct.status eq 1 }">
+						<font color="green" style="margin-right: 10px">已上架</font>
+					</c:if>
+					<c:if test="${heheDiscountActivityProduct.status ne 1 }">
+						<font color="red" style="margin-right: 10px">已下架</font>
+					</c:if>
+				</td>
+				<td>
+					<fmt:formatDate value="${heheDiscountActivityProduct.addTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+				</td>
+				<td>
+					<a href="${ctx}/hehe/heheDiscountActivityProduct/form?id=${heheDiscountActivityProduct.id}">编辑</a>
+					<c:if test="${heheDiscountActivityProduct.status eq 1 }">
+						<a href="javascript:;" onclick="updateStatus('0','${heheDiscountActivityProduct.id}')">下架</a>
+					</c:if>
+					<c:if test="${heheDiscountActivityProduct.status ne 1 }">
+						<a href="javascript:;" onclick="updateStatus('1','${heheDiscountActivityProduct.id}')">上架</a>
+					</c:if>
+					<a href="${ctx}/hehe/heheDiscountActivityProduct/delete?id=${heheDiscountActivityProduct.id}&activityId=${heheDiscountActivityProduct.activityId}" onclick="return confirmx('确认要删除该商品吗?', this.href)">删除</a>
+				</td>
+			</tr>
+		</c:forEach>
+		</tbody>
+	</table>
+	<div class="pagination">${page}</div>
+</body>
+</html>