PerfAudit.php 8.2 KB

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