GoodsValidate.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeshop100%开源免费商用商城系统
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | 商业版本务必购买商业授权,以免引起法律纠纷
  8. // | 禁止对系统程序代码以任何目的,任何形式的再发布
  9. // | gitee下载:https://gitee.com/likeshop_gitee
  10. // | github下载:https://github.com/likeshop-github
  11. // | 访问官网:https://www.likeshop.cn
  12. // | 访问社区:https://home.likeshop.cn
  13. // | 访问手册:http://doc.likeshop.cn
  14. // | 微信公众号:likeshop技术社区
  15. // | likeshop团队 版权所有 拥有最终解释权
  16. // +----------------------------------------------------------------------
  17. // | author: likeshopTeam
  18. // +----------------------------------------------------------------------
  19. namespace app\businessapi\validate;
  20. use app\common\model\Goods;
  21. use app\common\validate\BaseValidate;
  22. /**
  23. * 商品验证
  24. * Class GoodsValidate
  25. * @package app\businessapi\validate
  26. */
  27. class GoodsValidate extends BaseValidate
  28. {
  29. protected $rule = [
  30. 'id' => 'require|checkGoods',
  31. // 'status' => 'require|in:1,2',
  32. 'spec_value_list' => 'require|array|checkSpec',
  33. ];
  34. protected $message = [
  35. 'id.require' => '请选择商品',
  36. 'status.require' => '请选择商品状态',
  37. 'status.in' => '商品状态错误',
  38. 'spec_value_list.require' => '请选择商品规格',
  39. 'spec_value_list.array' => '商品规格数据错误'
  40. ];
  41. protected function sceneId()
  42. {
  43. return $this->only(['id']);
  44. }
  45. protected function sceneEdit()
  46. {
  47. return $this->only(['id','spec_value_list']);
  48. }
  49. protected function checkGoods($value,$rule,$data)
  50. {
  51. $goods = Goods::findOrEmpty($value);
  52. if($goods->isEmpty()){
  53. return '商品不存在';
  54. }
  55. return true;
  56. }
  57. protected function checkSpec($value,$rule,$data)
  58. {
  59. foreach ($value as $spec)
  60. {
  61. if(!isset($spec['id']) || empty($spec['id'])){
  62. return '商品规格id错误';
  63. }
  64. if(empty($spec['sell_price']) || $spec['sell_price'] < 0){
  65. return '商品售价错误';
  66. }
  67. if($spec['cost_price'] < 0){
  68. return '商品成本价不能小于零';
  69. }
  70. if($spec['stock'] < 0){
  71. return '商品库存不能小于零';
  72. }
  73. }
  74. return true;
  75. }
  76. }