PropertyOrderLogic.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeadmin快速开发前后端分离管理后台(PHP版)
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
  8. // | github下载:https://github.com/likeshop-github/likeadmin
  9. // | 访问官网:https://www.likeadmin.cn
  10. // | likeadmin团队 版权所有 拥有最终解释权
  11. // +----------------------------------------------------------------------
  12. // | author: likeadminTeam
  13. // +----------------------------------------------------------------------
  14. namespace app\api\logic;
  15. use app\adminapi\logic\property\PropertyHeadLogic;
  16. use app\adminapi\logic\property\PropertyUserLogic;
  17. use app\common\model\property\PropertyHead;
  18. use app\common\model\property\PropertyOrder;
  19. use app\common\logic\BaseLogic;
  20. use think\Exception;
  21. use think\facade\Db;
  22. use think\facade\Log;
  23. /**
  24. * PropertyOrder逻辑
  25. * Class PropertyOrderLogic
  26. * @package app\api\logic
  27. */
  28. class PropertyOrderLogic extends BaseLogic
  29. {
  30. public static function bind(array $params): bool
  31. {
  32. // 判断户主是否存在 返回户主id
  33. $propertyUserId = PropertyUserLogic::getPropertyUserIdByMobile($params);
  34. Db::startTrans();
  35. try {
  36. $property = PropertyHead::where('id',$params['property_head_id'])->findOrEmpty();
  37. $address = $property['address'];
  38. if(empty($property)){
  39. throw new Exception('物业代理不存在');
  40. }
  41. $order = PropertyOrder::where(['property_user_id'=>$propertyUserId,'property_head_id'=>$params['property_head_id'],'order_status'=>0,'work_id'=>0])->order('id desc')->findOrEmpty();
  42. Log::info('物业ID'.$order);
  43. if($order->isEmpty()){
  44. PropertyOrder::create([
  45. 'property_head_id' => $params['property_head_id'],
  46. 'property_user_id' => $propertyUserId,
  47. 'remark' => $params['remark']??'',
  48. 'address' => $address??'',
  49. 'order_status' => 0,
  50. 'work_id' => 0,
  51. ]);
  52. }
  53. Db::commit();
  54. return true;
  55. } catch (\Exception $e) {
  56. Db::rollback();
  57. self::setError($e->getMessage());
  58. return false;
  59. }
  60. }
  61. /**
  62. * @notes 添加 - 下物业单
  63. * @param array $params
  64. * @return bool
  65. */
  66. public static function add(array $params)
  67. {
  68. // 判断户主是否存在 返回户主id
  69. $propertyUserId = PropertyUserLogic::getPropertyUserIdByMobile($params);
  70. Db::startTrans();
  71. try {
  72. $propertyAddress = PropertyHead::where('id',$params['property_head_id'])->value('address');
  73. $address = $params['address']?(($propertyAddress?$propertyAddress.$params['address']:'')):'';
  74. $res = PropertyOrder::create([
  75. 'property_head_id' => $params['property_head_id'],
  76. 'property_user_id' => $propertyUserId,
  77. 'remark' => $params['remark']??'',
  78. 'address' => $address??'',
  79. 'order_status' => isset($params['order_status'])?$params['order_status']:0,
  80. 'work_id' => isset($params['work_id'])?$params['work_id']:0,
  81. ]);
  82. Db::commit();
  83. $propertyHeadInfo = PropertyHeadLogic::detail(['id'=>$params['property_head_id']]);
  84. $propertyUserInfo = PropertyUserLogic::detail(['id'=>$propertyUserId]);
  85. event('Notice', [
  86. 'scene_id' => 125,
  87. 'params' => [
  88. 'user_id' => 0,
  89. 'thing2' => $propertyHeadInfo['village_name'],
  90. 'thing8' => $propertyUserInfo['householder_name'],
  91. 'phone_number11' => asteriskString($propertyUserInfo['householder_mobile']),
  92. ]
  93. ]);
  94. return $res->id;
  95. } catch (\Exception $e) {
  96. Db::rollback();
  97. self::setError($e->getMessage());
  98. return false;
  99. }
  100. }
  101. }