|
@@ -6,11 +6,14 @@ use app\common\enum\GoodsEnum;
|
|
|
use app\common\enum\PayEnum;
|
|
use app\common\enum\PayEnum;
|
|
|
use app\common\enum\WorkEnum;
|
|
use app\common\enum\WorkEnum;
|
|
|
use app\common\logic\BaseLogic;
|
|
use app\common\logic\BaseLogic;
|
|
|
|
|
+use app\common\model\dict\DictData;
|
|
|
use app\common\model\goods\Goods;
|
|
use app\common\model\goods\Goods;
|
|
|
|
|
+use app\common\model\master_worker\MasterWorker;
|
|
|
use app\common\model\orders\RechargeOrder;
|
|
use app\common\model\orders\RechargeOrder;
|
|
|
use app\common\model\recharge\OrderGoods;
|
|
use app\common\model\recharge\OrderGoods;
|
|
|
use app\common\model\works\ServiceWork;
|
|
use app\common\model\works\ServiceWork;
|
|
|
use think\Exception;
|
|
use think\Exception;
|
|
|
|
|
+use think\facade\Db;
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -27,6 +30,7 @@ class ServiceOrderLogic extends BaseLogic
|
|
|
*/
|
|
*/
|
|
|
public static function submitOrder($params)
|
|
public static function submitOrder($params)
|
|
|
{
|
|
{
|
|
|
|
|
+ Db::startTrans();
|
|
|
try {
|
|
try {
|
|
|
$goods = Goods::findOrEmpty($params['goods_id']);
|
|
$goods = Goods::findOrEmpty($params['goods_id']);
|
|
|
if($goods->isEmpty()){
|
|
if($goods->isEmpty()){
|
|
@@ -105,13 +109,68 @@ class ServiceOrderLogic extends BaseLogic
|
|
|
'fee_schedule' => $goods['fee_schedule'],
|
|
'fee_schedule' => $goods['fee_schedule'],
|
|
|
'goods_status' => $goods['goods_status'],
|
|
'goods_status' => $goods['goods_status'],
|
|
|
]);
|
|
]);
|
|
|
-
|
|
|
|
|
- return [
|
|
|
|
|
- 'order_id' => (int)$order['id'],
|
|
|
|
|
- ];
|
|
|
|
|
|
|
+ Db::commit();
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
self::setError($e->getMessage());
|
|
self::setError($e->getMessage());
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ return [
|
|
|
|
|
+ 'order_id' => (int)$order['id'],
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取详情
|
|
|
|
|
+ * @param $params
|
|
|
|
|
+ * @return array|false
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function detail($params)
|
|
|
|
|
+ {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $order_info = \app\common\model\recharge\RechargeOrder::with(['order_goods'=>function ($query) {
|
|
|
|
|
+ $query->visible(['goods_name','goods_image','goods_number','good_unit']);
|
|
|
|
|
+ },'service_work'=>function ($query) {
|
|
|
|
|
+ $query->visible(['service_status','appointment_time','address','master_worker_id']);
|
|
|
|
|
+ }])
|
|
|
|
|
+ ->visible(['id','sn','order_total','order_amount','pay_status','create_time','title','work_id'])
|
|
|
|
|
+ ->where([
|
|
|
|
|
+ 'order_type' => 0,
|
|
|
|
|
+ 'user_id' => $params['user_id'],
|
|
|
|
|
+ 'sn'=>$params['sn']
|
|
|
|
|
+ ])->findOrEmpty()->toArray();
|
|
|
|
|
+ $order_info['master_worker'] = [
|
|
|
|
|
+ 'real_name'=>'',
|
|
|
|
|
+ 'worker_number'=>'',
|
|
|
|
|
+ 'mobile'=>'',
|
|
|
|
|
+ 'worker_exp'=>''
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
|
|
+ //获取师傅参数
|
|
|
|
|
+ if(!empty($order_info['service_work']['master_worker_id'])){
|
|
|
|
|
+ $worker = MasterWorker::find($order_info['service_work']['master_worker_id']);
|
|
|
|
|
+ $order_info['master_worker']['real_name'] = $worker['real_name'];
|
|
|
|
|
+ $order_info['master_worker']['worker_number'] = $worker['worker_number'];
|
|
|
|
|
+ $order_info['master_worker']['mobile'] = $worker['mobile'];
|
|
|
|
|
+ $order_info['master_worker']['worker_exp'] = DictData::where(['type_value'=>'worker_exp_type','value'=>$worker->worker_register->maintain_exp_type])->value('name');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //搜索当前工单下的所有订单记录
|
|
|
|
|
+ $order_info['pay_orders'] = \app\common\model\recharge\RechargeOrder::where(['work_id'=>$order_info['work_id']])->field('pay_status,payment_type,pay_way,pay_time,order_amount')->order('id asc')->select()->toArray();
|
|
|
|
|
+ $pay_status_data = DictData::where('type_value','pay_status')->column('name','value');
|
|
|
|
|
+ $payment_type_data = DictData::where('type_value','payment_type')->column('name','value');
|
|
|
|
|
+ $pay_way_data = DictData::where('type_value','pay_way')->column('name','value');
|
|
|
|
|
+ foreach ($order_info['pay_orders'] as $k=>&$v){
|
|
|
|
|
+ $v['pay_status_name'] = $pay_status_data[$v['pay_status']];
|
|
|
|
|
+ $v['payment_type_name'] = $payment_type_data[$v['payment_type']];
|
|
|
|
|
+ $v['pay_way_name'] = $pay_way_data[$v['pay_way']];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $order_info;
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (\Exception $e) {
|
|
|
|
|
+ self::setError($e->getMessage());
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|