Browse Source

项目详情、服务意向接口开发与修复

anderx 7 years ago
parent
commit
0ff763d58f

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

@@ -997,9 +997,13 @@ public class PortalController extends BaseController {
 		mv.setViewName("portal/service/projectDetails");
 		//获取项目详情
 		ProjectDetailBo p=businessProjectService.ProjectDetail(id);
-		p.setIntroduce(p.getIntroduce().replace("\n","<br>"));
+		if (StringUtils.isNotBlank(p.getIntroduce())) 
+			p.setIntroduce(p.getIntroduce().replace("\n","<br>"));
+		if (StringUtils.isNotBlank(p.getValueEffect())) 
 		p.setValueEffect(p.getValueEffect().replace("\n", "<br>"));
+		if (StringUtils.isNotBlank(p.getClientSize())) 
 		p.setClientSize(p.getClientSize().replace("\n", "<br>"));
+		
 		mv.addObject("projectDetail",p);
 		//获取3条推荐
 		Pagination<ProjectBo> ps=businessProjectService.recommendProjectList(null,3);
@@ -1024,12 +1028,12 @@ public class PortalController extends BaseController {
 	/**
 	 * 服务意向
 	 */
-	@RequestMapping(value = "/portal/services/AddIntention", method = RequestMethod.GET)
-	public ModelAndView AddIntention(HttpServletRequest request, ModelAndView modelview,String commodityId,Integer commodityType ) {
+	@RequestMapping(value = "portal/service/purpose", method = RequestMethod.GET)
+	public ModelAndView purpose(HttpServletRequest request, ModelAndView modelview,String commodityId,Integer commodityType ) {
 		ModelAndView mv = new ModelAndView();
-		mv.setViewName("");
+		mv.setViewName("portal/service/purpose");
 		//获取服务意向参数
-		mv.addObject("Intention", orderService.selectCommodityDetail(commodityId, commodityType));
+		mv.addObject("purpose", orderService.selectCommodityDetail(commodityId, commodityType));
 		return mv;
 	}
 }

+ 1 - 1
src/main/java/com/goafanti/common/mapper/TOrderMapper.xml

@@ -906,7 +906,7 @@
   <select id="selectCommodityDetail" resultType="com.goafanti.order.bo.CommodityDetailBo">
   	<choose>
   		<when test="commodityType == 0">
-  			select id as commodityId,bname as commodityName,,cid as commodityClassify,ifnull(price,0) as commodityPrice,ifnull(first_payment,0) as commodityFirstPayment from business_project where id = #{commodityId,jdbcType=VARCHAR}
+  			select id as commodityId,bname as commodityName,cid as commodityClassify,ifnull(price,0) as commodityPrice,ifnull(first_payment,0) as commodityFirstPayment from business_project where id = #{commodityId,jdbcType=VARCHAR}
   		</when>
   		<when test="commodityType == 1">
   			select id as commodityId,name as commodityName,introduction,ifnull(transfer_price,0) as commodityPrice,owner_id as sellerId from achievement where id = #{commodityId,jdbcType=VARCHAR}

+ 0 - 1
src/main/java/com/goafanti/marketing/service/impl/MarketingManagementServiceImpl.java

@@ -52,7 +52,6 @@ public class MarketingManagementServiceImpl implements MarketingManagementServic
 		if (url.equals("localhost")||url.equals("168.1.104")) {
 			url="jishutao.com";
 		}
-		System.out.println("category"+category);
 		return marketingManagementMapper.selectMarketList(url,category,boothSize);
 	}
 	

+ 1 - 1
src/main/java/com/goafanti/order/enums/CommodityType.java

@@ -17,7 +17,7 @@ public enum CommodityType {
 	/** 会员升级 **/
 	MEMBER(5,"会员升级"),
 	/** 咨询师 **/
-	CONSULTANT(6,"C咨询师"),
+	CONSULTANT(6,"咨询师"),
 	/** 无效 **/
 	INVALID(10, "无效");
 	private CommodityType(Integer typeCode, String typeName) {

+ 14 - 0
src/main/java/com/goafanti/order/service/OrderService.java

@@ -423,4 +423,18 @@ public interface OrderService {
 	 * @return
 	 */
 	int updateTransferOrder(String orderNo,String aid,Integer targetType);
+	
+	/**
+	 * PC端添加意向
+	 * @param orderNo 订单编号
+	 * @param commodityId 商品id
+	 * @param commodityMode 商品型号
+	 * @param commodityQuantity 商品数量
+	 * @param commodityType 商品类型
+	 * @param createTime 创建时间
+	 * @param remarks 备注
+	 * @return
+	 */
+	int addPurpose(String orderNo, String commodityId, String commodityMode, Integer commodityQuantity,Integer commodityType, 
+			String createTime,String remarks) throws ParseException;
 }

+ 67 - 3
src/main/java/com/goafanti/order/service/impl/OrderServiceImpl.java

@@ -89,7 +89,7 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 	private final double DEFAULT_BROKERAGE_PROPORTION = 0; //佣金比例
 	private final double DEFAULT_COMMODITY_DISCOUNT = 1; //折扣比例
 	private final String DEFAULT_COMMODITY_MODE = "NO_MODE"; //暂无规格
-	private final String DEFAULT_CREATER = "PLATFORM";//平台方
+	
 	/*
 	 * -------------------------------------------------- APP管理端 --------------------------------------------------------
 	 */
@@ -132,7 +132,7 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 		BigDecimal discountFirstPayment = commodityFirstPayment.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
 		TOrder tOrder = new TOrder();
 		tOrder.setOrderNo(orderNo);	
-		tOrder.setCreater(DEFAULT_CREATER);
+		tOrder.setCreater(DEFAULT_ADMIN_ID);
 		tOrder.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
 		if(commodityType == CommodityType.DEMAND.getTypeCode()){
 			tOrder.setBuyerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
@@ -1490,7 +1490,7 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 	
 	private String getSalesmanIdByUid(String uid){
 		User u = userMapper.selectByPrimaryKey(uid);
-		if(StringUtils.isBlank(u.getAid())){
+		if(u!=null&&StringUtils.isBlank(u.getAid())){
 			return u.getAid();
 		}else{
 			return DEFAULT_ADMIN_ID;
@@ -1533,4 +1533,68 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 		tOrder.setUpdateTime(new Date());
 		return tOrderMapper.updateByPrimaryKeySelective(tOrder);
 	}
+	
+	/**
+	 * PC端添加意向
+	 * 只能购买一份
+	 * 后期规则:自营服务订单 、需求订单、其他订单不能同时加入购物车
+	 * @throws ParseException 
+	 */
+	@Override
+	public int addPurpose(String orderNo, String commodityId, String commodityMode, Integer commodityQuantity,Integer commodityType, 
+			String createTime,String remarks) throws ParseException {
+		CommodityDetailBo bo =  tOrderMapper.selectCommodityDetail(commodityId,commodityType);
+		BigDecimal commodityPrice = StringUtils.isBlank(bo.getCommodityPrice()) ? DEFAULT_COMMODITY_PRICE 
+				: new BigDecimal(Double.valueOf(bo.getCommodityPrice()));
+		BigDecimal commodityFirstPayment = StringUtils.isBlank(bo.getCommodityFirstPayment()) ? DEFAULT_FIRST_PAYMENT 
+				: new BigDecimal(Double.valueOf(bo.getCommodityFirstPayment()));
+		BigDecimal discountPrice = commodityPrice.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
+		BigDecimal discountFirstPayment = commodityFirstPayment.multiply(new BigDecimal(DEFAULT_COMMODITY_DISCOUNT));
+		TOrder tOrder = new TOrder();
+		tOrder.setOrderNo(orderNo);	
+		tOrder.setCreater(DEFAULT_ADMIN_ID);
+		tOrder.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
+		if(commodityType == CommodityType.DEMAND.getTypeCode()){
+			tOrder.setBuyerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
+			tOrder.setSellerId(TokenManager.getUserId());
+		}else{
+			tOrder.setBuyerId(TokenManager.getUserId());
+			//tOrder.setBuyerId("123");
+			tOrder.setSellerId(StringUtils.isBlank(bo.getSellerId()) ? DEFAULT_PLATFORM_ID : bo.getSellerId());
+		}
+		tOrder.setOrderType(commodityType);
+		tOrder.setBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
+		tOrder.setOrderAmount(commodityPrice);
+		tOrder.setFirstPayment(commodityFirstPayment);
+		tOrder.setSignTotalAmount(discountPrice);
+		tOrder.setSignFirstPayment(discountFirstPayment);
+		tOrder.setSignBrokerageAmount(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION)));
+		tOrder.setSignWithdrawAmount(discountPrice.subtract(discountPrice.multiply(new BigDecimal(DEFAULT_BROKERAGE_PROPORTION))));
+		tOrder.setDeleteSign(DeleteStatus.UNDELETE.getCode());
+		tOrder.setOrderChannel(OrderChannel.PORTAL.getCode());
+		tOrder.setApproval(ApprovalState.NORMAL.getCode());
+		
+			tOrder.setSalesmanId(getSalesmanIdByUid(TokenManager.getAdminId()));			
+		
+		tOrder.setOrderRemarks(remarks);
+		tOrder.setContractType(bo.getCommodityClassify());
+		setOrderState(OrderAction.ADD_INTENTION, new BigDecimal(0), tOrder, false);
+		
+		TOrderDetail tOrderDetail = new TOrderDetail();
+		tOrderDetail.setId(UUID.randomUUID().toString());
+		tOrderDetail.setOrderNo(orderNo);
+		tOrderDetail.setCommodityId(commodityId);
+		tOrderDetail.setCommodityName(bo.getCommodityName());
+		tOrderDetail.setCommodityMode(StringUtils.isBlank(commodityMode)?DEFAULT_COMMODITY_MODE: commodityMode);
+		tOrderDetail.setCommodityType(commodityType);
+		tOrderDetail.setCommodityQuantity(commodityQuantity);
+		tOrderDetail.setCommodityPrice(commodityPrice);
+		tOrderDetail.setCommodityFirstPayment(commodityFirstPayment);
+		tOrderDetail.setDiscountPrice(discountPrice);
+		tOrderDetail.setDiscountFirstPayment(discountFirstPayment);
+		tOrderDetail.setCreateTime(DateUtils.parseDate(createTime, AFTConstants.YYYYMMDDHHMMSS));
+		tOrderDetailMapper.insert(tOrderDetail);
+		tOrderMapper.insert(tOrder);
+		return 1;
+	}
 }

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

@@ -2,6 +2,8 @@ package com.goafanti.portal.controller;
 
 
 
+import java.text.ParseException;
+
 import javax.annotation.Resource;
 
 
@@ -33,6 +35,8 @@ public class PortalServicesController extends BaseController {
 	
 	
 	
+	
+	
 	/**
 	 * 推荐列表
 	 */
@@ -103,4 +107,29 @@ public class PortalServicesController extends BaseController {
 		return res;
 	}
 	
+	/**
+	 * 添加意向
+	 * @param orderNo 订单编号
+	 * @param commodityId 商品id
+	 * @param commodityMode 商品型号
+	 * @param commodityQuantity 商品数量
+	 * @param commodityType 商品类型
+	 * @param createTime 创建时间
+	 * @param remarks 备注
+	 * @return
+	 * @throws ParseException 
+	 */
+	@RequestMapping(value = "/addPurpose", method = RequestMethod.GET)
+	public Result addPurpose(String orderNo, String commodityId, String commodityMode, Integer commodityQuantity,Integer commodityType, 
+			String createTime,String remarks) throws ParseException {
+		Result res = new Result();
+		res.setData(orderService.addPurpose( orderNo,  commodityId,  commodityMode,  commodityQuantity, commodityType, 
+				 createTime, remarks));
+		return res;
+	}
+	
+	
+	
+	
+	
 }

+ 11 - 17
src/main/webapp/WEB-INF/views/portal/service/projectDetails.html

@@ -3,19 +3,12 @@
 	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'}"/>
+	     <link th:href="${portalHost +'/vendors.css'}" rel="stylesheet">
+	    <link rel="stylesheet" th:href="${portalHost +'/service/projectDetails.css'}"/>
 	</head>
 	<body>
+	<input id="demand_id" type="hidden" th:value="${projectDetail.id}">
 		<header>
 		<div th:replace="common::nav('service','highTechCognizance')"></div>
 	</header>
@@ -35,7 +28,7 @@
 				<div class="title" th:text="${projectDetail.name}">
 				</div>
 				<div class="cont_img">
-					<img th:src="${projectDetail.maxLogo}" alt="" />
+					<img th:src="${projectDetail.maxLogo}?${avatarUploadHost+projectDetail.maxLogo}:${avatarUploadHost+ '/default/bigimg_null.png'}" alt="" />
 				</div>
 				<div class="guanzhu">
 					<div class="loves">                       
@@ -49,11 +42,11 @@
 					<h5>
 						服务规格
 					</h5>
-					<div class="guigeone" th:text="${projectDetail.projectSize[0]}">
+					<div class="guigeone" th:if="${#lists.size(projectDetail.projectSize) ge 1}" th:text="${projectDetail.projectSize[0]}">
 					</div>
-					<div class="guigetwo" th:text="${projectDetail.projectSize[1]}">
+					<div class="guigetwo"  th:if="${#lists.size(projectDetail.projectSize) ge 2}" th:text="${projectDetail.projectSize[1]}">
 					</div>
-					<div class="guigethree" th:text="${projectDetail.projectSize[2]}">
+					<div class="guigethree" th:if="${#lists.size(projectDetail.projectSize) ge 3}" th:text="${projectDetail.projectSize[2]}">
 					</div>
 				</div>
 				<div id="cont">
@@ -91,8 +84,8 @@
 			<div id='content_right'>
 				<div class="fine">
                     <div class="fine_title">推荐项目</div>
-                    <div th:each="recommend:${recommend}">
-                        <img th:src="${portalHost+recommend.minLogoUrl}" alt=""/>
+                    <div class="pointer" 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>
@@ -102,11 +95,12 @@
 		<footer>
 		<div th:replace="common::copyright"></div>
 		<div th:replace="common::login"></div>
+		<input type="hidden" th:isLogin="${!isLogin}" id="isLogin" />
 	</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>
+		<script type="text/javascript" th:src="${portalHost + '/service/projectDetails.js'}"></script>
 	</div>
 	</body>
 </html>

+ 68 - 0
src/main/webapp/WEB-INF/views/portal/service/purpose.html

@@ -0,0 +1,68 @@
+<!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})">
+    <title>服务意向</title>
+   <link th:href="${portalHost +'/vendors.css'}" rel="stylesheet">
+<link th:href="${portalHost +'/service/purpose.css'}" rel="stylesheet">
+</head>
+<body>
+<input id="ids" th:value="${purpose.commodityId}" type="hidden">
+<input id="commodityType" th:value="${purpose.commodityType}" type="hidden">
+<header>
+		<div th:replace="common::nav('service','highTechCognizance')"></div>
+	</header>
+<div id="all_achievement">
+    <div class="detail">
+        <div id="order_title">
+             	服务意向
+        </div>
+        <div id="order_cont">
+            <div class="order_cont">
+                <div class="order_left">
+                    <h2 th:text="${purpose.commodityName}">高新企业认定</h2>
+                </div>
+                <div class="order_right">
+                    <div>
+                    	<span>价格:</span>
+                    	<span id="commodityPrice" th:text="${purpose.commodityPrice}">0</span>
+                    </div>
+                    <div>
+                    	<span>定金:</span>
+                    	<span id="firstPayment" th:text="${purpose.firstPayment}">0</span>
+                    </div>
+                    <div>
+                    	<span>订单编号:</span>
+                    	<span id="orderNo" th:text="${purpose.orderNo}">0</span>
+                    </div>
+                    <div>
+                    	<span id="createTime" th:text="${purpose.createTime}">2018:01:01  20:00</span>
+                    </div>
+                </div>
+            </div>
+            <textarea name="liuyan" rows="8" cols="140" placeholder="请备注留言,以便服务人员能更好的了解您的服务意向!"></textarea>
+        </div>
+        <div id="tijiao">
+        	<div>提交服务意向</div>
+        </div>
+        <div id="order_flow">
+            <h3>交易流程</h3>
+            <div>
+                <img th:src="${portalHost+'/img/order_2.png'}" alt=""/>
+            </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/purpose.js'}"></script>
+	</div>
+</body>
+</html>