# jieteng **Repository Path**: the_pros_and_cons_of_lawrence_admin/jieteng ## Basic Information - **Project Name**: jieteng - **Description**: No description available - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README .env文件手动维护 config/app.php文件需要手动维护 如果需要重新部署项目需要修改微信appid,secret,notify_url-微信支付回调地址 #项目开发笔记 请求的参数统一,创建数据库字段时,不使用默认的id而是xxx_id 数据库字段统一, _id 和_text 来区分数据id和数据标题,Model命名 xxxTable 大部分代码根据属性分布在model,其他功能模块代码放在Repository 接口地址命名规则=>add(单独的添加) save(添加或修改) info (详情) del(删除) list(列表) 状态字段使用0存在的问题在于列表筛选时不好判断,传空和不存在,可能都会当成0处理 简单的一对多可以用逗号隔开,但是要考虑反查问题,查询area中包含”1″这个参数的记录 SELECT * from test where FIND_IN_SET('1',area) FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。 接口页面授权方式,分三种情况 1.需要微信授权 (可以考虑全局授权) 2.用户是否登录 3.api调用授权验证token 4.开放接口 基本通用模版 /** * @api {get} /user/info 获取用户信息 * @apiGroup User * @apiDescription 说明: 无 * * @apiParam {Int} id 用户id * * @apiSuccess {String} username 用户名 * @apiSuccess {String} phone 用户手机号 * * @apiSuccessExample {json} Success-Response: * * { * "code": 1, * "msg": "成功", * "data": {}a * } */ 文档生成命令 apidoc -i app/Http/Controllers -o public/doc 列表接口简单示例 $uid = \Request::input('uid'); //uid $page = \Request::get('page', 1); $limit = \Request::get('page_num', 10); $start_time = \Request::get('start_time'); $end_time = \Request::get('end_time'); $key = \Request::get('key'); $where = 'medical_report_file_uid=:uid'; $param = ['uid'=>$uid]; if($start_time){ if(!$end_time){ $end_time=date('Y-m-d'); } $where .= ' and (medical_report_file_date >=:medical_report_file_date_1 and medical_report_file_date<=:medical_report_file_date_2)'; $param['medical_report_file_date_1'] = $start_time; $param['medical_report_file_date_2'] = $end_time; } if ($key) { $where .= ' and user_name like :username'; $param['username'] = "%{$key}%"; } $count = \DB::select("select count(*) as c from wedo_medical_report_file WHERE {$where}", $param)[0]->c; $param['offset'] = ($page - 1) * $limit; $param['limit'] = $limit; $res = \DB::select("select * from wedo_medical_report_file WHERE {$where} ORDER BY medical_report_file_id DESC limit :offset,:limit", $param); $data = [ 'count' => $count, 'list' => $res, 'page' => $page, ]; return JsonRespose::success($data); 新增模块 composer require overtrue/wechat:~3.2 定时任务 * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1 客户端授权验证 传递HTTP_TOKEN参数即可 app等第三方认证复用sessionid,因为加密后的session每次都是变化的所以app只能接收未加密的session_id(已做处理) 生成二维码访问 /phpqrcode/index.php?str=123 微信认证流程说明 1.通过微信WeiXinAuth中间件判断是否存在授权的session,没有跳转微信授权, 有跳转到登录页面 /wap/common/login 2.授权成功后跳回回调页面/api/wap/oauth-callback获取用户信息并跳转到登录页面(或者需要访问的页面) 支付和回调 订单号和调起支付参数接口建议分开(对开发是一样的) /api/wap/pay-callback 微信回调接口 支付成功后才扣除相关的东西 如券,计算积分等 思考 流程思考ing