You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

128 lines
3.2 KiB

  1. <?php
  2. /**
  3. * 数据库表类 prod_category_info
  4. * ============================================================================
  5. * * 版权所有 蜘蛛出行 * *
  6. * 网站地址: http://www.zhizhuchuxing.com
  7. * ----------------------------------------------------------------------------
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
  9. * 使用;不允许对程序代码以任何形式任何目的的再发布。
  10. * ============================================================================
  11. * Author By: 倪宗锋
  12. * PhpStorm LoginController.php
  13. * Create By 2017/06/29 15:33 $
  14. */
  15. namespace common\models;
  16. use yii\db\ActiveRecord;
  17. use yii\db\Exception;
  18. use yii\db\Expression;
  19. /**
  20. * 数据库表类 prod_category_info.
  21. * @property integer $pro_cate_id
  22. * @property integer $comment_cnt
  23. */
  24. class ProdCategoryInfo extends ActiveRecord
  25. {
  26. /**
  27. * @inheritdoc
  28. */
  29. public static function tableName()
  30. {
  31. return 'prod_category_info';
  32. }
  33. /**
  34. * @inheritdoc
  35. */
  36. public function rules()
  37. {
  38. return [
  39. [['pro_cate_id'], 'required'],
  40. [['pro_cate_id', 'comment_cnt'], 'integer'],
  41. ];
  42. }
  43. /**
  44. * @inheritdoc
  45. */
  46. public function attributeLabels()
  47. {
  48. return [
  49. 'pro_cate_id' => 'Pro Cate ID',
  50. 'comment_cnt' => 'Comment Cnt',
  51. ];
  52. }
  53. /**
  54. * Des:修改评论数量
  55. * Name: addCommentCnt
  56. * @param $prod_ids
  57. * @return bool
  58. * @author 倪宗锋
  59. */
  60. public function addCommentCnt($prod_ids)
  61. {
  62. $prods = explode(',', $prod_ids);
  63. foreach ($prods as $prod_id) {
  64. $info = $this->getInfoById($prod_id);//获取详情
  65. if (empty($info['pro_cate_id'])) {//如果没有记录则 添加一条记录
  66. $data = [
  67. 'pro_cate_id' => $prod_id,
  68. 'comment_cnt' => 1
  69. ];
  70. $flag = $this->addInfo($data);
  71. if($flag == false) {
  72. return false;
  73. }
  74. } else {//更新评论数据
  75. $value = [
  76. 'comment_cnt' => new Expression(" comment_cnt + 1")
  77. ];
  78. $self = clone $this;
  79. $self->isNewRecord = true;
  80. $self->setAttributes($value);
  81. $flag = $self->save();
  82. if($flag == false) {
  83. return false;
  84. }
  85. }
  86. }
  87. return true;
  88. }
  89. /**
  90. * Des:根据ID获取详细信息
  91. * Name: getInfoById
  92. * @param $prod_id
  93. * @return array
  94. * @author 倪宗锋
  95. */
  96. public function getInfoById($prod_id)
  97. {
  98. $info = self::find()
  99. ->where(['=', 'pro_cate_id', $prod_id])
  100. ->asArray()
  101. ->one();
  102. return $info;
  103. }
  104. /**
  105. * Des:添加记录
  106. * Name: addInfo
  107. * @param $param
  108. * @return bool
  109. * @author 倪宗锋
  110. */
  111. public function addInfo($param)
  112. {
  113. $self = clone $this;
  114. $self->setAttributes($param);
  115. $flag = $self->save();
  116. return $flag;
  117. }
  118. }