UserPerf.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <?php
  2. namespace common\models;
  3. use common\helpers\user\Info;
  4. use Yii;
  5. /**
  6. * This is the model class for table "{{%USER_PERF}}".
  7. *
  8. * @property string $ID ID
  9. * @property string $USER_ID 会员ID
  10. * @property string $PV_PCS_ZC 个人注册单累计
  11. * @property string $PV_PCS_YH 个人优惠单累计
  12. * @property string $PV_PCS_ZG 个人增购单累计
  13. * @property string $PV_PCS_LS 个人零售单累计
  14. * @property string $PV_PCS_FX 个人复销单累计
  15. * @property string $PV_1L 一市场累计业绩
  16. * @property string $PV_2L 二市场累计业绩
  17. * @property string $PV_3L 三市场累计业绩
  18. * @property string $PV_4L 四市场累计业绩
  19. * @property string $PV_5L 五市场累计业绩
  20. * @property int $CREATED_AT 创建时间
  21. * @property string $PV_PSS 推荐团队累计业绩
  22. * @property string $SURPLUS_1L 一市场结余业绩
  23. * @property string $SURPLUS_1L_ZC 一市场首购结余业绩
  24. * @property string $SURPLUS_1L_FX 一市场复消结余业绩
  25. * @property string $SURPLUS_2L 二市场结余业绩
  26. * @property string $SURPLUS_2L_ZC 二市场首购结余业绩
  27. * @property string $SURPLUS_2L_FX 二市场复消结余业绩
  28. * @property string $SURPLUS_3L 三市场结余业绩
  29. * @property string $SURPLUS_3L_ZC 三市场首购结余业绩
  30. * @property string $SURPLUS_3L_FX 三市场复消结余业绩
  31. * @property string $SURPLUS_4L 四市场结余业绩
  32. * @property string $SURPLUS_4L_ZC 四市场首购结余业绩
  33. * @property string $SURPLUS_4L_FX 四市场复消结余业绩
  34. * @property string $SURPLUS_5L 五市场结余业绩
  35. * @property string $SURPLUS_5L_ZC 五市场首购结余业绩
  36. * @property string $SURPLUS_5L_FX 五市场复消结余业绩
  37. * @property string $VIP_SURPLUS_1L_ZC VIP一市场剩余报单业绩
  38. * @property string $VIP_SURPLUS_2L_ZC VIP二市场剩余报单业绩
  39. * @property string $VIP_SURPLUS_3L_ZC VIP三市场剩余报单业绩
  40. * @property string $VIP_SURPLUS_4L_ZC VIP四市场剩余报单业绩
  41. * @property string $VIP_SURPLUS_5L_ZC VIP五市场剩余报单业绩
  42. * @property string $PV_PSS_TOTAL 推荐团队累计业绩
  43. */
  44. class UserPerf extends \common\components\ActiveRecord
  45. {
  46. /**
  47. * @inheritdoc
  48. */
  49. public static function tableName()
  50. {
  51. return '{{%USER_PERF}}';
  52. }
  53. /**
  54. * @inheritdoc
  55. */
  56. public function rules()
  57. {
  58. return [
  59. [['USER_ID', 'CREATED_AT'], 'required'],
  60. [['PV_PCS_ZC', 'PV_PCS_YH', 'PV_PCS_ZG', 'PV_PCS_LS', 'PV_PCS_FX', 'PV_1L', 'PV_2L', 'PV_3L', 'PV_4L', 'PV_5L', 'PV_PSS', 'SURPLUS_1L', 'SURPLUS_1L_ZC', 'SURPLUS_1L_FX', 'SURPLUS_2L', 'SURPLUS_2L_ZC', 'SURPLUS_2L_FX', 'SURPLUS_3L', 'SURPLUS_3L_ZC', 'SURPLUS_3L_FX', 'SURPLUS_4L', 'SURPLUS_4L_ZC', 'SURPLUS_4L_FX', 'SURPLUS_5L', 'SURPLUS_5L_ZC', 'SURPLUS_5L_FX', 'VIP_SURPLUS_1L_ZC', 'VIP_SURPLUS_2L_ZC', 'VIP_SURPLUS_3L_ZC', 'VIP_SURPLUS_4L_ZC', 'VIP_SURPLUS_5L_ZC', 'PV_PSS_TOTAL'], 'number'],
  61. [['CREATED_AT'], 'integer'],
  62. [['USER_ID', 'ID'], 'string', 'max' => 32],
  63. [['USER_ID'], 'unique'],
  64. ];
  65. }
  66. /**
  67. * @inheritdoc
  68. */
  69. public function attributeLabels()
  70. {
  71. return [
  72. 'ID' => 'ID',
  73. 'USER_ID' => '会员ID',
  74. 'PV_PCS_ZC' => '个人注册单累计',
  75. 'PV_PCS_YH' => '个人优惠单累计',
  76. 'PV_PCS_ZG' => '个人增购单累计',
  77. 'PV_PCS_LS' => '个人零售单累计',
  78. 'PV_PCS_FX' => '个人复销单累计',
  79. 'PV_1L' => '一市场累计业绩',
  80. 'PV_2L' => '二市场累计业绩',
  81. 'PV_3L' => '三市场累计业绩',
  82. 'PV_4L' => '四市场累计业绩',
  83. 'PV_5L' => '五市场累计业绩',
  84. 'CREATED_AT' => '创建时间',
  85. 'PV_PSS' => '推荐团队累计业绩',
  86. 'SURPLUS_1L' => '一市场结余业绩',
  87. 'SURPLUS_1L_ZC' => '一市场首购结余业绩',
  88. 'SURPLUS_1L_FX' => '一市场复消结余业绩',
  89. 'SURPLUS_2L' => '二市场结余业绩',
  90. 'SURPLUS_2L_ZC' => '二市场首购结余业绩',
  91. 'SURPLUS_2L_FX' => '二市场复消结余业绩',
  92. 'SURPLUS_3L' => '三市场结余业绩',
  93. 'SURPLUS_3L_ZC' => '三市场首购结余业绩',
  94. 'SURPLUS_3L_FX' => '三市场复消结余业绩',
  95. 'SURPLUS_4L' => '四市场结余业绩',
  96. 'SURPLUS_4L_ZC' => '四市场首购结余业绩',
  97. 'SURPLUS_4L_FX' => '四市场复消结余业绩',
  98. 'SURPLUS_5L' => '五市场结余业绩',
  99. 'SURPLUS_5L_ZC' => '五市场首购结余业绩',
  100. 'SURPLUS_5L_FX' => '五市场复消结余业绩',
  101. 'VIP_SURPLUS_1L_ZC' => 'VIP一市场剩余报单业绩',
  102. 'VIP_SURPLUS_2L_ZC' => 'VIP二市场剩余报单业绩',
  103. 'VIP_SURPLUS_3L_ZC' => 'VIP三市场剩余报单业绩',
  104. 'VIP_SURPLUS_4L_ZC' => 'VIP四市场剩余报单业绩',
  105. 'VIP_SURPLUS_5L_ZC' => 'VIP五市场剩余报单业绩',
  106. 'PV_PSS_TOTAL' => '推荐团队累计业绩',
  107. ];
  108. }
  109. /**
  110. * 用户累计业绩(默认主库)
  111. * @param $userId
  112. * @param string $db
  113. * @param bool $isSlaves
  114. * @return array|null|\yii\db\ActiveRecord
  115. */
  116. public static function getOneUserPerf($userId, $db = 'db', $isSlaves = false){
  117. $data = static::find($isSlaves, $db)->select('USER_ID,PV_PCS_ZC,PV_PCS_FX,PV_PSS,PV_1L,PV_2L,PV_3L,PV_4L,PV_5L,SURPLUS_1L,SURPLUS_2L,SURPLUS_3L,SURPLUS_4L,SURPLUS_5L,SURPLUS_1L_ZC,SURPLUS_2L_ZC,SURPLUS_3L_ZC,SURPLUS_4L_ZC,SURPLUS_5L_ZC,SURPLUS_1L_FX,SURPLUS_2L_FX,SURPLUS_3L_FX,SURPLUS_4L_FX,SURPLUS_5L_FX,VIP_SURPLUS_1L_ZC,VIP_SURPLUS_2L_ZC,VIP_SURPLUS_3L_ZC,VIP_SURPLUS_4L_ZC,VIP_SURPLUS_5L_ZC,PV_PSS_TOTAL')->where('USER_ID=:USER_ID', [':USER_ID'=>$userId])->asArray()->one();
  118. if(!$data){
  119. $data = [
  120. 'USER_ID' => $userId,
  121. 'PV_PCS_ZC' => 0,
  122. 'PV_PCS_FX' => 0,
  123. 'PV_PSS' => 0,
  124. 'PV_1L' => 0,
  125. 'PV_2L' => 0,
  126. 'PV_3L' => 0,
  127. 'PV_4L' => 0,
  128. 'PV_5L' => 0,
  129. 'SURPLUS_1L' => 0,
  130. 'SURPLUS_2L' => 0,
  131. 'SURPLUS_3L' => 0,
  132. 'SURPLUS_4L' => 0,
  133. 'SURPLUS_5L' => 0,
  134. 'SURPLUS_1L_ZC' => 0,
  135. 'SURPLUS_2L_ZC' => 0,
  136. 'SURPLUS_3L_ZC' => 0,
  137. 'SURPLUS_4L_ZC' => 0,
  138. 'SURPLUS_5L_ZC' => 0,
  139. 'SURPLUS_1L_FX' => 0,
  140. 'SURPLUS_2L_FX' => 0,
  141. 'SURPLUS_3L_FX' => 0,
  142. 'SURPLUS_4L_FX' => 0,
  143. 'SURPLUS_5L_FX' => 0,
  144. 'VIP_SURPLUS_1L_ZC' => 0,
  145. 'VIP_SURPLUS_2L_ZC' => 0,
  146. 'VIP_SURPLUS_3L_ZC' => 0,
  147. 'VIP_SURPLUS_4L_ZC' => 0,
  148. 'VIP_SURPLUS_5L_ZC' => 0,
  149. 'PV_PSS_TOTAL' => 0,
  150. ];
  151. }
  152. return $data;
  153. }
  154. /**
  155. * 操作日志记录条件
  156. * @return array
  157. */
  158. public function attrLabelsWithLogType(){
  159. return [
  160. 'USER_ID' => '会员ID',
  161. 'PV_1L' => '一市场累计业绩',
  162. 'PV_2L' => '二市场累计业绩',
  163. 'PV_3L' => '三市场累计业绩',
  164. 'PV_4L' => '四市场累计业绩',
  165. 'PV_5L' => '五市场累计业绩',
  166. 'PV_PSS' => '推荐团队累计业绩',
  167. 'SURPLUS_1L' => '一市场综合结余业绩',
  168. 'SURPLUS_1L_ZC' => '一市场综合报单业绩',
  169. 'SURPLUS_1L_FX' => '一市场复消结余业绩',
  170. 'SURPLUS_2L' => '二市场综合结余业绩',
  171. 'SURPLUS_2L_ZC' => '二市场综合报单业绩',
  172. 'SURPLUS_2L_FX' => '二市场复消结余业绩',
  173. ];
  174. }
  175. /**
  176. * 获取一名会员余额
  177. * @param $userId
  178. * @return array|null
  179. */
  180. public static function getPvByUserId($userId){
  181. $data = self::findOneAsArray('USER_ID=:USER_ID', [':USER_ID'=>$userId], 'USER_ID,PV_1L,PV_2L,PV_3L,PV_4L,PV_5L,PV_PSS');
  182. if(!$data){
  183. $data = [
  184. 'USER_ID' => $userId,
  185. 'PV_1L' => 0,
  186. 'PV_2L' => 0,
  187. 'PV_3L' => 0,
  188. 'PV_4L' => 0,
  189. 'PV_5L' => 0,
  190. 'PV_PSS' => 0,
  191. ];
  192. }
  193. return $data;
  194. }
  195. /**
  196. * 获取当前结余业绩
  197. * @param $userId
  198. * @return array|\yii\db\ActiveRecord|null
  199. * @throws \yii\db\Exception
  200. */
  201. public static function getPeriodSurplusPerf($userId){
  202. $result = static::findUseDbCalc()->select('SURPLUS_1L,SURPLUS_2L,SURPLUS_3L,SURPLUS_4L,SURPLUS_5L')->where('USER_ID=:USER_ID', [':USER_ID'=>$userId])->asArray()->one();
  203. if(!$result){
  204. $result = [
  205. 'USER_ID' => $userId,
  206. 'SURPLUS_1L' => 0,
  207. 'SURPLUS_2L' => 0,
  208. 'SURPLUS_3L' => 0,
  209. 'SURPLUS_4L' => 0,
  210. 'SURPLUS_5L' => 0,
  211. 'SURPLUS_LS' => 0,
  212. ];
  213. }
  214. return $result;
  215. }
  216. /**
  217. * 查询会员结余业绩
  218. * @param $userId
  219. * @return array|null
  220. */
  221. public static function getPerfMarket($userId): ?array
  222. {
  223. return self::findOneAsArray('USER_ID=:USER_ID', [':USER_ID' => $userId], 'USER_ID,SURPLUS_1L,SURPLUS_1L_ZC,SURPLUS_1L_FX,SURPLUS_2L,SURPLUS_2L_ZC,SURPLUS_2L_FX');
  224. }
  225. }