Business.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. namespace app\user\controller;
  3. use app\user\model\Headquarters;use think\App;
  4. use think\facade\Validate;
  5. class Business extends Base{
  6. public function __construct(App $app) {
  7. parent::__construct($app);
  8. $this->model=new \app\user\model\Business();
  9. }
  10. /**
  11. * @param $page 页码
  12. * @param $size 每页显示条数
  13. * @param $company 公司名称
  14. * @param $status 状态
  15. * @param $createrid 创建人id
  16. * @param $start 开始时间
  17. * @param $end 结束时间
  18. * @param $company_name 公司名称
  19. * @return \think\Response|\think\response\Json
  20. * @throws \think\db\exception\DbException
  21. */
  22. public function list(){
  23. $param = $this->request->param([
  24. 'page' => 1,
  25. 'size' => 10,
  26. 'company' => '',
  27. 'status' => '',
  28. 'createrid' => '',
  29. 'start' => '',
  30. 'end' => '',
  31. 'company_name' => '',
  32. ], 'post', 'trim');
  33. $where = [["is_del","=",0]];
  34. if($param['company']!='')$where[]=['company','like','%'.$param['company'].'%'];
  35. if($param['status']!='')$where[]=['status','=',$param['status']];
  36. if($param['createrid']!='')$where[]=['createrid','=',$param['createrid']];
  37. if($param['start']!='')$where[]=['create_time','>=',startTime($param['start'])];
  38. if($param['end']!='')$where[]=['create_time','<=',endTime($param['end'])];
  39. $list= $this->model->where($where)->order('id desc')->paginate(["list_rows"=>$param['size'],
  40. "page"=>$param['page']]);
  41. return success('获取成功',["list"=>$list->items(),"count"=>$list->total()]);
  42. }
  43. /**
  44. * @param $company 公司名称
  45. * @param $inv_addr 公司地址
  46. * @param $mobile 公司联系方式
  47. * @param $inv_code 纳税编号
  48. * @param $inv_bank 开户行
  49. * @param $inv_bankNo 银行卡号
  50. * @param $license_img 营业执照
  51. * @param $inv_time 成立日期
  52. * @param $inv_legaler 法人
  53. * @param $type 类型
  54. * @param $contactor 联系人
  55. * @param $addr 联系地址
  56. * @return \think\Response|\think\response\Json
  57. **/
  58. public function create(){
  59. $param = $this->request->param(["company"=>"","inv_addr"=>"","mobile"=>"","inv_code"=>"","inv_bank"=>"",'is_del'=>'0',
  60. "inv_bankNo"=>"","license_img"=>"","inv_time"=>"","inv_legaler"=>"","type"=>"","contactor"=>"","addr"=>"","inv_scope"=>""
  61. ,"invoice_title"=>""],"post","trim");
  62. $valid =Validate::rule([
  63. 'company|业务公司名称' => 'require|max:255|unique:app\user\model\Business,company^is_del',
  64. 'inv_addr|公司地址' => 'require|max:255',
  65. 'mobile|公司联系方式' => 'require|max:255',
  66. 'inv_code|公司纳税编号' => 'require|max:255',
  67. 'inv_bank|开户行' => 'require|max:255',
  68. 'inv_bankNo|银行账户' => 'require|max:255',
  69. 'license_img|营业执照' => 'require|url',
  70. 'inv_time|成立日期' => 'require|max:255',
  71. 'inv_legaler|法人' => 'require|max:255',
  72. 'type|类型' => 'require|max:255',
  73. 'contactor|联系人' => 'require|max:255',
  74. 'addr|地址' => 'require|max:255',
  75. 'inv_scope|经营范围' => 'require|max:255',
  76. "invoice_title|发票抬头"=>"require|max:255"
  77. ]);
  78. if(!$valid->check($param)){
  79. return error($valid->getError());
  80. }
  81. $this->model->startTrans();
  82. try{
  83. $data = [
  84. 'company' => $param['company'],
  85. 'companyNo' =>makeNo('GS'),
  86. 'inv_code' =>$param['inv_code'],
  87. 'type' => $param['type'],
  88. 'inv_legaler' => $param['inv_legaler'],
  89. 'inv_time' => $param['inv_time'],
  90. 'inv_addr' => $param['inv_addr'],
  91. 'inv_bank' => $param['inv_bank'],
  92. 'inv_bankNo' => $param['inv_bankNo'],
  93. 'invoice_title' => $param['invoice_title'],
  94. 'contactor' => $param['contactor'],
  95. 'mobile' => $param['mobile'],
  96. 'addr' => $param['addr'],
  97. 'creater' => $this->uname,
  98. 'createrid' => $this->uid,
  99. 'inv_scope' => $param['inv_scope'],
  100. 'license_img' =>$param['license_img'],
  101. ];
  102. $model = $this->model->create($data);
  103. if($model->isEmpty())throw new \Exception('业务公司创建失败');
  104. $model->updater=$this->uname;
  105. $model->updaterid=$this->uid;
  106. $hqcreate= Headquarters::createInfo($model,1);
  107. if (!$hqcreate)throw new \Exception('业务公司信息创建失败');
  108. $this->model->commit();
  109. }catch (\Exception $exception){
  110. $this->model->rollback();
  111. return error($exception->getMessage());
  112. }
  113. return success('添加成功');
  114. }
  115. /**
  116. * @param $id
  117. * @param $inv_addr
  118. * @param $inv_code
  119. * @param $inv_bank
  120. * @param $inv_bankNo
  121. * @param $invoice_title
  122. * @return \think\Response|\think\response\Json
  123. */
  124. public function save(){
  125. $param = $this->request->param(["id"=>"","inv_addr"=>"","inv_code"=>"","inv_bank"=>"",'is_del'=>'0',
  126. "inv_bankNo"=>"" ,"invoice_title"=>""],"post","trim");
  127. $valid =Validate::rule([
  128. 'id|id' => 'require|integer',
  129. 'inv_addr|公司地址' => 'require|max:255',
  130. 'inv_code|公司纳税编号' => 'require|max:255',
  131. 'inv_bank|开户行' => 'require|max:255',
  132. 'inv_bankNo|银行账户' => 'require|max:255',
  133. 'invoice_title|发票抬头' => 'require|max:255'
  134. ]);
  135. if(!$valid->check($param)) return error($valid->getError());
  136. $model = $this->model->findOrEmpty($param['id']);
  137. if($model->isEmpty())return error('数据不存在');
  138. $this->model->startTrans();
  139. try {
  140. $model->inv_addr = $param['inv_addr'];
  141. $model->inv_code = $param['inv_code'];
  142. $model->inv_bank = $param['inv_bank'];
  143. $model->inv_bankNo = $param['inv_bankNo'];
  144. $model->invoice_title = $param['invoice_title'];
  145. if(!$model->save())throw new \Exception('保存失败');
  146. $model->updater=$this->uname;
  147. $model->updaterid=$this->uid;
  148. $hqcreate= Headquarters::createInfo($model,1);
  149. if (!$hqcreate)throw new \Exception('业务公司信息创建失败');
  150. $this->model->commit();
  151. }catch (\Exception $exception){
  152. $this->model->rollback();
  153. return error($exception->getMessage());
  154. }
  155. return success('保存成功');
  156. }
  157. public function delete(){
  158. $param = $this->request->param(["id"=>""],"post","trim");
  159. $valid =Validate::rule([
  160. 'id|id' => 'require|integer',
  161. ]);
  162. if(!$valid->check($param)) return error($valid->getError());
  163. $model = $this->model->findOrEmpty($param['id']);
  164. if($model->isEmpty())return error('数据不存在');
  165. if($model->is_del == 1)return error('数据已删除');
  166. $model->is_del =1;
  167. if($model->save()){
  168. $headquarters = new \app\user\model\Headquarters();
  169. $headquarters->update([
  170. 'is_del'=>1,
  171. 'updater'=>$this->uname,
  172. 'updaterid'=>$this->uid,
  173. ],['code'=>$model->companyNo]);
  174. }
  175. return success('删除成功');
  176. }
  177. }