1
0
Kaynağa Gözat

小程序视频轮播图修改

hyq 6 yıl önce
ebeveyn
işleme
35ccedb107

+ 9 - 8
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -401,16 +401,17 @@ public class OrderServiceImpl implements OrderService {
                     && StringUtils.isNotEmpty(orderEntity.getShippingNo()) &&orderProcessRecordEntity.getShipmentStartTime()!=null) {
                 JSONObject traces = KdniaoUtil.getOrderTracesByJson(orderEntity.getShippingCode(), orderEntity.getShippingNo());
                 List<Map> mapList = (List<Map>) traces.get("Traces");
-                for (Map map : mapList) {
-                    WuliuEntity wuliuEntity = new WuliuEntity();
-                    wuliuEntity.setAcceptTime(map.get("AcceptTime").toString());
-                    wuliuEntity.setAcceptStation(map.get("AcceptStation").toString());
-                    wuliuEntityList.add(wuliuEntity);
+                if(mapList!=null&&mapList.size()>0) {
+                    for (Map map : mapList) {
+                        WuliuEntity wuliuEntity = new WuliuEntity();
+                        wuliuEntity.setAcceptTime(map.get("AcceptTime").toString());
+                        wuliuEntity.setAcceptStation(map.get("AcceptStation").toString());
+                        wuliuEntityList.add(wuliuEntity);
+                    }
                 }
-
-                String state = traces.get("State").toString();
+                String state = traces.get("State")+"";
                 if (Dict.logisticsStatus.item_0.getItem().equals(state) && traces.getBoolean("Success")) {
-                    String reason = traces.get("Reason").toString();
+                    String reason = traces.get("Reason")+"";
                     WuliuEntity wuliuEntity = new WuliuEntity();
                     wuliuEntity.setAcceptStation(reason);
                     wuliuEntityList.add(wuliuEntity);

+ 7 - 6
kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java

@@ -324,13 +324,14 @@ public class ApiOrderController extends ApiBaseAction {
                     // 快递
                     JSONObject Traces = apiKdniaoService.getOrderTracesByJson(orderInfo.getShipping_code(), orderInfo.getShipping_no());
                     List<Map> mapList = (List<Map>) Traces.get("Traces");
-                    for (int i = 0; i < mapList.size(); i++) {
-                        WuliuVo vo = new WuliuVo();
-                        vo.setAcceptTime((String) mapList.get(i).get("AcceptTime"));
-                        vo.setAcceptStation((String) mapList.get(i).get("AcceptStation"));
-                        wuliuList.add(vo);
+                    if(mapList!=null&&mapList.size()>0) {
+                        for (int i = 0; i < mapList.size(); i++) {
+                            WuliuVo vo = new WuliuVo();
+                            vo.setAcceptTime((String) mapList.get(i).get("AcceptTime"));
+                            vo.setAcceptStation((String) mapList.get(i).get("AcceptStation"));
+                            wuliuList.add(vo);
+                        }
                     }
-
                     String State = (String) Traces.get("State"); //物流状态:2-在途中,3-签收,4-问题件
                     String Reason = (String) Traces.get("Reason");
                     if (Dict.logisticsStatus.item_0.getItem().equalsIgnoreCase(State)) {

+ 10 - 8
kmall-common/src/main/java/com/kmall/common/utils/express/kdn/KdniaoUtil.java

@@ -55,15 +55,17 @@ public class KdniaoUtil {
             if (null != jsonObject) {
                 List<Map<String, String>> mapList = (List<Map<String, String>>) jsonObject.get("Traces");
                 //根据轨迹里接收时间排序
-                mapList.sort(new Comparator<Map<String, String>>() {
-                    @Override
-                    public int compare(Map<String, String> o1, Map<String, String> o2) {
-                        if (DateUtils.strToDate(o1.get("AcceptTime")).after(DateUtils.strToDate(o2.get("AcceptTime")))) {
-                            return -1;
+                if(mapList!=null && mapList.size()>0) {
+                    mapList.sort(new Comparator<Map<String, String>>() {
+                        @Override
+                        public int compare(Map<String, String> o1, Map<String, String> o2) {
+                            if (DateUtils.strToDate(o1.get("AcceptTime")).after(DateUtils.strToDate(o2.get("AcceptTime")))) {
+                                return -1;
+                            }
+                            return 0;
                         }
-                        return 0;
-                    }
-                });
+                    });
+                }
                 jsonObject.put("Traces", mapList);
             }
         } catch (Exception e) {

+ 82 - 1
kmall-pt.iml

@@ -1,2 +1,83 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4" />
+<module version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.logback-extensions:logback-ext-spring:0.1.5" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mariadb.jdbc:mariadb-java-client:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.28" level="project" />
+    <orderEntry type="module-library">
+      <library name="Maven: com.alibaba:jconsole:1.8.0">
+        <CLASSES>
+          <root url="jar://D:/Program Files/Java/jdk1.8.0_131/lib/jconsole.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library name="Maven: com.alibaba:tools:1.8.0">
+        <CLASSES>
+          <root url="jar://D:/Program Files/Java/jdk1.8.0_131/lib/tools.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.30" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.axet:kaptcha:0.0.9" level="project" />
+    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity-tools:2.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-digester:commons-digester:1.8" level="project" />
+    <orderEntry type="library" name="Maven: jstl:jstl:1.2" level="project" />
+    <orderEntry type="library" name="Maven: taglibs:standard:1.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.23" level="project" />
+  </component>
+</module>

+ 33 - 2
wx-mall/pages/goods/goods.js

@@ -28,7 +28,7 @@ Page({
     hasCollectImage: "/static/images/icon_collect_checked.png",
     collectBackImage: "/static/images/icon_collect.png",
     showNavList: false,
-    stockNum: 0,
+    stockNum: '',
     cartNumber: 0,
     autoplay: false,
     defaultFreight: 0,
@@ -37,7 +37,10 @@ Page({
     indexNum: 0,
     windowWidth: 0,
     leftWidth: 0,
-    startX:0
+    startX:0,
+    curr_id: '',
+    videoHiddenName: true,
+    imgHiddenName: false
   },
   toggleNav() {
     this.setData({
@@ -493,4 +496,32 @@ Page({
       //console.log('不能修改样式')
     }
   },
+  videoPlay(e) {
+    // if (this.data.curr_id == e.currentTarget.dataset.id) {
+    //   this.setData({
+    //     curr_id: 0,
+    //   })
+    // } else {
+    //   this.setData({
+    //     curr_id: e.currentTarget.dataset.id,
+    //   })
+    // }
+    this.setData({
+      imgHiddenName: true,
+      videoHiddenName: false
+    })
+    this.videoContext.play();
+  },
+  //触摸事件start
+  touchStart2(e) {
+    
+  },
+  touchEnd2(e) {
+    this.setData({
+      curr_id: 0,
+      imgHiddenName: false,
+      videoHiddenName: true
+    })
+    this.videoContext.pause();
+  }
 })

+ 27 - 9
wx-mall/pages/goods/goods.wxml

@@ -43,18 +43,36 @@
       <view class='scroll-wrapper'>
         <scroll-view class='scroll-view'>
           <view class="items-wrapper" style="transform:translate3d({{leftWidth}}px, 0, 0)">
-            <view wx:for="{{gallery}}" wx:key="index" data-index="{{index}}" class="item"  bindtouchstart='touchStart' bindtouchend='touchEnd' >
+          <!-- 循环商品图开始 -->
+            <view wx:for="{{gallery}}" wx:key="index" data-index="{{index}}" class="item" bindtouchstart='touchStart' bindtouchend='touchEnd'>
               <view class='rank-num' style="background-color: #c8c8c8">{{index+1}}/{{gallery.length}}</view>
               <view class='img-wrapper'>
-                <video wx:if="{{item.file_type==1}}" id="myVideo" class='myVideo' indicator-color="{{indicator}}" indicator-active-color="{{activeIndicator}}" src="{{item.img_url}}" style="transform:translate3d({{leftWidth}}px, 0, 0)" binderror="videoErrorCallback" objectFit="cover" initial-time='1' show-center-play-btn enable-progress-gesture controls></video>
-                <image src="{{item.img_url}}" class="imageClass" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}" wx:else/>
+              <!-- 视频播放开始 -->
+              <view class="video2" data-id="{{item.id}}" bindtap="videoPlay" wx:if="{{item.file_type == 1}}">
+                <view hidden="{{videoHiddenName}}">
+                <video id="myVideo" style="width: 750rpx;height: calc(9 * 750rpx / 16);" src="{{item.img_url}}" objectFit="cover" show-center-play-btn enable-progress-gesture  controls></video>
+                  </view>
+
+                <view style="width: 750rpx;height: calc(9 * 750rpx / 16);" hidden="{{imgHiddenName}}">
+                  <image class="model-img" style="width: 750rpx;height: calc(9 * 750rpx / 16);background-size:650rpx 321rpx;" mode="aspectFill" src="{{gallery[1].img_url}}" background-size="cover"></image>
+                  <view class="model-btn">
+                    <view class="play-icon"></view>
+                  </view>
+                </view>
+              </view>
+              <!-- 视频播放结束 -->
+              <view wx:else >
+                <image src="{{item.img_url}}" class="imageClass" mode='aspectFill' catchtap='preview' data-url="{{item.img_url}}"/>
+              </view>
               </view>
+              
             </view>
+            <!-- 循环商品图结束 -->
           </view>
-        </scroll-view>
-      </view>
-    </view>
+    </scroll-view>
   </view>
+</view>
+</view>
       <!-- <swiper indicator-dots indicator-color="{{indicator}}" current="{{current}}" indicator-active-color="{{activeIndicator}}" class="goodsimgs" duration="300">  
         <block wx:for="{{gallery}}" wx:key="item.id">  
           <swiper-item>  
@@ -84,7 +102,7 @@
       <view class="item">每日优选生鲜</view>
       <view class="item">满88元免运费</view>
     </view> -->
-    <view class="goods-info">
+    <view class="goods-info" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
       <view class="c" bindtap="hideSwitchAttrPop">
         <view class="goods-do">
           <text class="price">{{goods.retail_price?"¥"+goods.retail_price:"¥0"}}</text>
@@ -103,7 +121,7 @@
         </view>
       </view>
     </view>
-    <view class="section-nav section-attr" bindtap="switchAttrPop"  wx:if="{{stockNum >0}}">
+    <view class="section-nav section-attr" bindtap="switchAttrPop"  wx:if="{{stockNum >0}}"  bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
       <view class="t">{{checkedSpecText=="请选择规格数量"?"请选择规格数量":"已选:【"+checkedSpecText+"】"}}</view>
       <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
     </view>
@@ -137,7 +155,7 @@
       </view>
       <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
     </view>-->
-    <view class="comments" bindtap="hideSwitchAttrPop">
+    <view class="comments" bindtap="hideSwitchAttrPop" bindtouchstart='touchStart2' bindtouchend='touchEnd2'>
       <view class="h">
         <navigator url='../comment/comment?valueId={{goods.id}}&typeId=0'>
           <text class="t">评价({{comment.count > 999 ? '999+' : comment.count}})</text>

+ 33 - 5
wx-mall/pages/goods/goods.wxss

@@ -3,8 +3,11 @@
 }
 
 .goodsimgs {
+  position: relative;
   width: 750rpx;
   height: 750rpx;
+  background: #fff;
+  top:0rpx;
 }
 
 /* .goodsimgs image {
@@ -13,9 +16,11 @@
 }
 .goodsimgs video{
   position: absolute;
-  width:750rpx; 
-  height: 750rpx;
   display: block;
+  top:0rpx;
+  width: 750rpx;
+  height: 450rpx;
+  margin-top:150rpx;
 } */
 
 .content-wrapper {
@@ -73,9 +78,33 @@
   transform-origin: center;
   letter-spacing: 0;
 }
+.video2{ margin-top: 150rpx;
+	position: relative;
+}
+.model-img{
+  background-size:650rpx 321rpx;
+}
+.model-btn{
+	position:absolute;
+  left:0;
+  top:0;
+  bottom:0;
+  right:0;
+  margin:auto;
+  width:100rpx;
+  height:100rpx;
+  border-radius:50%;
+  background-color: rgba(0,0,0,.3);
+}
+.play-icon{
+    margin:28rpx 42rpx;
+    border-top:26rpx solid transparent;
+    border-left:36rpx solid #fff;
+    border-bottom:22rpx solid transparent;
+}
 .content-wrapper .scroll-view .item .img-wrapper .myVideo {
-  height:400rpx;width:100%;
-  margin-top: 150rpx;
+  width: 750rpx;
+  height: calc(9 * 750rpx / 16);
   /* left:0; */
 }
 /* .content-wrapper .scroll-view .item:nth-child(1) {
@@ -218,7 +247,6 @@
   height: 210rpx;
   overflow: hidden;
   background: #fff;
-  z-index: 9999;
 }
 
 .goods-info .c {