作者 何书鹏
1 个管道 的构建 通过 耗费 1 秒

合并分支 'heshupeng' 到 'master'

切换社区



查看合并请求 !62
... ... @@ -393,7 +393,7 @@ class HouseBoard extends Api
{
"id": // 活动id
"title": // 活动标题
"spec_type": // 活动规格:0=无规格,免费,1=单规格,2=多规格
"spec_type": // 活动规格:0=无规格-免费,1=单规格,2=多规格
"content": // 活动描述
"activity_time": 活动日期
"price": // 报名费用
... ... @@ -429,7 +429,7 @@ class HouseBoard extends Api
"data": {
"id": // 活动id
"title": // 活动标题
"spec_type": // 活动规格:0=无规格,免费,1=单规格,2=多规格
"spec_type": // 活动规格:0=无规格-免费,1=单规格,2=多规格
"content": // 活动描述
"activity_time": 活动日期
"price": // 报名费用
... ... @@ -578,10 +578,7 @@ class HouseBoard extends Api
empty($total_num) && $this->error('缺少必要参数');
empty($contact) && $this->error('缺少必要参数');
empty($mobile) && $this->error('缺少必要参数');
$activity = Db::name('house_activity')
->where('id',$house_activity_id)
->field('title,content,spec_type,start_time,end_time')
->find();
$activity = \app\admin\model\HouseActivity::get($house_activity_id,['specRel']);
empty($activity) && $this->error('活动信息不存在');
if($activity['spec_type'] == '2' && empty($spec_sku_id)){
$this->error('多规格活动,请传入spec_sku_id');
... ... @@ -600,8 +597,18 @@ class HouseBoard extends Api
$total_price = $price * $total_num;
$house_activity_spec_id = $house_activity_spec['id'];
}
// 活动规格信息
$activity_attr = '';
if($activity['spec_type'] == '2'){
$attrs = explode('_', $spec_sku_id);
$spec_rel = array_column($activity['specRel'], null, 'id');
foreach ($attrs as $specValueId) {
$activity_attr .= $spec_rel[$specValueId]['spec']['spec_name'] . ':'
. $spec_rel[$specValueId]['spec_value'] . '; ';
}
}
// 生成报名订单
$house_join_id = Db::name('house_join')->insertGetId(array_merge([
$house_join_id = Db::name('house_join')->insertGetId([
'order_no' => date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8),
'contact' => $contact,
'mobile' => $mobile,
... ... @@ -614,8 +621,14 @@ class HouseBoard extends Api
'total_num' => $total_num,
'spec_sku_id' => $spec_sku_id,
'house_activity_spec_id' => $house_activity_spec_id,
'createtime' => time()
],$activity));
'activity_attr' => $activity_attr,
'createtime' => time(),
'title' => $activity['title'],
'content' => $activity['content'],
'spec_type' => $activity['spec_type'],
'start_time' => $activity['start_time'],
'end_time' => $activity['end_time']
]);
if($total_price > 0){
// 调起支付
$this->init_wx_pay_for_gzh(true);
... ...
... ... @@ -9,6 +9,8 @@ use fast\Random;
use think\Validate;
use think\Cache;
use app\api\model\HouseJoin;
use app\api\model\UserHouse;
use app\api\model\UserMoneyLog;
/**
* 会员接口
... ... @@ -107,19 +109,18 @@ class User extends Api
public function index()
{
$user = $this->auth->getUser();
$store_inform_log = new \app\api\model\StoreInformLog;
$data = [
// 当前小区信息
'house' => \app\api\model\House::get($user['house_id'])
->visible(['id','name'])->toArray(),
// 今日收益
'today_money' => $store_inform_log
->where('user_id',$this->auth->id)
'today_money' => UserMoneyLog::where('user_id',$this->auth->id)
->where('money','>',0)
->whereTime('createtime', 'today')
->sum('money'),
// 总收益
'total_money' => $store_inform_log
->where('user_id',$this->auth->id)
'total_money' => UserMoneyLog::where('user_id',$this->auth->id)
->where('money','>',0)
->sum('money'),
// 未读消息数量
'message_num' => \app\api\model\Message::where('to_user_id',$user['id'])
... ... @@ -138,6 +139,120 @@ class User extends Api
}
/**
* @ApiTitle (个人中心-选择社区)
* @ApiSummary (个人中心-选择社区)
* @ApiMethod (POST)
* @ApiRoute (/api/user/houseList)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="area", type="string", required=true, description="市区地址例如:'天津市/西青区'")
* @ApiParams (name="keyword", type="string", required=false, description="关键字")
*
* @ApiReturn({
"code": 1,
"msg": "success",
"time": "1598688508",
"data": [{
"id": 16, //小区ID
"name": "兴安苑", //小区名称
"area": "北京/北京市/朝阳区", //小区所在地区
"status": 1, //状态:1=申请中,2=已绑定
"is_current": 0 //是否当前小区:0=否,1=是
}]
})
*/
public function houseList()
{
$user = $this->auth->getUser();
$area = $this->request->param('area');
$keyword = $this->request->param('keyword');
$where = [];
if(!empty($area)){
$where['h.area'] = ['like',"%$area%"];
}
if(!empty($keyword)){
$where['h.name'] = ['like',"%$keyword%"];
}
// 查出该用户已绑定的和申请中的小区
$list = UserHouse::alias('uh')
->join('house h','h.id = uh.house_id')
->where('uh.user_id',$user['id'])
->where($where)
->field("h.id,h.name,h.area,uh.status")
->order('uh.status desc')
->select();
foreach($list as &$v){
$v['is_current'] = $user['house_id'] == $v['id'] ? 1 : 0;
}
$this->success('success',$list);
}
/**
* @ApiTitle (个人中心-选择社区-切换)
* @ApiSummary (个人中心-选择社区-切换)
* @ApiMethod (POST)
* @ApiRoute (/api/user/houseUnbind)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="house_id", type="inter", required=true, description="小区ID")
*
* @ApiReturn({
"code": 1,
"msg": "切换成功"
})
*/
public function houseChange()
{
$user = $this->auth->getUser();
$house_id = $this->request->param('house_id');
empty($house_id) && $this->error('缺少必要参数');
$info = UserHouse::get(['user_id'=>$user['id'],'house_id'=>$house_id]);
empty($info) && $this->error('绑定信息不存在');
$info['status'] != 2 && $this->error('您还没有绑定该小区,无法切换');
$user->house_id = $house_id;
$user->save();
$this->success('切换成功');
}
/**
* @ApiTitle (个人中心-选择社区-解绑)
* @ApiSummary (个人中心-选择社区-解绑)
* @ApiMethod (POST)
* @ApiRoute (/api/user/houseUnbind)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="house_id", type="inter", required=true, description="小区ID")
*
* @ApiReturn({
"code": 1,
"msg": "解绑成功"
})
*/
public function houseUnbind()
{
$user = $this->auth->getUser();
$house_id = $this->request->param('house_id');
empty($house_id) && $this->error('缺少必要参数');
$info = UserHouse::get(['user_id'=>$user['id'],'house_id'=>$house_id]);
empty($info) && $this->error('绑定信息不存在');
$info['status'] != 2 && $this->error('您还没有绑定该小区,无法解绑');
// 启动事务
Db::startTrans();
try{
$info->delete();
$user->house_id = 0;
$user->save();
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
$this->error($e->getMessage());
}
$this->success('解绑成功');
}
/**
* @ApiTitle (个人中心-我的活动)
* @ApiSummary (个人中心-我的活动)
* @ApiMethod (POST)
... ... @@ -175,18 +290,24 @@ class User extends Api
* @ApiMethod (POST)
* @ApiRoute (/api/user/activityInfo)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="house_join_id", type="string", required=true, description="报名ID")
* @ApiParams (name="house_join_id", type="inter", required=true, description="报名ID")
* @ApiReturn ({
"code": 1,
"msg": "成功",
"time": "1598673648",
"data": [{
"id": 20, //报名ID
"time": "1598684603",
"data": {
"order_no": "2020082852995199", //订单号
"pay_price": "60.00", //合计费用
"price": "30.00", // 报名费用
"total_num": 2, // 报名数量
"title": "澳大利亚政府这人品:我只要不承认,就不是针对中国", //活动标题
"content": "", //活动内容
"activity_time": "2020-08-28-2020-08-28" //活动时间
}]
"content": "", //活动描述
"spec_type": "2", //活动规格:0=无规格-免费,1=单规格,2=多规格
"activity_attr": "", //规格
"activity_time": "2020-08-28-2020-08-28", //活动时间
"join_time": "2020-08-28 18:45:56" //报名时间
}
})
*/
public function activityInfo()
... ... @@ -195,11 +316,50 @@ class User extends Api
empty($house_join_id) && $this->error('请传入必填参数');
$info = HouseJoin::get(['user_id'=>$this->auth->id,'id'=>$house_join_id]);
empty($info) && $this->error('活动信息不存在');
$info['activity_time'] = date('Y-m-d',$info['start_time']).'-'.date('Y-m-d',$info['end_time']);
$data = [
// 活动时间
'activity_time' => date('Y-m-d',$info['start_time']).'-'.date('Y-m-d',$info['end_time']),
// 报名时间
'join_time' => date('Y-m-d H:i:s',!empty($info['pay_time']) ? $info['pay_time'] : $info['createtime'])
];
$info = $info->visible([
'title',
]);
$this->success('成功', $info);
'content',
'spec_type',
'price',
'order_no',
'total_num',
'pay_price',
'activity_attr'
])->toArray();
$this->success('成功', array_merge($info,$data));
}
/**
* @ApiTitle (个人中心-收益明细)
* @ApiSummary (个人中心-收益明细)
* @ApiMethod (POST)
* @ApiRoute (/api/user/moneyLog)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1598692386",
"data": [{
"memo": "测试", //标题
"money": "10.00", //金额
"createtime": "2020-08-29 17:07:56" // 时间
}]
})
*/
public function moneyLog()
{
$list = UserMoneyLog::where('user_id',$this->auth->id)
->field("memo,money,from_unixtime(createtime, '%Y-%m-%d %H:%i:%S') createtime")
->select();
$this->success('成功',$list);
}
/**
... ...