创建发布任务


上一篇 : 基础控制器的修改 下一篇: 图片上传



创建数据库

CREATE TABLE `up61_task` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT,

  `user_id` bigint(20) NOT NULL COMMENT '用户ID',

  `product_name` varchar(100) NOT NULL COMMENT '产品名称',

  `product_link` varchar(255) NOT NULL COMMENT '产品链接',

  `product_price` decimal(10,2) NOT NULL COMMENT '产品价格',

  `cost_price` decimal(8,2) NOT NULL COMMENT '单次佣金',

  `num` int(11) NOT NULL COMMENT '任务次数',

  `expire_time` datetime NOT NULL COMMENT '过期时间',

  `more` text NOT NULL COMMENT '图片',

  `remark` varchar(255) NOT NULL COMMENT '备注',

  `type` tinyint(1) NOT NULL COMMENT '1京东 2淘宝',

  `pay_status` tinyint(1) NOT NULL COMMENT '0 未支付 1已支付',

  `last_num` int(11) NOT NULL COMMENT '剩余次数',

  `create_time` datetime NOT NULL COMMENT '发布时间',

  `order_no` varchar(100) NOT NULL COMMENT '订单编号',

  PRIMARY KEY (`id`),

  KEY `user_id` (`user_id`),

  KEY `type` (`type`)

) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;


task控制器


<?php
/**
* Created by PhpStorm.
* User: [一秋]
* Date: 2018/3/29
* Time: 9:56
* Desc: 成功源于点滴
*/

namespace app\index\controller;

use think\Validate;
use app\index\model\Task as TaskModel;

class Task extends UserBaseController
{
   public function addTask(){
       $user_id = $this->getUserId();

       $validate = new Validate([
           'type' => 'require',
           'product_name' => 'require',
           'product_link'=>'require',
           'product_price'=>'require',
           'cost_price'=>'require',
           'num'=>'require',
           'expire_time'=>'require',
           'product_img'=>'require',
           'first_img'=>'require',
           'second_img'=>'require',
           'remark'=>'string',
       ]);

       $validate->message([
           'type.require' => '请选择发布平台',
           'product_name.require' => '请填写商品名称!',
           'product_link.require' => '请填写商品链接!',
           'product_price.require' => '请填写商品价格!',
           'cost_price.require' => '请填写单次佣金!',
           'num.require' => '请填写雇佣次数!',
           'expire_time.require' => '请填写任务到期时间!',
           'product_img.require' => '请选择商品图片!',
           'first_img.require' => '请选择第一次审核示例图片!',
           'second_img.require' => '请选择第二次审核示例图片!',
       ]);

       $data = $this->request->param();
       if (!$validate->check($data)) {
           $this->error($validate->getError());
       }
       $data['user_id'] = $user_id;

       // TODO  检验发布平台和传入的商品链接是否一致


       $taskModel = new TaskModel();
       $taskModel->addTask($data);

       $this->success('发布成功',['task_id'=>$taskModel->id]);
   }
}

task模型类

<?php
/**
* Created by PhpStorm.
* User: [一秋]
* Date: 2018/3/29
* Time: 10:39
* Desc: 成功源于点滴
*/

namespace app\index\model;


use think\Model;

class Task extends Model
{
   protected $type = [
       'more' => 'array',
   ];
   protected $autoWriteTimestamp = 'datetime';

   public function addTask($data){
       $data['more'] = [
           'product_img'=>$data['product_img'],
           'first_img'=>$data['first_img'],
           'second_img'=>$data['second_img'],
       ];
       $data['order_no'] = up61_get_order_sn();
       $data['last_num'] = $data['num'];
       unset($data['product_img']);
       unset($data['first_img']);
       unset($data['second_img']);
       $this->allowField(true)->isUpdate(false)->data($data,true)->save($data);
       return $this;
   }
}



新建公共函数


/**
* 获取惟一订单号
* @return string
*/
function up61_get_order_sn()
{
   return date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}


新增路由

//任务管理
Route::post('task/add','index/task/addTask');



image.png

image.png

image.png


返回结果

{

    "code": 1,

    "msg": "发布成功",

    "data": {

        "task_id": "1"

    }

}


上一篇 : 基础控制器的修改 下一篇: 图片上传