Browse Source

web项目详情页面接口编写

anderx 8 years ago
parent
commit
0c14d2d8e4

+ 2 - 3
src/main/java/com/goafanti/achievement/controller/AdminAchievementApiController.java

@@ -77,10 +77,9 @@ public class AdminAchievementApiController extends CertifyApiController {
         if (StringUtils.isNumeric(pageNo)) {
             pNo = Integer.parseInt(pageNo);
         }
-       
-        res.setData(achievementService.listUserOwnerAchievement(ownerType,username, ownerName, ownerId, auditStatus, serialNumber, name,
+       res.setData(achievementService.listUserOwnerAchievement(ownerType,username, ownerName, ownerId, auditStatus, serialNumber, name,
                 keyword, category, status, releaseDateStartDate, releaseDateEndDate,createDateStartDate,createDateEndDate, releaseStatus, pNo, pSize,boutique,hot));
-        return res;
+       return res;
     }
     /**
      * 组织用户成果列表(个人组织合并)

+ 7 - 0
src/main/java/com/goafanti/app/bo/ProjectDetailBo.java

@@ -10,6 +10,7 @@ public class ProjectDetailBo {
 	private String clientSize;
 	private String interest;
 	private String maxLogo;
+	private String countInterest;
 	private List<String> projectSize;
 	public String getId() {
 		return id;
@@ -59,4 +60,10 @@ public class ProjectDetailBo {
 	public void setProjectSize(List<String> projectSize) {
 		this.projectSize = projectSize;
 	}
+	public String getCountInterest() {
+		return countInterest;
+	}
+	public void setCountInterest(String countInterest) {
+		this.countInterest = countInterest;
+	}
 }

+ 2 - 0
src/main/java/com/goafanti/business/service/BusinessVarietiesService.java

@@ -36,5 +36,7 @@ public interface BusinessVarietiesService {
 	int  updateLocation(String id, Integer sort, Integer flag);
 
 	List<VarietiesBo> portalVarieties();
+	
+	int saveInterest(String uid,String objectId,String interest);
 }
 

+ 18 - 0
src/main/java/com/goafanti/business/service/impl/BusinessVarietiesServiceImpl.java

@@ -14,7 +14,10 @@ import com.goafanti.business.bo.BusinessVarietiesBo;
 import com.goafanti.business.bo.VarietiesBo;
 import com.goafanti.business.service.BusinessVarietiesService;
 import com.goafanti.common.dao.BusinessVarietiesMapper;
+import com.goafanti.common.dao.ProjectInterestMapper;
+import com.goafanti.common.enums.InterestType;
 import com.goafanti.common.model.BusinessVarieties;
+import com.goafanti.common.model.ProjectInterest;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -25,6 +28,8 @@ public class BusinessVarietiesServiceImpl extends BaseMybatisDao<BusinessVarieti
 	
 	@Autowired
 	private BusinessVarietiesMapper businessVarietiesMapper;
+	@Autowired
+	private ProjectInterestMapper	projectInterestMapper;
 	
 	public int insert(String cname, String superId) {
 		BusinessVarietiesBo buv=new BusinessVarietiesBo();
@@ -273,6 +278,19 @@ public class BusinessVarietiesServiceImpl extends BaseMybatisDao<BusinessVarieti
 	public List<VarietiesBo> portalVarieties() {
 		return businessVarietiesMapper.getVarieties();
 	}
+	@Override
+	public int saveInterest(String uid, String objectId, String interest) {
+		if (Integer.valueOf(interest)==0) {
+			ProjectInterest p=new ProjectInterest();
+			p.setId(UUID.randomUUID().toString());
+			p.setUid(uid);
+			p.setProjectId(objectId);
+			p.setCreateTime(new Date());
+		return projectInterestMapper.insert(p);
+		}else {
+		return projectInterestMapper.deleteInterest(uid,objectId);	
+		}
+	}
 	
 }
 

+ 15 - 5
src/main/java/com/goafanti/common/controller/PortalController.java

@@ -16,6 +16,8 @@ import org.springframework.web.servlet.view.RedirectView;
 import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.achievement.bo.AchievementPartnerListBo;
 import com.goafanti.achievement.service.AchievementService;
+import com.goafanti.app.bo.ProjectBo;
+import com.goafanti.app.bo.ProjectDetailBo;
 import com.goafanti.app.bo.ServiceImages;
 import com.goafanti.business.service.BusinessProjectService;
 import com.goafanti.common.enums.AchievementBargainingMode;
@@ -25,6 +27,7 @@ import com.goafanti.common.enums.UserLevel;
 import com.goafanti.common.enums.UserType;
 import com.goafanti.common.service.DistrictGlossoryService;
 import com.goafanti.common.service.FieldGlossoryService;
+import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.demand.bo.DemandListBo;
 import com.goafanti.demand.service.DemandInterestService;
@@ -987,14 +990,21 @@ public class PortalController extends BaseController {
 	/**
 	 * 项目详情
 	 */
-	@RequestMapping(value = "/portal/services/projectDetail", method = RequestMethod.GET)
-	public ModelAndView projectDetail(HttpServletRequest request, ModelAndView modelview,String id,Integer pSize ) {
+	@SuppressWarnings("unchecked")
+	@RequestMapping(value = "portal/service/projectDetails", method = RequestMethod.GET)
+	public ModelAndView projectDetail(HttpServletRequest request, ModelAndView modelview,String id) {
 		ModelAndView mv = new ModelAndView();
-		mv.setViewName("");
+		mv.setViewName("portal/service/projectDetails");
 		//获取项目详情
-		mv.addObject("project", businessProjectService.ProjectDetail(id));
+		ProjectDetailBo p=businessProjectService.ProjectDetail(id);
+		p.setIntroduce(p.getIntroduce().replace("\n","<br>"));
+		p.setValueEffect(p.getValueEffect().replace("\n", "<br>"));
+		p.setClientSize(p.getClientSize().replace("\n", "<br>"));
+		mv.addObject("projectDetail",p);
 		//获取3条推荐
-		mv.addObject("recommend",businessProjectService.recommendProjectList(null,3));
+		Pagination<ProjectBo> ps=businessProjectService.recommendProjectList(null,3);
+		List<ProjectBo> list=(List<ProjectBo>) ps.getList();
+		mv.addObject("recommend", list);
 		return mv;
 	}
 	

+ 5 - 3
src/main/java/com/goafanti/common/mapper/BusinessProjectMapper.xml

@@ -762,9 +762,11 @@
   </select>
   
   <select id="selectAppProjectDetail" resultType="com.goafanti.app.bo.ProjectDetailBo">
-  	select p.id,p.bname as name,p.introduce ,p.Value_effect as valueEffect ,p.client_size as clientSize,p.max_logo as maxLogo
-from business_project p 
-where id=#{id,jdbcType=VARCHAR}
+  	select p.id,p.bname as name,p.introduce ,p.Value_effect as valueEffect ,p.client_size as clientSize,
+		   p.max_logo as maxLogo,ifnull(count(p.id),0) as countInterest
+	from business_project p
+	left join project_interest pt on pt.project_id=p.id 
+	where p.id=#{id,jdbcType=VARCHAR}
   </select>
   
   <select id="checkProject" resultType="Integer">

+ 27 - 0
src/main/java/com/goafanti/portal/controller/PortalServicesController.java

@@ -15,6 +15,7 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseController;
 import com.goafanti.common.utils.StringUtils;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.service.OrderService;
 import com.goafanti.user.service.UserIdentityService;
 
@@ -75,5 +76,31 @@ public class PortalServicesController extends BaseController {
 		res.setData(businessProjectService.portalBusinessProject(id,pNo, pSize));
 		return res;
 	}
+	/**
+	 * 项目关注功能
+	 */
+	@RequestMapping(value = "/interest", method = RequestMethod.GET)
+	public Result interest(String objectId,String interest) {
+		Result res = new Result();
+		if (null==objectId) {
+			res.getError().add(buildError( "项目必须指定", "项目必须指定"));
+			return res;
+		}
+		if (null==interest) {
+			res.getError().add(buildError( "关注参数错误", "关注参数错误"));
+			return res;
+		}
+		String uid=null;
+		if (StringUtils.isNotBlank(TokenManager.getUserId())) {
+			uid=TokenManager.getUserId();
+		}
+		//uid="904d1d5a-30f6-4813-b632-1ff07a1ad317";
+		if (StringUtils.isBlank(uid)) {
+			res.getError().add(buildError( "用户未登录", "用户未登录"));
+			return res;
+		}
+		res.setData(businessVarietiesService.saveInterest( uid, objectId,interest));
+		return res;
+	}
 	
 }

+ 112 - 0
src/main/webapp/WEB-INF/views/portal/service/projectDetails.html

@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="common::header(~{::title},~{::link})">
+	    <meta charset="utf-8" />
+	    <link rel="icon" th:href="${portalHost +'/img/ico_logo.ico'}">
+	    <meta name="Keywords" content=""/>
+	    <meta name="Description" content=""/>
+	    <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1,user-scalable=no">
+	    <meta http-equiv="x-ua-compatible" content="ie=edge">
+	    <title>项目详情</title>
+	    <link rel="stylesheet" th:href="${portalHost +'/src/css/bootstrap.css'}" />
+	    <link rel="stylesheet" th:href="${portalHost +'/src/css/public.css'}" />
+	    <link rel="stylesheet" th:href="${portalHost +'/src/css/main_banner.css'}" />
+	    <link rel="stylesheet" th:href="${portalHost +'/src/css/service/projectDetails.css'}"/>
+	</head>
+	<body>
+		<header>
+		<div th:replace="common::nav('service','highTechCognizance')"></div>
+	</header>
+		<div id="counselor_title">
+			<div class="line"></div>
+			<div class="zi">
+				>
+                <a href="#">技术交易</a>
+                >
+                <a href="#">技术专利</a>
+                >
+                <a href="#" class="a_detail">专利详情</a>
+			</div>
+		</div>
+		<div id='det_content'>
+			<div id='content_left'>
+				<div class="title" th:text="${projectDetail.name}">
+				</div>
+				<div class="cont_img">
+					<img th:src="${projectDetail.maxLogo}" alt="" />
+				</div>
+				<div class="guanzhu">
+					<div class="loves">                       
+                       <span class="box_love"></span>
+                       <span class="dem_number" th:text="${projectDetail.countInterest}"></span>
+                       <span>关注</span>
+                       <input type="hidden" th:isInterester="${projectDetail.interest}" id="isInterester">
+                    </div>
+				</div>
+				<div class="guige">
+					<h5>
+						服务规格
+					</h5>
+					<div class="guigeone" th:text="${projectDetail.projectSize[0]}">
+					</div>
+					<div class="guigetwo" th:text="${projectDetail.projectSize[1]}">
+					</div>
+					<div class="guigethree" th:text="${projectDetail.projectSize[2]}">
+					</div>
+				</div>
+				<div id="cont">
+					<div class="miaoshu">
+						<div class="lineB">
+							项目描述
+						</div>
+						<div th:utext="${projectDetail.introduce}">
+						</div>
+					</div>
+					<div class="jiazi">
+						<div class="lineB">
+							项目价值
+						</div>
+						<div th:utext="${projectDetail.valueEffect}">
+						</div>
+					</div>
+					<div class="ziliao">
+						<div class="lineB">
+							所需资料
+						</div>
+						<div th:utext="${projectDetail.clientSize}">
+						</div>
+					</div>
+				</div>
+				<div class="lianxi">
+					<div class="fuwu">
+						我要服务
+					</div>
+					<div class="dianhua">
+						一键电话
+					</div>
+				</div>
+			</div>
+			<div id='content_right'>
+				<div class="fine">
+                    <div class="fine_title">推荐项目</div>
+                    <div th:each="recommend:${recommend}">
+                        <img th:src="${portalHost+recommend.minLogoUrl}" alt=""/>
+                        <p th:text="${recommend.name}"></p>
+                        <input type="hidden" th:isInterester="${recommend.id}" id="projectId">
+                    </div>
+                </div>
+			</div>
+		</div>
+		<footer>
+		<div th:replace="common::copyright"></div>
+		<div th:replace="common::login"></div>
+	</footer>
+	<div class="msg"><span></span></div>
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${portalHost + '/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${portalHost + '/service/highTechCognizance.js'}"></script>
+	</div>
+	</body>
+</html>