yuhaitao14 7 years ago
parent
commit
5c68285687

+ 17 - 1
shop/src/main/java/com/zskk/shop/controller/admin/GoodsManagerController.java

@@ -30,6 +30,7 @@ import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.exception.ErrorConstant;
 import com.zskk.shop.exception.ZSKKException;
 import com.zskk.shop.service.GoodService;
+import com.zskk.shop.service.RecommendGoodService;
 import com.zskk.shop.service.SysLabelService;
 import com.zskk.shop.service.TJCenterService;
 
@@ -46,6 +47,9 @@ public class GoodsManagerController extends AbstractController{
 	@Autowired
 	private TJCenterService tjCenterService;
 	
+	@Autowired
+	private RecommendGoodService recommendGoodService;
+	
 	@RequestMapping("/goods")
 	@ResponseBody
 	public ControllerResult goods(@RequestParam(name="search", required=false) String search, @RequestParam(name="status", required=false) Integer status, 
@@ -68,7 +72,8 @@ public class GoodsManagerController extends AbstractController{
 		List<GoodBean> beans = new ArrayList<>(list.size());
 		for (GoodBase goods: list){
 			GoodPrice price = goodService.queryGoodPrice(goods.getGid());
-			GoodBean bean = goodService.toSimpleGoodBean(goods, price);
+			GoodBean bean 	= goodService.toSimpleGoodBean(goods, price);
+			bean.setIsRecommend(recommendGoodService.isRecommend(goods.getGid()));
 			beans.add(bean);
 		}
 		
@@ -174,4 +179,15 @@ public class GoodsManagerController extends AbstractController{
 		goodService.bindPackage(base, packageid, packagename);
 		return new ControllerResult(Boolean.TRUE);
 	}
+	
+	@RequestMapping("setRecommand")
+	@ResponseBody
+	public ControllerResult setRecommand(@RequestParam("gid") Integer gid, @RequestParam("isrecommand") Boolean isrecommand){
+		if (isrecommand){
+			recommendGoodService.add(gid);
+		}else{
+			recommendGoodService.del(gid);
+		}
+		return new ControllerResult(Boolean.TRUE);
+	}
 }

+ 7 - 0
shop/src/main/java/com/zskk/shop/controller/bean/GoodBean.java

@@ -23,6 +23,7 @@ public class GoodBean {
 	private List<GoodAdBean> ads;
 	private GoodPriceBean price;
 	private List<GoodDescribeBean> describes;
+	private Boolean isRecommend;
 	public Integer getGid() {
 		return gid;
 	}
@@ -89,4 +90,10 @@ public class GoodBean {
 	public void setStatus(Integer status) {
 		this.status = status;
 	}
+	public Boolean getIsRecommend() {
+		return isRecommend;
+	}
+	public void setIsRecommend(Boolean isRecommend) {
+		this.isRecommend = isRecommend;
+	}
 }

+ 0 - 2
shop/src/main/java/com/zskk/shop/controller/web/BuyOrderController.java

@@ -33,7 +33,6 @@ import com.zskk.shop.dao.entry.BuyOrderItem;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.exception.ErrorConstant;
-import com.zskk.shop.exception.ZSKKError;
 import com.zskk.shop.exception.ZSKKException;
 import com.zskk.shop.service.BuyOrderService;
 import com.zskk.shop.service.FamilyPeopleService;
@@ -121,7 +120,6 @@ public class BuyOrderController extends AbstractController {
 		}else{
 			return this.showPayOrdeDtail(model, buyOrder);
 		}
-		
 	}
 	
 	private String showPayOrdeDtail(Model model, BuyOrder buyOrder){

+ 8 - 1
shop/src/main/java/com/zskk/shop/controller/web/GoodController.java

@@ -25,6 +25,7 @@ import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.dao.entry.SysLabel;
 import com.zskk.shop.service.TJCenterService;
 import com.zskk.shop.service.GoodService;
+import com.zskk.shop.service.RecommendGoodService;
 import com.zskk.shop.service.SysLabelService;
 
 @Controller
@@ -39,6 +40,9 @@ public class GoodController extends AbstractController {
 	
 	@Autowired
 	private TJCenterService tjCenterService;
+	
+	@Autowired
+	private RecommendGoodService recommendGoodService;
 
 	@RequestMapping("/detail/{gid}")
 	public String detail(Model model, @PathVariable("gid") Integer gid){
@@ -47,12 +51,15 @@ public class GoodController extends AbstractController {
 		List<GoodAd> ads 				= goodService.queryGoodAds(gid);
 		List<GoodDescribe> describes 	= goodService.queryGoodDescribes(gid);
 		List<SysLabel> labels			= sysLabelService.queryLabels();
-		List<String> tjCheckList		= tjCenterService.getDJDetail("49");
+		List<String> tjCheckList		= tjCenterService.getDJDetail(base.getPackageid());
+		List<GoodBean> recommands 		= recommendGoodService.getRecommendGoods();
+
 		
 		GoodBean bean = goodService.toDetailGoodBean(base, price, ads, describes);
 		model.addAttribute("good", bean);
 		model.addAttribute("labels", labels);
 		model.addAttribute("checklist", tjCheckList);
+		model.addAttribute("recommands", recommands);
 		this.initUser(model);
 		return "/detail";
 	}

+ 23 - 0
shop/src/main/java/com/zskk/shop/dao/RecommendGoodMapper.java

@@ -0,0 +1,23 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月9日
+*/
+
+package com.zskk.shop.dao;
+
+import java.util.List;
+
+import com.zskk.shop.dao.entry.RecommendGood;
+
+public interface RecommendGoodMapper {
+	public void add(RecommendGood rg);
+	
+	public int del(Integer gid);
+	
+	public List<Integer> query();
+	
+	public RecommendGood queryByGid(Integer gid);
+}

+ 40 - 0
shop/src/main/java/com/zskk/shop/dao/entry/RecommendGood.java

@@ -0,0 +1,40 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月9日
+*/
+
+package com.zskk.shop.dao.entry;
+
+public class RecommendGood {
+	private Integer id;
+	private Integer floor;
+	private Integer gid;
+	private Integer ctime;
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Integer getFloor() {
+		return floor;
+	}
+	public void setFloor(Integer floor) {
+		this.floor = floor;
+	}
+	public Integer getGid() {
+		return gid;
+	}
+	public void setGid(Integer gid) {
+		this.gid = gid;
+	}
+	public Integer getCtime() {
+		return ctime;
+	}
+	public void setCtime(Integer ctime) {
+		this.ctime = ctime;
+	}
+}

+ 77 - 0
shop/src/main/java/com/zskk/shop/service/RecommendGoodService.java

@@ -0,0 +1,77 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月9日
+*/
+
+package com.zskk.shop.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.zskk.shop.controller.bean.GoodBean;
+import com.zskk.shop.dao.RecommendGoodMapper;
+import com.zskk.shop.dao.entry.GoodBase;
+import com.zskk.shop.dao.entry.GoodPrice;
+import com.zskk.shop.dao.entry.RecommendGood;
+import com.zskk.shop.utils.ToolsUtil;
+
+@Service
+public class RecommendGoodService {
+
+	@Autowired
+	public RecommendGoodMapper recommendGoodMapper;
+	
+	@Autowired
+	private GoodService goodService;
+	
+	@Transactional
+	public void add(Integer gid){
+		recommendGoodMapper.del(gid);
+		RecommendGood good = new RecommendGood();
+		good.setCtime(ToolsUtil.getNow());
+		good.setFloor(1);
+		good.setGid(gid);
+		recommendGoodMapper.add(good);
+	}
+	
+	public void del(Integer gid){
+		recommendGoodMapper.del(gid);
+	}
+	/**
+	 * 是否是推荐商品
+	 * @param gid
+	 * @return
+	 */
+	public Boolean isRecommend(Integer gid){
+		return recommendGoodMapper.queryByGid(gid) != null;
+	}
+	
+	/**
+	 * 查询推荐商品ID
+	 * @return
+	 */
+	public List<Integer> queryRecommendGids(){
+		return recommendGoodMapper.query();
+	}
+	
+	public List<GoodBean> getRecommendGoods(){
+		List<Integer> gids = this.queryRecommendGids();
+		if (gids.isEmpty()){
+			return new ArrayList<>(0);
+		}
+		List<GoodBase> goodList = goodService.queryGoodBases(gids, null);
+		List<GoodBean> beans = new ArrayList<>();
+		for (GoodBase base: goodList){
+			GoodPrice price = goodService.queryGoodPrice(base.getGid());
+			beans.add(goodService.toSimpleGoodBean(base, price));
+		}
+		return beans;
+	}
+}

+ 22 - 0
shop/src/main/resource/mapper/RecommendGoodMapper.xml

@@ -0,0 +1,22 @@
+<?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.zskk.shop.dao.RecommendGoodMapper">
+	<insert id="add" parameterType="com.zskk.shop.dao.entry.RecommendGood">
+		insert into recommend_good(floor, gid, ctime)
+		values(#{floor}, #{gid}, #{ctime})
+	</insert>
+	<delete id="del">
+		delete from recommend_good where gid=#{gid}
+	</delete>
+	
+	<select id="query" resultType="java.lang.Integer">
+		select gid
+		from recommend_good
+	</select>
+	<select id="queryByGid" resultType="com.zskk.shop.dao.entry.RecommendGood">
+		select *
+		from recommend_good
+		where gid=#{gid}
+		limit 1
+	</select>
+</mapper>

+ 6 - 4
shop/src/main/resource/templates/detail.html

@@ -26,10 +26,12 @@
             <div class="mt20">
             	<dl class="re-look y">
                     <dt><span>看了又看</span></dt>
-                    <dd><a href="####"><img src="http://static-mall.health.ikang.com/image/cache/data/H001067/jingxuantijiantaocane-239x237.jpg" /><span>¥600</span></a></dd>
-                    <dd><a href="####"><img src="http://static-mall.health.ikang.com/image/cache/data/H001067/jingxuantijiantaocane-239x237.jpg" /><span>¥600</span></a></dd>
-                    <dd><a href="####"><img src="http://static-mall.health.ikang.com/image/cache/data/H001067/jingxuantijiantaocane-239x237.jpg" /><span>¥600</span></a></dd>
-                    <dd><a href="####"><img src="http://static-mall.health.ikang.com/image/cache/data/H001067/jingxuantijiantaocane-239x237.jpg" /><span>¥600</span></a></dd>
+                    <dd th:each="recommand : ${recommands}">
+                    	<a th:attr="href='/good/detail/'+${recommand.gid}">
+                    		<img th:attr="src=${recommand.icon}" />
+                    		<span th:text="'¥'+${recommand.price.discountPrice}"></span>
+                    	</a>
+                    </dd>
                 </dl>
             	<div class="w350 l mr30">
                 	<img th:attr="src=${good.icon}" class="w350 h280" />

+ 2 - 2
shop/src/main/resource/templates/fragments.html

@@ -11,8 +11,8 @@
 				<div class="top_z l">昆仑医疗集团</div>
 				<div class="topWx y">官方微信&nbsp;</div>
 				<div class="y">
-					<a href="/mypayedorders" class="mr20 topYy">预约体检</a> <a href="#"
-						class="mr20 topBg">报告查询</a>
+					<a href="/mypayedorders" class="mr20 topYy">预约体检</a> 
+					<a href="/completedorders" class="mr20 topBg">报告查询</a>
 				</div>
 				<div class="y topLogin mr20">
 					<div th:if="${!islogin}">

+ 1 - 1
shop/src/main/resource/templates/mypayedorders.html

@@ -18,7 +18,7 @@
     	<div class="main bgFF">
             <ul class="subnav l mt20">
                 <li class="u2"><a href="/mypayedorders" class="ca">预约体检</a></li>
-                <li class="u3"><a href="####">报告查询</a></li>
+                <li class="u3"><a href="/completedorders">报告查询</a></li>
                 <li class="u4"><a href="####">商城订单</a></li>
                 <li class="u6"><a href="####">常见问题</a></li>
                 <li class="u7"><a href="#">修改密码</a></li>

+ 2 - 2
shop/src/main/resource/templates/query_report.html

@@ -17,8 +17,8 @@
     <div class="wp">
     	<div class="main bgFF">
             <ul class="subnav l mt20">
-                <li class="u2"><a href="/mypayedorders" class="ca">预约体检</a></li>
-                <li class="u3"><a href="####">报告查询</a></li>
+                <li class="u2"><a href="/mypayedorders" >预约体检</a></li>
+                <li class="u3"><a href="/completedorders" class="ca">报告查询</a></li>
                 <li class="u4"><a href="####">商城订单</a></li>
                 <li class="u6"><a href="####">常见问题</a></li>
                 <li class="u7"><a href="#">修改密码</a></li>

+ 2 - 1
shop/static/manager/src/api/index.js

@@ -78,5 +78,6 @@ export default {
     okLabels: (params, vue) => post(`${serverPath}manage/label/okLabels`, params, vue),
     getPackages: (params, vue) => post(`${serverPath}manage/getPackages`, params, vue),
     bindPackage: (params, vue) => post(`${serverPath}manage/bindPackage`, params, vue),
-    setGoodLabels: (params, vue) => post(`${serverPath}manage/setGoodLabels`, params, vue)
+    setGoodLabels: (params, vue) => post(`${serverPath}manage/setGoodLabels`, params, vue),
+    setRecommand: (params, vue) => post(`${serverPath}manage/setRecommand`, params, vue),
 }

+ 30 - 1
shop/static/manager/src/components/page/GoodsManager.vue

@@ -40,7 +40,7 @@
             <el-table-column label="状态">
                 <template slot-scope="scope">
                     <template v-if="scope.row.status === 1">
-                        <p class="online">启用</p>
+                        <p  class="online">启用</p>
                     </template>
                     <template v-else>
                         <p class="offline">禁用</p>
@@ -57,6 +57,16 @@
                     </template>
                 </template>
             </el-table-column>
+            <el-table-column label="推荐商品">
+                <template slot-scope="scope">
+                    <template v-if="scope.row.isRecommend">
+                        <p v-on:click="setRecommand(scope.row)" class="online">是</p>
+                    </template>
+                    <template v-else>
+                        <p v-on:click="setRecommand(scope.row)" class="offline">否</p>
+                    </template>
+                </template>
+            </el-table-column>
             <el-table-column label="操作" width="250px">
                 <template slot-scope="scope">
                     <template v-if="scope.row.status == 0">
@@ -163,6 +173,25 @@ export default {
     },
     goBindPackage: function(row) {
       this.$router.push({ path: '/bindPackage', query: { gid: row.gid } })
+    },
+    setRecommand: function(row) {
+      var msg = row.isRecommend
+        ? '您是否要停止推荐此商品吗?'
+        : '您是否要推荐此商品?'
+      this.$confirm(msg, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(res => {
+        this.$http
+          .setRecommand(
+            { gid: row.gid, isrecommand: row.isRecommend ? false : true },
+            this
+          )
+          .then(res => {
+              row.isRecommend = !row.isRecommend
+          })
+      })
     }
   },
   mounted: function() {