Merge branch 'test6.9.5' of http://git.yoho.cn/ufo/yohoufo-fore into test6.9.5
Showing
9 changed files
with
281 additions
and
7 deletions
@@ -19,4 +19,6 @@ public interface ProductMapper { | @@ -19,4 +19,6 @@ public interface ProductMapper { | ||
19 | List<Product> selectByIds(List<Integer> ids); | 19 | List<Product> selectByIds(List<Integer> ids); |
20 | 20 | ||
21 | List<Product> selectByProductCode(@Param("productCode") String productCode); | 21 | List<Product> selectByProductCode(@Param("productCode") String productCode); |
22 | + | ||
23 | + String selectIntroByProductId(Integer id); | ||
22 | } | 24 | } |
@@ -90,4 +90,9 @@ | @@ -90,4 +90,9 @@ | ||
90 | from product | 90 | from product |
91 | where product_code = #{productCode,jdbcType=VARCHAR} | 91 | where product_code = #{productCode,jdbcType=VARCHAR} |
92 | </select> | 92 | </select> |
93 | + <select id="selectIntroByProductId" parameterType="java.lang.Integer" resultType="java.lang.String"> | ||
94 | + select product_intro | ||
95 | + from product_intro | ||
96 | + where product_id = #{productId} limit 1 | ||
97 | + </select> | ||
93 | </mapper> | 98 | </mapper> |
@@ -366,11 +366,13 @@ public class AppraiseService { | @@ -366,11 +366,13 @@ public class AppraiseService { | ||
366 | buyerOrderMapper.updatePlatformDeliveryStatusByOrderCode(orderCode, buyerOrder.getUid(), | 366 | buyerOrderMapper.updatePlatformDeliveryStatusByOrderCode(orderCode, buyerOrder.getUid(), |
367 | EnumPlatformDeliveryStatus.delivery_to_seller.getCode(), DateUtil.getCurrentTimeSecond()); | 367 | EnumPlatformDeliveryStatus.delivery_to_seller.getCode(), DateUtil.getCurrentTimeSecond()); |
368 | }); | 368 | }); |
369 | - //发送消息 | ||
370 | - inBoxFacade.sendCancelledProductToSellerByCenter(sellerUid, wayBillCode); | ||
371 | 369 | ||
372 | //清缓存 | 370 | //清缓存 |
373 | - cleanCacheAfterUpdateStatus(buyerOrder.getOrderCode(), buyerOrder.getUid(), buyerOrder.getSellerUid()); | 371 | + SellerOrderGoods sellerOrderGoods = cleanCacheAfterUpdateStatus(buyerOrder.getOrderCode(), buyerOrder.getUid(), buyerOrder.getSellerUid()); |
372 | + | ||
373 | + //发送消息 | ||
374 | + inBoxFacade.sendCancelledProductToSellerByCenter(sellerUid,orderCode, sellerOrderGoods,wayBillCode); | ||
375 | + | ||
374 | 376 | ||
375 | return apiResponse; | 377 | return apiResponse; |
376 | } | 378 | } |
@@ -81,6 +81,10 @@ public class InBoxFacade { | @@ -81,6 +81,10 @@ public class InBoxFacade { | ||
81 | InBoxResponse resp = inBoxSDK.addInbox(req); | 81 | InBoxResponse resp = inBoxSDK.addInbox(req); |
82 | logger.info("record buyerOrderNotPayed inbox msg, buyerUid {}, orderCode {}, resp {}", | 82 | logger.info("record buyerOrderNotPayed inbox msg, buyerUid {}, orderCode {}, resp {}", |
83 | buyerUid, orderCode, resp); | 83 | buyerUid, orderCode, resp); |
84 | + | ||
85 | + //push | ||
86 | + SendMessageRspBo bo = ufoSendService.buyerNotPay(String.valueOf(buyerUid),String.valueOf(orderCode)); | ||
87 | + logger.info("record buyerOrderNotPayed push buyer uid is {}, orderCode is {}, result is {}", buyerUid, orderCode, JSON.toJSONString(bo)); | ||
84 | }); | 88 | }); |
85 | } catch (Exception e) { | 89 | } catch (Exception e) { |
86 | logger.warn("InBoxFacade buyerOrderNotPayed error inbox msg, buyerUid {}, orderCode {} ", | 90 | logger.warn("InBoxFacade buyerOrderNotPayed error inbox msg, buyerUid {}, orderCode {} ", |
@@ -132,6 +136,10 @@ public class InBoxFacade { | @@ -132,6 +136,10 @@ public class InBoxFacade { | ||
132 | Product product = productMapper.selectByPrimaryKey(psog.getProductId()); | 136 | Product product = productMapper.selectByPrimaryKey(psog.getProductId()); |
133 | String productCode = product.getProductCode(); | 137 | String productCode = product.getProductCode(); |
134 | 138 | ||
139 | + //发push | ||
140 | + SendMessageRspBo bo = ufoSendService.sellerDeliverNotice(String.valueOf(buyerUid),String.valueOf(orderCode)); | ||
141 | + logger.info("record sellerDeliver2Depot push buyer uid is {}, orderCode is {}, result is {}", buyerUid, orderCode, JSON.toJSONString(bo)); | ||
142 | + | ||
135 | //sms | 143 | //sms |
136 | String phone = userProxyService.getMobile(buyerUid); | 144 | String phone = userProxyService.getMobile(buyerUid); |
137 | if (StringUtils.isBlank(phone)){ | 145 | if (StringUtils.isBlank(phone)){ |
@@ -176,6 +184,11 @@ public class InBoxFacade { | @@ -176,6 +184,11 @@ public class InBoxFacade { | ||
176 | logger.info("record noticeBuyerWhenDeliveryGoodsToBuyer inbox msg, buyerUid {}, orderCode {}, prdName {},SellerOrderGoods {} resp {}", | 184 | logger.info("record noticeBuyerWhenDeliveryGoodsToBuyer inbox msg, buyerUid {}, orderCode {}, prdName {},SellerOrderGoods {} resp {}", |
177 | buyerUid, orderCode, prdName, JSON.toJSONString(psog), resp); | 185 | buyerUid, orderCode, prdName, JSON.toJSONString(psog), resp); |
178 | 186 | ||
187 | + //发push | ||
188 | + SendMessageRspBo bo = ufoSendService.platformDeliverBuyer(String.valueOf(buyerUid),String.valueOf(orderCode)); | ||
189 | + logger.info("record noticeBuyerWhenDeliveryGoodsToBuyer push buyer uid is {}, orderCode is {}, result is {}", buyerUid, orderCode, JSON.toJSONString(bo)); | ||
190 | + | ||
191 | + | ||
179 | //seller notice | 192 | //seller notice |
180 | 193 | ||
181 | 194 | ||
@@ -519,6 +532,13 @@ public class InBoxFacade { | @@ -519,6 +532,13 @@ public class InBoxFacade { | ||
519 | logger.info("record buyerQualityCheckNotPass inbox msg, buyerUid {} ,orderCode {},prdName {} ,resp {}", | 532 | logger.info("record buyerQualityCheckNotPass inbox msg, buyerUid {} ,orderCode {},prdName {} ,resp {}", |
520 | buyerUid, orderCode, prdName ,resp); | 533 | buyerUid, orderCode, prdName ,resp); |
521 | 534 | ||
535 | + //瑕疵确认超时,发push | ||
536 | + if(outTimeFlag){ | ||
537 | + //发push | ||
538 | + SendMessageRspBo bo = ufoSendService.buyerConfirmFlawExceed(String.valueOf(buyerUid),String.valueOf(orderCode)); | ||
539 | + logger.info("record buyerQualityCheckNotPass push buyer uid is {}, orderCode is {},outTimeFlag {}, result is {}", buyerUid, orderCode,outTimeFlag, JSON.toJSONString(bo)); | ||
540 | + } | ||
541 | + | ||
522 | //短信 | 542 | //短信 |
523 | String phone = userProxyService.getMobile(buyerUid); | 543 | String phone = userProxyService.getMobile(buyerUid); |
524 | if (StringUtils.isBlank(phone)){ | 544 | if (StringUtils.isBlank(phone)){ |
@@ -1162,11 +1182,11 @@ public class InBoxFacade { | @@ -1162,11 +1182,11 @@ public class InBoxFacade { | ||
1162 | /** | 1182 | /** |
1163 | * 鉴定中心把 买家取消(卖家已发货给中心)的物品,顺丰到付寄给卖家 | 1183 | * 鉴定中心把 买家取消(卖家已发货给中心)的物品,顺丰到付寄给卖家 |
1164 | */ | 1184 | */ |
1165 | - public void sendCancelledProductToSellerByCenter(int sellerUid,String wayBillCode){ | 1185 | + public void sendCancelledProductToSellerByCenter(int sellerUid,Long orderCode,SellerOrderGoods sog,String wayBillCode){ |
1166 | try { | 1186 | try { |
1167 | executorService.execute(() -> { | 1187 | executorService.execute(() -> { |
1168 | - logger.info("record sendCancelledProductToSeller inbox sms msg,sellerUid {}, wayBillCode {}", | ||
1169 | - sellerUid, wayBillCode); | 1188 | + logger.info("record sendCancelledProductToSeller inbox sms msg,sellerUid {},orderCode {},sellerOrderGoods {}, wayBillCode {}", |
1189 | + sellerUid, orderCode,sog,wayBillCode); | ||
1170 | 1190 | ||
1171 | String phone = userProxyService.getMobile(sellerUid); | 1191 | String phone = userProxyService.getMobile(sellerUid); |
1172 | logger.info("sendCancelledProductToSeller wayBillCode sms send get phone {},sellerUid {}, wayBillCode {}", | 1192 | logger.info("sendCancelledProductToSeller wayBillCode sms send get phone {},sellerUid {}, wayBillCode {}", |
@@ -1176,8 +1196,12 @@ public class InBoxFacade { | @@ -1176,8 +1196,12 @@ public class InBoxFacade { | ||
1176 | sellerUid,wayBillCode); | 1196 | sellerUid,wayBillCode); |
1177 | return; | 1197 | return; |
1178 | } | 1198 | } |
1199 | + String prdName = sog.getProductName(); | ||
1200 | + String sizeName = sog.getSizeName(); | ||
1201 | + Product product = productMapper.selectByPrimaryKey(sog.getProductId()); | ||
1202 | + String productCode = product.getProductCode(); | ||
1179 | List<String> mobileList = Arrays.asList(phone); | 1203 | List<String> mobileList = Arrays.asList(phone); |
1180 | - String content = getReplacedContent(InboxBusinessTypeEnum.SMS_CANCELED_BY_BUYER_AFTER_RECEIVED.getContent(),wayBillCode); | 1204 | + String content = getReplacedContent(InboxBusinessTypeEnum.SMS_CANCELED_BY_BUYER_AFTER_RECEIVED.getContent(),prdName,sizeName,productCode,orderCode,wayBillCode); |
1181 | 1205 | ||
1182 | sendSmsService.smsSendByMobile(content, mobileList); | 1206 | sendSmsService.smsSendByMobile(content, mobileList); |
1183 | logger.info("record sendCancelledProductToSeller inbox sms msg end,sellerUid {}, wayBillCode {}, phone {},", | 1207 | logger.info("record sendCancelledProductToSeller inbox sms msg end,sellerUid {}, wayBillCode {}, phone {},", |
@@ -1274,6 +1298,11 @@ public class InBoxFacade { | @@ -1274,6 +1298,11 @@ public class InBoxFacade { | ||
1274 | executorService.execute(() -> { | 1298 | executorService.execute(() -> { |
1275 | InBoxResponse inBoxResponse = inBoxSDK.addInbox(inboxMessage); | 1299 | InBoxResponse inBoxResponse = inBoxSDK.addInbox(inboxMessage); |
1276 | logger.info("noticeBuyerOfSellerShamSendOut inbox send success, message is {} res is {}", inboxMessage, inBoxResponse); | 1300 | logger.info("noticeBuyerOfSellerShamSendOut inbox send success, message is {} res is {}", inboxMessage, inBoxResponse); |
1301 | + | ||
1302 | + //发push | ||
1303 | + SendMessageRspBo bo = ufoSendService.sellerFalseDeliver(String.valueOf(uid),String.valueOf(orderCode)); | ||
1304 | + logger.info("record noticeBuyerOfSellerShamSendOut push buyer uid is {}, orderCode is {}, result is {}", uid, orderCode, JSON.toJSONString(bo)); | ||
1305 | + | ||
1277 | String phone = userProxyService.getMobile(uid); | 1306 | String phone = userProxyService.getMobile(uid); |
1278 | if (StringUtils.isBlank(phone)) { | 1307 | if (StringUtils.isBlank(phone)) { |
1279 | logger.warn("noticeBuyerOfSellerShamSendOut sms send fail,uid {} can not find phone", uid); | 1308 | logger.warn("noticeBuyerOfSellerShamSendOut sms send fail,uid {} can not find phone", uid); |
@@ -1300,6 +1329,11 @@ public class InBoxFacade { | @@ -1300,6 +1329,11 @@ public class InBoxFacade { | ||
1300 | executorService.execute(() -> { | 1329 | executorService.execute(() -> { |
1301 | InBoxResponse inBoxResponse = inBoxSDK.addInbox(inboxMessage); | 1330 | InBoxResponse inBoxResponse = inBoxSDK.addInbox(inboxMessage); |
1302 | logger.info("noticeBuyerOfSellerSendOutTimeout inbox send success, message is {} res is {}", inboxMessage, inBoxResponse); | 1331 | logger.info("noticeBuyerOfSellerSendOutTimeout inbox send success, message is {} res is {}", inboxMessage, inBoxResponse); |
1332 | + | ||
1333 | + //发push | ||
1334 | + SendMessageRspBo bo = ufoSendService.sellerDeliverHours(String.valueOf(uid),String.valueOf(orderCode)); | ||
1335 | + logger.info("record noticeBuyerOfSellerSendOutTimeout push buyer uid is {}, orderCode is {}, result is {}", uid, orderCode, JSON.toJSONString(bo)); | ||
1336 | + | ||
1303 | String phone = userProxyService.getMobile(uid); | 1337 | String phone = userProxyService.getMobile(uid); |
1304 | if (StringUtils.isBlank(phone)) { | 1338 | if (StringUtils.isBlank(phone)) { |
1305 | logger.warn("noticeBuyerOfSellerSendOutTimeout sms send fail,uid {} can not find phone", uid); | 1339 | logger.warn("noticeBuyerOfSellerSendOutTimeout sms send fail,uid {} can not find phone", uid); |
@@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONObject; | @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONObject; | ||
4 | import com.yoho.core.config.ConfigReader; | 4 | import com.yoho.core.config.ConfigReader; |
5 | import com.yoho.error.exception.ServiceException; | 5 | import com.yoho.error.exception.ServiceException; |
6 | import com.yoho.tools.docs.ApiOperation; | 6 | import com.yoho.tools.docs.ApiOperation; |
7 | +import com.yoho.tools.docs.ApiParam; | ||
8 | +import com.yoho.tools.docs.ApiResp; | ||
9 | +import com.yoho.tools.docs.ApiRespCode; | ||
7 | import com.yohobuy.ufo.model.ProductInfo; | 10 | import com.yohobuy.ufo.model.ProductInfo; |
8 | import com.yohobuy.ufo.model.request.StoragePriceBo; | 11 | import com.yohobuy.ufo.model.request.StoragePriceBo; |
9 | import com.yohobuy.ufo.model.request.product.ProductImportTranItemBo; | 12 | import com.yohobuy.ufo.model.request.product.ProductImportTranItemBo; |
@@ -30,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestBody; | @@ -30,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestBody; | ||
30 | import org.springframework.web.bind.annotation.RequestMapping; | 33 | import org.springframework.web.bind.annotation.RequestMapping; |
31 | import org.springframework.web.bind.annotation.RequestParam; | 34 | import org.springframework.web.bind.annotation.RequestParam; |
32 | import org.springframework.web.bind.annotation.RestController; | 35 | import org.springframework.web.bind.annotation.RestController; |
36 | +import org.springframework.web.servlet.ModelAndView; | ||
33 | 37 | ||
34 | import java.util.Collection; | 38 | import java.util.Collection; |
35 | import java.util.List; | 39 | import java.util.List; |
@@ -84,6 +88,18 @@ public class ProductController { | @@ -84,6 +88,18 @@ public class ProductController { | ||
84 | return new ApiResponse.ApiResponseBuilder().data(resp).code(200).message("product data").build(); | 88 | return new ApiResponse.ApiResponseBuilder().data(resp).code(200).message("product data").build(); |
85 | } | 89 | } |
86 | 90 | ||
91 | + @ApiOperation(name = "ufo.product.intro", desc = "商品详情页下半部分") | ||
92 | + @ApiParam(name="product_id",required = true,desc="商品id",type=Integer.class) | ||
93 | + @ApiResp(dataClazz=ModelAndView.class, desc="商品详情") | ||
94 | + @ApiRespCode(code=200,desc="调用成功") | ||
95 | + @IgnoreSignature | ||
96 | + @IgnoreSession | ||
97 | + @RequestMapping(params = "method=ufo.product.intro") | ||
98 | + public ModelAndView queryProductIntro(@RequestParam(value = "product_id", required = true) Integer productId) { | ||
99 | + LOG.info("queryProductIntro method=ufo.product.intro product id is:{}", productId); | ||
100 | + return productService.queryProductIntro(productId); | ||
101 | + } | ||
102 | + | ||
87 | @ApiOperation(name = "ufo.product.series.template", desc = "商品系列列表") | 103 | @ApiOperation(name = "ufo.product.series.template", desc = "商品系列列表") |
88 | @IgnoreSignature | 104 | @IgnoreSignature |
89 | @IgnoreSession | 105 | @IgnoreSession |
@@ -12,6 +12,7 @@ import com.yohoufo.dal.product.model.StoragePrice; | @@ -12,6 +12,7 @@ import com.yohoufo.dal.product.model.StoragePrice; | ||
12 | import com.yohoufo.product.model.SkupInfo; | 12 | import com.yohoufo.product.model.SkupInfo; |
13 | import com.yohoufo.product.response.*; | 13 | import com.yohoufo.product.response.*; |
14 | import com.yohobuy.ufo.model.response.StorageDataResp; | 14 | import com.yohobuy.ufo.model.response.StorageDataResp; |
15 | +import org.springframework.web.servlet.ModelAndView; | ||
15 | 16 | ||
16 | public interface ProductService { | 17 | public interface ProductService { |
17 | 18 | ||
@@ -104,4 +105,6 @@ public interface ProductService { | @@ -104,4 +105,6 @@ public interface ProductService { | ||
104 | SecondHandProductResp querySecondHandProductData(Integer skup); | 105 | SecondHandProductResp querySecondHandProductData(Integer skup); |
105 | 106 | ||
106 | ProductDetailResp queryProductInStockNewBriefById(Integer productId); | 107 | ProductDetailResp queryProductInStockNewBriefById(Integer productId); |
108 | + | ||
109 | + ModelAndView queryProductIntro(Integer productId); | ||
107 | } | 110 | } |
@@ -30,6 +30,7 @@ import org.slf4j.Logger; | @@ -30,6 +30,7 @@ import org.slf4j.Logger; | ||
30 | import org.slf4j.LoggerFactory; | 30 | import org.slf4j.LoggerFactory; |
31 | import org.springframework.beans.factory.annotation.Autowired; | 31 | import org.springframework.beans.factory.annotation.Autowired; |
32 | import org.springframework.stereotype.Service; | 32 | import org.springframework.stereotype.Service; |
33 | +import org.springframework.ui.ModelMap; | ||
33 | import org.springframework.util.CollectionUtils; | 34 | import org.springframework.util.CollectionUtils; |
34 | 35 | ||
35 | import com.alibaba.fastjson.JSONObject; | 36 | import com.alibaba.fastjson.JSONObject; |
@@ -42,6 +43,7 @@ import com.yohoufo.common.utils.UfoStringUtils; | @@ -42,6 +43,7 @@ import com.yohoufo.common.utils.UfoStringUtils; | ||
42 | import com.yohobuy.ufo.model.response.StorageDataResp; | 43 | import com.yohobuy.ufo.model.response.StorageDataResp; |
43 | import com.yohoufo.product.service.ProductSearchService; | 44 | import com.yohoufo.product.service.ProductSearchService; |
44 | import com.yohoufo.product.service.ProductService; | 45 | import com.yohoufo.product.service.ProductService; |
46 | +import org.springframework.web.servlet.ModelAndView; | ||
45 | 47 | ||
46 | 48 | ||
47 | @Service | 49 | @Service |
@@ -161,6 +163,28 @@ public class ProductServiceImpl implements ProductService { | @@ -161,6 +163,28 @@ public class ProductServiceImpl implements ProductService { | ||
161 | } | 163 | } |
162 | 164 | ||
163 | @Override | 165 | @Override |
166 | + public ModelAndView queryProductIntro(Integer productId){ | ||
167 | + if (null == productId) { | ||
168 | + ModelMap model = new ModelMap(); | ||
169 | + model.addAttribute("code", "404"); | ||
170 | + model.addAttribute("info", "no data"); | ||
171 | + return new ModelAndView("error", model); | ||
172 | + } | ||
173 | + Product product = productMapper.selectByPrimaryKey(productId); | ||
174 | + if (null == product) { | ||
175 | + ModelMap model = new ModelMap(); | ||
176 | + model.addAttribute("code", "404"); | ||
177 | + model.addAttribute("info", "no data"); | ||
178 | + return new ModelAndView("error", model); | ||
179 | + } | ||
180 | + String intro = productMapper.selectIntroByProductId(productId); | ||
181 | + ModelMap model = new ModelMap(); | ||
182 | + model.addAttribute("title", product.getProductName()); | ||
183 | + model.addAttribute("productIntro",intro); | ||
184 | + return new ModelAndView("product-desc-app", model); | ||
185 | + } | ||
186 | + | ||
187 | + @Override | ||
164 | public StorageLeastPriceResp queryStorageLeastPrice(Integer storageId) { | 188 | public StorageLeastPriceResp queryStorageLeastPrice(Integer storageId) { |
165 | StoragePrice storagePrice = storagePriceMapper.selectLeastPrice(storageId); | 189 | StoragePrice storagePrice = storagePriceMapper.selectLeastPrice(storageId); |
166 | if (storagePrice == null) { | 190 | if (storagePrice == null) { |
1 | +<!DOCTYPE html> | ||
2 | +<html style="font-size: 20px;"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>{{title}}</title> | ||
6 | + <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=yes"> | ||
7 | + <meta http-equiv="cleartype" content="on"> | ||
8 | + <meta content="telephone=no" name="format-detection" /> | ||
9 | + <script type="text/javascript"> | ||
10 | + (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window); | ||
11 | +</script> | ||
12 | + <link rel="dns-prefetch" href="//cdn.yoho.cn"> | ||
13 | + <link rel="dns-prefetch" href="//static.yohobuy.com"> | ||
14 | + <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> | ||
15 | + <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> | ||
16 | + <!-- | ||
17 | + <link rel="stylesheet" href="http://cdn.yoho.cn/myohobuy/{{version}}/index.css"> | ||
18 | + --> | ||
19 | + <link rel="stylesheet" href="{{httpType}}://cdn.yoho.cn/app-webview/{{version}}/index.css"> | ||
20 | + | ||
21 | + <style> | ||
22 | + .good-detail-page .model { | ||
23 | + width: 100%; | ||
24 | + height: auto; | ||
25 | + border-bottom: 1px solid #e0e0e0; | ||
26 | + overflow: hidden; | ||
27 | + margin-bottom: 0.75rem; | ||
28 | + } | ||
29 | + .good-detail-page .model .portrait { | ||
30 | + width: 4.375rem; | ||
31 | + float: left; | ||
32 | + margin-bottom: 0.375rem; | ||
33 | + } | ||
34 | + .good-detail-page .model .portrait span { | ||
35 | + text-align: center; | ||
36 | + font-size: 0.6rem; | ||
37 | + display: block; | ||
38 | + height: 1.55rem; | ||
39 | + line-height: 1.7rem; | ||
40 | + color: #444; | ||
41 | + } | ||
42 | + .good-detail-page .model .portrait img { | ||
43 | + display: block; | ||
44 | + max-width: 100%; | ||
45 | + border: 0; | ||
46 | + width: 3.1rem; | ||
47 | + height: 3.1rem; | ||
48 | + border-radius: 2.75rem; | ||
49 | + margin-top: 2.1rem; | ||
50 | + margin-left: 0.55rem; | ||
51 | + } | ||
52 | + .good-detail-page .model .info-list { | ||
53 | + margin-left: 4.75rem; | ||
54 | + } | ||
55 | + .good-detail-page .model .info-list .list-title { | ||
56 | + display: block; | ||
57 | + width: 6.25rem; | ||
58 | + height: 1rem; | ||
59 | + background: #eee; | ||
60 | + line-height: 1rem; | ||
61 | + text-align: center; | ||
62 | + margin: 0.25rem 0 0.75rem; | ||
63 | + } | ||
64 | + .good-detail-page .model .detail-info { | ||
65 | + width: 48%; | ||
66 | + height: 1.25rem; | ||
67 | + line-height: 1.25rem; | ||
68 | + display: inline-block; | ||
69 | + } | ||
70 | + .good-detail-page .model .detail-info .info-name { | ||
71 | + color: #b0b0b0; | ||
72 | + font-size: 0.6rem; | ||
73 | + } | ||
74 | + .good-detail-page .model .detail-info:nth-child(2) { | ||
75 | + width: 100%; | ||
76 | + } | ||
77 | + .good-detail-page .remind-tips { | ||
78 | + padding-left: 0.45rem; | ||
79 | + font-size: 0.55rem; | ||
80 | + color: #e9221a; | ||
81 | + margin-bottom: 0.75rem; | ||
82 | + } | ||
83 | + .good-detail-page .remind-tips img { | ||
84 | + width: 0.7rem; | ||
85 | + float: left; | ||
86 | + } | ||
87 | + .good-detail-page .remind-tips .wash-tags { | ||
88 | + line-height: 0.75rem; | ||
89 | + height: 0.75rem; | ||
90 | + height: 0.75rem; | ||
91 | + margin-left: 0.25rem; | ||
92 | + } | ||
93 | + .good-detail-page .goods-desc .service.surpass-not-support { | ||
94 | + background: url("http://img11.static.yhbimg.com/article/2017/07/19/14/016ec56db99be8633d5e9b1aa66b6ffab1.png") no-repeat; | ||
95 | + background-size: 100%; | ||
96 | + } | ||
97 | + .good-detail-page .page-block .pro-detail * { | ||
98 | + font-size: 0.7rem !important; | ||
99 | + color: #444; | ||
100 | + line-height: 1rem !important; | ||
101 | + margin-bottom: 1rem; | ||
102 | + letter-spacing: 0.03rem; | ||
103 | + word-break: break-all; | ||
104 | + } | ||
105 | + .good-detail-page .maybe-like { | ||
106 | + border-top: none; | ||
107 | + padding-left: 0; | ||
108 | + } | ||
109 | + .good-detail-page .maybe-like .title{ | ||
110 | + color: #444; | ||
111 | + font-size: 0.8rem; | ||
112 | + line-height: 2.2rem; | ||
113 | + text-align: center; | ||
114 | + margin-left: -0.375rem; | ||
115 | + } | ||
116 | + .good-detail-page .recommend-for-you .title { | ||
117 | + margin-left: -0.375rem; | ||
118 | + } | ||
119 | + .good-detail-page .page-block .pro-detail { | ||
120 | + font-size: 14px; | ||
121 | + } | ||
122 | + .good-detail-page .goods-discount { | ||
123 | + padding-top: 0; | ||
124 | + margin-bottom: 0.5rem; | ||
125 | + } | ||
126 | + .good-detail-page .product-detail { | ||
127 | + margin-top: 0; | ||
128 | + margin-bottom: 0.5rem; | ||
129 | + } | ||
130 | + .good-detail-page .page-block { | ||
131 | + margin-bottom: 0.5rem; | ||
132 | + } | ||
133 | + strong,b { | ||
134 | + font-weight: bold; | ||
135 | + } | ||
136 | + | ||
137 | + .good-detail-page .price-desc-detail { | ||
138 | + padding: 0.25rem 0; | ||
139 | + color: #b0b0b0; | ||
140 | + font-size: 0.5rem; | ||
141 | + margin-top: 0.1rem; | ||
142 | + } | ||
143 | + | ||
144 | + .good-detail-page .price-desc-detail p { | ||
145 | + line-height: 1.45; | ||
146 | + padding: 0.125rem 0; | ||
147 | + } | ||
148 | + | ||
149 | + .good-detail-page .price-desc-detail .price-item-name { | ||
150 | + line-height: 1.5; | ||
151 | + color: #444; | ||
152 | + padding-bottom: 0; | ||
153 | + } | ||
154 | + | ||
155 | + .good-detail-page .price-desc-detail .price-item-content { | ||
156 | + font-weight: 300; | ||
157 | + } | ||
158 | + | ||
159 | + .good-detail-page .price-desc-detail .price-summary { | ||
160 | + margin: 0.1rem 0; | ||
161 | + font-weight: 300; | ||
162 | + } | ||
163 | + </style> | ||
164 | + | ||
165 | + <link rel="apple-touch-icon-precomposed" href="http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> | ||
166 | + <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> | ||
167 | + <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> | ||
168 | +</head> | ||
169 | +<body> | ||
170 | +{{{productIntro}}} | ||
171 | + <!--<div class="good-detail-page yoho-page"> | ||
172 | + <div id="app-detail" class="hide"> | ||
173 | + <div id="productDesc"> | ||
174 | + <div class="goods-desc page-block"> | ||
175 | + <p>{{{productIntro}}}</p> | ||
176 | + </div> | ||
177 | + </div> | ||
178 | + </div>--> | ||
179 | +</body> | ||
180 | +</html> |
-
Please register or login to post a comment