微信小程序 购物车操作

表字段 user 

 评论表

 商品表

 订单表

wxml页面

<!--index.wxml-->
<view class="swiper-tab">
    <view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">全部</view>
    <view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-current="1" bindtap="swichNav">待付款</view>
    <view class="swiper-tab-list {{currentTab==2 ? 'on' : ''}}" data-current="2" bindtap="swichNav">代收货</view>
    <view class="swiper-tab-list {{currentTab==3 ? 'on' : ''}}" data-current="3" bindtap="swichNav">代退款</view>
    <view class="swiper-tab-list {{currentTab==4 ? 'on' : ''}}" data-current="4" bindtap="swichNav">代评价</view>
</view>
 
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight - 31}}px" bindchange="bindChange">
    <!-- 我是哈哈 -->
    <swiper-item>
      <l-card type="cover"  wx:for="{{list}}" wx:key="item"
            image="{{item.image}}"
            >
        <view class="content">
          {{item.price}}{{item.name}}
          <navigator url="/pages/place/place?id={{item.id}}"><button>{{item.state}}</button></navigator>
        </view>
    </l-card>
    </swiper-item>
    <!-- 我是呵呵 -->
    <swiper-item>
      <view>我是呵呵</view>
    </swiper-item>
    <!-- 我是嘿嘿 -->
    <swiper-item>
      <view>我是嘿嘿</view>
    </swiper-item>
    <swiper-item>
      <view>待退款</view>
    </swiper-item>
    <swiper-item>
      <l-card type="cover"  wx:for="{{text}}" wx:key="key"
            image="{{item.image}}"
            title="{{item.name}}">
        <view class="content">
          {{item.price}}
          <navigator url="/pages/evaluate/evaluate?id={{item.id}}"><button>评价</button></navigator>
        </view>
        </l-card>
    </swiper-item>
</swiper>

swiper-item 微信小程序开发之选项卡(窗口顶部TabBar)页面切换_dzp_coder-CSDN博客_微信小程序选项卡页面切换

js事件

 wx.request({
      url: 'http://www.test.com/api/commodity_index',
      method:"POST",
      success :res=>{
        console.log(res.data.data)
        this.setData({
          list:res.data.data
        })
      }
    })
    wx.request({
      url: 'http://www.test.com/api/commodity_state',
      success :res=>{
        console.log(res.data.data.data)
        this.setData({
          text:res.data.data.data
        })
      }
    })

    
public function commodityIndex()
    {
        $data=CommodityList::select();
        if($data){
            return json(['code'=>200,'msg'=>'查询成功','data'=>$data]);
        }else{
            return json(['code'=>400,'msg'=>'查询失败','data'=>'']);
        }
    }
//查询未评价订单
    public function commodityState()
    {
        $data=CommodityList::where('state','未评价')->paginate('2');
        if($data){
            return json(['code'=>200,'msg'=>'查询成功','data'=>$data]);
        }else{
            return json(['code'=>400,'msg'=>'查询成功','data'=>'']);
        }
    }

未付款页面 place

<l-countdown time-type="second"  time-type='{{list.int}}'  />

<view>订单号:{{list.order_number}}</view>
<view>状态:{{list.state}}</view>
<view>创建时间:{{list.time}}</view>
<button open-type="contact">联系卖家</button>

    let id=options.id;
    console.log(id)
    wx.request({
      url: 'http://www.test.com/api/commodity_find?id='+id,
      
      success :res=>{
        let now_time = Math.round(new Date().getTime() / 1000).toString();
       let expire_time = res.data.data.time;
        console.log(res.data.data)
        this.setData({
          list:res.data.data
        })
        if(expire_time > 0){
              this.setData({
                btn_disable:true
              })
            }

      }
    })
 

php代码

public function commodityFind(Request  $request)
    {
        $id=$request->get('id');
        $data=CommodityList::find($id);
        if (empty($id)){
            return json(['code'=>2000,'data'=>'','msg'=>'用户不存在']);
        }
        $order_number=strtotime(date('Y-m-d')).md5(md5("date().$request->uid"));
        $result=Order::create([
            'order_number'=>$order_number,
            'time'=>date('Y-m-d H:i:s'),
        ]);
        $info=Order::find($id);
        //倒计时计算
        if (time()-intval($info["create_time"])>(30*60)){
            $res["int"]=0;
        }elseif (time()-intval($info["create_time"])<(30*60)&&time()-intval($info["create_time"])>0){
            $res["int"]=(30*60)-(time()-intval($info["create_time"]));
        }else{
            $res["int"]=0;
        }

        if ($result){
            return json(['code'=>200,'data'=>$info,'msg'=>'ok']);
        }
        return json(['code'=>2005,'data'=>'','msg'=>'转账失败']);
    }

评价页面

<l-card type="cover"  
            image="{{text.image}}"
            title="{{text.name}}">
        <view class="content">
          {{text.price}}
        </view>
</l-card>
 
<view>评论功能</view>
<l-image-picker count="9" bind:linchange="onChangeTap" />
      
<form bindsubmit="formAdd" >
            <!-- <l-input label="评论"  placeholder="请输入评论人" name="name" bind:lininput="name" /> -->
            <l-input label="评论内容"  placeholder="请输入评论" name="text" bind:lininput="text" />
            <button type="default" form-type="submit">添加</button>
</form>
 
 
<l-card type="avatar" l-class="card" wx:for="{{ahao}}" image="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Finews.gtimg.com%2Fnewsapp_bt%2F0%2F13926601261%2F641&refer=http%3A%2F%2Finews.gtimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1632831780&t=d525af5d97621d669d549ea46b445e7e"
    title="李牛子" describe="两分钟前">
        <!-- 此处为content -->
        <view class="avter-content">
            {{item.text}}
            卖家评论:
                  
<form bindsubmit="formAdd" >
            <!-- <l-input label="评论"  placeholder="请输入评论人" name="name" bind:lininput="name" /> -->
            <l-input label="评论内容"  placeholder="请输入评论" name="text" bind:lininput="text" />
            <button type="default" form-type="submit">发布</button>
</form>
        </view>
        <view class="avter-share-container">
 
        </view>
        <l-tag  shape="circle" 
                bg-color="#f3f3f3" 
                font-color="#3963BC" 
                slot="more"
                size="large">
                + 关注
        </l-tag>
  </l-card>

json样式

 "l-card":"/miniprogram_npm/lin-ui/card",
    "l-tag":"/miniprogram_npm/lin-ui/tag",
    "l-input":"/miniprogram_npm/lin-ui/input",
    "l-image-picker":"/miniprogram_npm/lin-ui/image-picker"
// pages/mysfind/mysfind.js
Page({
 
  /**
   * 页面的初始数据
   */
  data: {
    comment:[],
    text:[],
    ahao:[]
  },
 
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let id=options.id;
    wx.request({
      url: 'http://www.test.com/api/find?id='+id,
      success :res=>{
        console.log(res)
        this.setData({
          text:res.data.data
        })
      } 
    })
    
    wx.request({
      url: 'http://www.test.com/api/county_select',

      method:"POST",
      success :res=>{
        console.log(res)
        this.setData({
          ahao:res.data.data
        })
      } 
    })
  },
 
  formAdd:function(e){
    console.log(e.detail.value.name)
    let name=e.detail.value.name
    let text=e.detail.value.text
    wx.request({
      url: 'http://www.test.com/api/content_audit',

      method:"POST",
      data:{
        name:name,
        text:text
      },
      success:res=>{
          let msg= res.data.msg
          if(msg=="添加成功"){
              this.setData({
                show:1,
                error:'1'
              })
          }
      }
    })
  },
   //文件上传之后的方法
   onChangeTap(event) {
    //获取最新上传的所有图片临时路径
    let tempFilePaths = event.detail.current;
    //定义一个空数组,进行存放上传图片url
    var urlArr = [];
    for (let index = 0; index < tempFilePaths.length; index++) {
      wx.uploadFile({
        url: 'http://www.test.com/api/image_audit', //仅为示例,非真实的接口地址
        filePath: tempFilePaths[index],
        name: 'file',
  
        success: res => {
          const data = JSON.parse(res.data);
          //do something
          urlArr.push(data.url)
          this.setData({
            urls: urlArr
          })
        }
      })
 
    }
  },
})
public function find(Request $request)
    {
        $id=$request->get('id');
        $data=CommodityList::find($id);
        if($data){
            return json(['code'=>'200','msg'=>'查询成功','data'=>$data]);
        }else{
            return json(['code'=>'400','msg'=>'查询失败','data'=>'']);
        }
    }

    public function CountyInsert(Request $request)
    {
        $info=$request->post('');
        $data=Comment::create($info);
        if($data){
            return json(['code'=>'200','msg'=>'添加成功','data'=>$data]);
        }else{
            return json(['code'=>'400','msg'=>'添加失败','data'=>'']);
        }
    }

    public function countySelect()
    {
        $data=Comment::select();
        if($data){
            return json(['code'=>'200','msg'=>'查询成功','data'=>$data]);
        }else{
            return json(['code'=>'400','msg'=>'查询失败','data'=>'']);
        }
    }

内容验证

<?php

namespace app\api\controller;

use app\api\model\Comment;
use app\Request;
use app\api\server\Oss as OssServer;
class Audit
{
    /**
     * @param Request $request
     * 内容审核
     */
    public function contentAudit(Request $request)
    {
        $content = $request->post('text');
        $token = $this->getAccessToken('mr5GSx453SUGD64OId9zojDE', 'tcAQfPdjo4v1VwoHLBEwtMBVzrebG3GS');

        $url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=' . $token;
        $bodys = array(
            'text' => $content
        );
        $res = $this->curlPost($url, $bodys);

        //结果转成数组
        $res = json_decode($res, true);
        //根据自己的业务逻辑进行处理
        print_r($res);
        $data=Comment::create($res);
        if($data){
            return json(['code'=>'200','msg'=>'添加成功','data'=>$data]);
        }else{
            return json(['code'=>'400','msg'=>'添加失败','data'=>'']);
        }
    }

    /**
     * 图片审核
     */
    public function imageAudit()
    {
        $filePath = $_FILES['file']['tmp_name'];
        $token = $this->getAccessToken('mr5GSx453SUGD64OId9zojDE', 'tcAQfPdjo4v1VwoHLBEwtMBVzrebG3GS');
        $url = 'https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined?access_token=' . $token;
        $img = file_get_contents($filePath);
        $text="123455";
        $img = base64_encode($img);
        $bodys = array(
            'image' => $img,
            'text'=>$text
        );
        $res = $this->curlPost($url, $bodys);
        //结果转成数组
        $res = json_encode($res, true);
        //根据自己的业务逻辑进行处理
        print_r($res);
        $fileName = (new OssServer())->uploadFile($filePath);
        return json(['error_code'=>0,'data'=>$fileName,'msg'=>'操作成功']);
    }

    /**
     * CURL的Post请求方法
     * @param string $url
     * @param string $param
     * @return bool|string
     */
    function curlPost($url = '', $param = '')
    {
        if (empty($url) || empty($param)) {
            return false;
        }

        $postUrl = $url;
        $curlPost = $param;
        // 初始化curl
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $postUrl);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        // 要求结果为字符串且输出到屏幕上
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        // post提交方式
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
        // 运行curl
        $data = curl_exec($curl);
        curl_close($curl);

        return $data;
    }

    /**
     * 获取百度开放平台的票据
     * 参考链接:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
     */
    public function getAccessToken($ApiKey = '', $SecretKey = '', $grantType = 'client_credentials')
    {

        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        $post_data['grant_type'] = $grantType;
        $post_data['client_id'] = $ApiKey;
        $post_data['client_secret'] = $SecretKey;
        $o = "";
        foreach ($post_data as $k => $v) {
            $o .= "$k=" . urlencode($v) . "&";
        }
        $post_data = substr($o, 0, -1);

        $res = $this->curlPost($url, $post_data);
        //进行把返回结果转成数组
        $res = json_decode($res, true);
        if (isset($res['error'])) {
            exit('API Key或者Secret Key不正确');
        }
        $accessToken = $res['access_token'];
        return $accessToken;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值