PerfAudit.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. namespace common\models;
  3. use backendApi\modules\v1\models\Admin;
  4. use common\helpers\user\Info;
  5. use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
  6. use Yii;
  7. /**
  8. * This is the model class for table "{{%PERF_AUDIT}}".
  9. *
  10. * @property string $ID
  11. * @property string $USER_ID 会员ID
  12. * @property string $PV_1L 一市场累计
  13. * @property string $PV_2L 二市场累计
  14. * @property string $PV_3L 三市场累计
  15. * @property string $PV_4L 四市场累计
  16. * @property string $PV_5L 五市场累计
  17. * @property string $SURPLUS_1L 一市场结余
  18. * @property string $SURPLUS_2L 二市场结余
  19. * @property string $SURPLUS_3L 三市场结余
  20. * @property string $SURPLUS_4L 四市场结余
  21. * @property string $SURPLUS_5L 五市场结余
  22. * @property string $SURPLUS_LS 零售结余
  23. * @property int $PERF_TYPE 业绩类型
  24. * @property int $PERF_LOCATION 业绩区域
  25. * @property string $AMOUNT 调整金额
  26. * @property string $PERF_BEFORE 业绩调整前
  27. * @property string $PERF_AFTER 业绩调整后
  28. * @property int $PERIOD_NUM 调整期数
  29. * @property int $AUDIT_STATUS 审核状态
  30. * @property string $CREATE_ADMIN 创建管理员
  31. * @property string $REMARK 备注
  32. * @property string $AUDIT_ADMIN 审核管理员
  33. * @property int $CREATED_AT 创建时间
  34. * @property int $AUDITED_AT 审核时间
  35. */
  36. class PerfAudit extends \common\components\ActiveRecord
  37. {
  38. const PERF_TYPE_PV=1;
  39. const PERF_TYPE_SURPLUS=2;
  40. const CHANGE_PERF_TYPE = [
  41. self::PERF_TYPE_PV => '总网业绩',
  42. self::PERF_TYPE_SURPLUS => '大区剩余'
  43. ];
  44. const PERF_LOCATION_NAME = [
  45. 1=>'一市场',
  46. 2=>'二市场',
  47. 3=>'三市场',
  48. 4=>'四市场',
  49. 5=>'五市场',
  50. 6=>'虚拟零售区',
  51. ];
  52. /**
  53. * {@inheritdoc}
  54. */
  55. public static function tableName()
  56. {
  57. return '{{%PERF_AUDIT}}';
  58. }
  59. /**
  60. * {@inheritdoc}
  61. */
  62. public function rules()
  63. {
  64. return [
  65. [['USER_ID', 'CREATED_AT'], 'required'],
  66. [['PV_1L', 'PV_2L', 'PV_3L', 'PV_4L', 'PV_5L', 'SURPLUS_1L', 'SURPLUS_2L', 'SURPLUS_3L', 'SURPLUS_4L', 'SURPLUS_5L', 'SURPLUS_LS', 'PERF_BEFORE', 'PERF_AFTER', 'AMOUNT'], 'number'],
  67. [['PERF_TYPE', 'PERF_LOCATION', 'PERIOD_NUM', 'AUDIT_STATUS', 'CREATED_AT', 'AUDITED_AT'], 'integer'],
  68. [['ID', 'USER_ID', 'CREATE_ADMIN', 'AUDIT_ADMIN'], 'string', 'max' => 32],
  69. [['REMARK'], 'string', 'max' => 4000],
  70. [['ID'], 'unique'],
  71. ];
  72. }
  73. /**
  74. * {@inheritdoc}
  75. */
  76. public function attributeLabels()
  77. {
  78. return [
  79. 'ID' => 'ID',
  80. 'USER_ID' => '会员ID',
  81. 'PV_1L' => '一市场累计',
  82. 'PV_2L' => '二市场累计',
  83. 'PV_3L' => '三市场累计',
  84. 'PV_4L' => '四市场累计',
  85. 'PV_5L' => '五市场累计',
  86. 'SURPLUS_1L' => '一市场结余',
  87. 'SURPLUS_2L' => '二市场结余',
  88. 'SURPLUS_3L' => '三市场结余',
  89. 'SURPLUS_4L' => '四市场结余',
  90. 'SURPLUS_5L' => '五市场结余',
  91. 'SURPLUS_LS' => '零售结余',
  92. 'PERF_TYPE' => '业绩类型',
  93. 'PERF_LOCATION' => '业绩区域',
  94. 'AMOUNT' => '调整金额',
  95. 'PERF_BEFORE' => '业绩调整前',
  96. 'PERF_AFTER' => '业绩调整后',
  97. 'PERIOD_NUM' => '调整期数',
  98. 'AUDIT_STATUS' => '审核状态',
  99. 'CREATE_ADMIN' => '创建管理员',
  100. 'REMARK' => '备注',
  101. 'AUDIT_ADMIN' => '审核管理员',
  102. 'CREATED_AT' => '创建时间',
  103. 'AUDITED_AT' => '审核时间',
  104. ];
  105. }
  106. /**
  107. * 按期数获取会员总网业绩和大区剩余
  108. * @param $userId
  109. * @param $periodNum
  110. * @return array
  111. */
  112. public static function getUserPerfAndPerfPeriod($userId,$periodNum){
  113. $perfPeriod = PerfPeriod::findOneAsArray('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', [':USER_ID' => $userId, ':PERIOD_NUM' => $periodNum]);
  114. $userPerf = UserPerf::findOneAsArray('USER_ID=:USER_ID', [':USER_ID' => $userId]);
  115. return ['SURPLUS_1L' => $perfPeriod['SURPLUS_1L'] ?? 0, 'SURPLUS_2L' => $perfPeriod['SURPLUS_2L'] ?? 0, 'SURPLUS_3L' => $perfPeriod['SURPLUS_3L'] ?? 0, 'SURPLUS_4L' => $perfPeriod['SURPLUS_4L'] ?? 0, 'SURPLUS_5L' => $perfPeriod['SURPLUS_5L'] ?? 0, 'SURPLUS_LS' => $perfPeriod['SURPLUS_LS'] ?? 0, 'PV_1L' => $userPerf['PV_1L'] ?? 0, 'PV_2L' => $userPerf['PV_2L'] ?? 0, 'PV_3L' => $userPerf['PV_3L'] ?? 0, 'PV_4L' => $userPerf['PV_4L'] ?? 0, 'PV_5L' => $userPerf['PV_5L'] ?? 0];
  116. }
  117. /**
  118. * 操作日志记录条件
  119. * @return array
  120. */
  121. public function attrLabelsWithLogType(){
  122. return [
  123. 'USER_ID' => '会员ID',
  124. 'PV_1L' => '一市场累计',
  125. 'PV_2L' => '二市场累计',
  126. 'PV_3L' => '三市场累计',
  127. 'PV_4L' => '四市场累计',
  128. 'PV_5L' => '五市场累计',
  129. 'SURPLUS_1L' => '一市场结余',
  130. 'SURPLUS_2L' => '二市场结余',
  131. 'SURPLUS_3L' => '三市场结余',
  132. 'SURPLUS_4L' => '四市场结余',
  133. 'SURPLUS_5L' => '五市场结余',
  134. 'SURPLUS_LS' => '零售结余',
  135. 'PERF_TYPE' => [
  136. 'label' => '业绩类型',
  137. 'type' => function($data){
  138. $value = $data['value'];
  139. return self::CHANGE_PERF_TYPE[$value];
  140. },
  141. ],
  142. 'PERF_LOCATION' => [
  143. 'label' => '业绩区域',
  144. 'type' => function($data){
  145. $value = $data['value'];
  146. return self::PERF_LOCATION_NAME[$value];
  147. },
  148. ],
  149. 'AMOUNT' => '调整金额',
  150. 'PERF_BEFORE' => '业绩调整前',
  151. 'PERF_AFTER' => '业绩调整后',
  152. 'PERIOD_NUM' => '调整期数',
  153. 'AUDIT_STATUS' => [
  154. 'label' => '审核状态',
  155. 'type' => function($data){
  156. $value = $data['value'];
  157. $result = '';
  158. if($value == 'un' || $value == \Yii::$app->params['auditStatus']['un']['value']){
  159. $result = \Yii::$app->params['auditStatus']['un']['label'];
  160. } elseif($value == 'true' || $value == \Yii::$app->params['auditStatus']['true']['value']) {
  161. $result = \Yii::$app->params['auditStatus']['true']['label'];
  162. } elseif($value == 'false' || $value == \Yii::$app->params['auditStatus']['false']['value']) {
  163. $result = \Yii::$app->params['auditStatus']['false']['label'];
  164. } elseif($value == 'reject' || $value == \Yii::$app->params['auditStatus']['reject']['value']) {
  165. $result = \Yii::$app->params['auditStatus']['reject']['label'];
  166. }
  167. return $result;
  168. },
  169. ],
  170. 'CREATE_ADMIN' => [
  171. 'label' => '创建管理员',
  172. 'type' => function($data){
  173. $value = is_array($data) && isset($data['value']) ? $data['value'] : '';
  174. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  175. return !empty($result) ? $result['ADMIN_NAME'] : '';
  176. },
  177. ],
  178. 'REMARK' => '备注',
  179. 'AUDIT_ADMIN' => [
  180. 'label' => '审核管理员',
  181. 'type' => function($data){
  182. $value = is_array($data) && isset($data['value']) ? $data['value'] : '';
  183. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  184. return !empty($result) ? $result['ADMIN_NAME'] : '';
  185. },
  186. ],
  187. 'CREATED_AT' => [
  188. 'label' => '创建时间',
  189. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  190. ],
  191. 'AUDITED_AT' => [
  192. 'label' => '审核时间',
  193. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  194. ],
  195. ];
  196. }
  197. }