NewConfigCommand.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. <?php
  2. /**
  3. * 产品老配置跑到新配置
  4. */
  5. class NewConfigCommand extends CConsoleCommand {
  6. public function init() {
  7. parent::init();
  8. @ini_set('memory_limit', '1024M');
  9. set_time_limit(0);
  10. }
  11. public function actionConndatabase($YII_ENV='development'){
  12. $db = Yii::app()->db;
  13. $sql = "select * from `database`";
  14. $databaseInfo = $db->createCommand($sql)->queryAll();
  15. foreach($databaseInfo as $key => $value){
  16. try{
  17. $tempDsn = "mysql:host={$value['database_host']};dbname={$value['database_name']};";
  18. $tempDbh = new PDO($tempDsn,$value['database_user'],$value['database_password'],array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "utf8";'));
  19. // $bool = $this->addData($tempDsn,$tempDbh);
  20. $bool = $this->delData($tempDbh);
  21. echo $value['database_name'].' insert data '.($bool?'success':'faile').PHP_EOL;
  22. } catch (PDOException $ex) {
  23. echo $value['database_name'].' connect faile'.PHP_EOL;
  24. }
  25. }
  26. }
  27. public function delData($tempDbh){
  28. //清空表
  29. $tempDbh->exec("TRUNCATE TABLE product_setting");
  30. $bool = $tempDbh->exec("TRUNCATE TABLE product_class_relation");
  31. return true;
  32. }
  33. public function addData($tempDsn,$tempDbh) {
  34. // $tempDsn = 'mysql:host=192.168.1.234:3306;dbname=spider_school_118;';
  35. // $tempDbh = new PDO($tempDsn,'spider','cJ7QvRWSKbMYun7U',array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "utf8";'));
  36. $classInfo = $tempDbh->query('SELECT * FROM `class`')->fetchAll(PDO::FETCH_ASSOC);
  37. //清空表
  38. $tempDbh->exec("TRUNCATE TABLE product_setting");
  39. $tempDbh->exec("TRUNCATE TABLE product_class_relation");
  40. $classRelPro = array();//产品关联班级索引
  41. $classRelSemester = array();
  42. foreach($classInfo as $value){
  43. $classRelSemester[$value['class_id']] = $value['semester_id'];
  44. $this->getPerVersionRelClass($value,$classRelPro);
  45. }
  46. //插入product_setting数据
  47. $productVer = $this->getPerVersion();
  48. $setIdRelSetType = array();
  49. foreach($productVer as $key => $value){
  50. $i = 2;
  51. foreach($value as $k => $v){
  52. //没有班级使用则不添加产品,默认版本必须添加
  53. if(isset($classRelPro[$key.'_'.$k]) || $k==0){
  54. if($k>0){
  55. $v['name'] = "版本".$i;
  56. $i++;
  57. }
  58. $sql = "INSERT INTO `product_setting` VALUES (0,'".$v['name']."',".$v['product_type'].",".$v['show_map'].",".$v['show_kp'].",".$v['show_wrg_origin'].",".$v['show_wrg_analyze'].",".$v['show_guide'].",'".$v['st_tuozhan']."','".$v['st_wrong']."','".$v['st_reduce']."',".$v['show_level'].",".$v['create_time'].",".$v['is_default'].")";
  59. $bool = $tempDbh->exec($sql);
  60. $versionRelPsId[$key.'_'.$k] = (int)$tempDbh->lastInsertId();
  61. $classRelSetType[$versionRelPsId[$key.'_'.$k]] = $v['product_type'];
  62. }
  63. }
  64. }
  65. //插入product_class_relation数据
  66. $sql = "INSERT INTO `product_class_relation` (ps_id, class_id, semester_id, set_type) VALUES ";
  67. $valueArr = array();
  68. foreach($classRelPro as $key => $value){
  69. if(isset($versionRelPsId[$key]) && $versionRelPsId[$key] > 0){
  70. foreach($value as $k => $v){
  71. $semesterId = isset($classRelSemester[$v])?$classRelSemester[$v]:0;
  72. $setType = isset($classRelSetType[$versionRelPsId[$key]])?$classRelSetType[$versionRelPsId[$key]]:0;
  73. $valueArr[] = " ({$versionRelPsId[$key]},'{$v}',$semesterId,$setType) ";
  74. }
  75. }
  76. }
  77. $sqlValue = implode(',', $valueArr);
  78. $sql2 = $sql.$sqlValue;
  79. $bool = $tempDbh->exec($sql2);
  80. return true;
  81. }
  82. /**
  83. * 新老版本对应关系
  84. 错题本类型 0:精简版 1:完整版
  85. 提分方案类型 0:精简版 1:完整版
  86. 分层提分方案类型 0:个性 1:分层
  87. */
  88. public function getPerVersionRelClass($oldVersion,&$classRelPro){
  89. // $oldVersion = array(
  90. // 'class_id' => 0,
  91. // 'wrong_book_type' => 0,
  92. // 'improve_book_type' => 0,
  93. // 'wb_isp_version' => 0,
  94. // );
  95. //错题本
  96. if($oldVersion['wrong_book_type'] == 1){
  97. $productIndex = '1_0';
  98. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  99. }elseif($oldVersion['wrong_book_type'] == 0){
  100. $productIndex = '1_1';
  101. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  102. }
  103. //个性化学习方案
  104. if($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 0){
  105. $productIndex = '2_0';
  106. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  107. }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 0){
  108. $productIndex = '2_1';
  109. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  110. }elseif($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 1){
  111. $productIndex = '2_2';
  112. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  113. }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 1){
  114. $productIndex = '2_3';
  115. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  116. }
  117. //个性化学习方案
  118. if($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 0){
  119. $productIndex = '3_0';
  120. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  121. }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 0){
  122. $productIndex = '3_1';
  123. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  124. }elseif($oldVersion['improve_book_type'] == 1 && $oldVersion['wb_isp_version'] == 1){
  125. $productIndex = '3_2';
  126. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  127. }elseif($oldVersion['improve_book_type'] == 0 && $oldVersion['wb_isp_version'] == 1){
  128. $productIndex = '3_3';
  129. $classRelPro[$productIndex][] = $oldVersion['class_id'];
  130. }
  131. }
  132. //预设版本
  133. public function getPerVersion(){
  134. //1-错题本 2-个性化学习方案 3-个性化学习宝
  135. $time = time();
  136. $productVer = array(
  137. 1 => array(
  138. 0 => array(
  139. 'name' => '版本1',
  140. 'product_type' => 1,//1-错题本 2-个性化学习方案 3-个性化学习宝
  141. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  142. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  143. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  144. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  145. 'show_guide' => 1,//显示名师指导 1-是 0-否
  146. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  147. 'st_wrong' => '',//错题本过滤难题
  148. 'st_reduce' => '',//减少提分题
  149. 'show_level' => 0,//提分题分层 1-是 0-否
  150. 'create_time' => $time,//创建时间
  151. 'is_default' => 1,//是否默认设置 1-是 0-否
  152. ),
  153. 1 => array(
  154. 'name' => '版本2',
  155. 'product_type' => 1,//1-错题本 2-个性化学习方案 3-个性化学习宝
  156. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  157. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  158. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  159. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  160. 'show_guide' => 1,//显示名师指导 1-是 0-否
  161. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  162. 'st_wrong' => '4',//错题本过滤难题
  163. 'st_reduce' => '',//减少提分题
  164. 'show_level' => 0,//提分题分层 1-是 0-否
  165. 'create_time' => $time,//创建时间
  166. 'is_default' => 0,//是否默认设置 1-是 0-否
  167. ),
  168. ),
  169. 2 => array(
  170. 0 => array(
  171. 'name' => '版本1',
  172. 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝
  173. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  174. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  175. 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否
  176. 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否
  177. 'show_guide' => 0,//显示名师指导 1-是 0-否
  178. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  179. 'st_wrong' => '',//错题本过滤难题
  180. 'st_reduce' => '',//减少提分题
  181. 'show_level' => 0,//提分题分层 1-是 0-否
  182. 'create_time' => $time,//创建时间
  183. 'is_default' => 1,//是否默认设置 1-是 0-否
  184. ),
  185. 1 => array(
  186. 'name' => '版本2',
  187. 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝
  188. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  189. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  190. 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否
  191. 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否
  192. 'show_guide' => 0,//显示名师指导 1-是 0-否
  193. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  194. 'st_wrong' => '',//错题本过滤难题
  195. 'st_reduce' => '4',//减少提分题
  196. 'show_level' => 0,//提分题分层 1-是 0-否
  197. 'create_time' => $time,//创建时间
  198. 'is_default' => 0,//是否默认设置 1-是 0-否
  199. ),
  200. 2 => array(
  201. 'name' => '版本3',
  202. 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝
  203. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  204. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  205. 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否
  206. 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否
  207. 'show_guide' => 0,//显示名师指导 1-是 0-否
  208. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  209. 'st_wrong' => '',//错题本过滤难题
  210. 'st_reduce' => '',//减少提分题
  211. 'show_level' => 1,//提分题分层 1-是 0-否
  212. 'create_time' => $time,//创建时间
  213. 'is_default' => 0,//是否默认设置 1-是 0-否
  214. ),
  215. 3 => array(
  216. 'name' => '版本4',
  217. 'product_type' => 2,//1-错题本 2-个性化学习方案 3-个性化学习宝
  218. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  219. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  220. 'show_wrg_origin' => 0,//显示错题原型 1-是 0-否
  221. 'show_wrg_analyze' => 0,//显示错因分析 1-是 0-否
  222. 'show_guide' => 0,//显示名师指导 1-是 0-否
  223. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  224. 'st_wrong' => '',//错题本过滤难题
  225. 'st_reduce' => '4',//减少提分题
  226. 'show_level' => 1,//提分题分层 1-是 0-否
  227. 'create_time' => $time,//创建时间
  228. 'is_default' => 0,//是否默认设置 1-是 0-否
  229. ),
  230. ),
  231. 3 => array(
  232. 0 => array(
  233. 'name' => '版本1',
  234. 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝
  235. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  236. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  237. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  238. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  239. 'show_guide' => 1,//显示名师指导 1-是 0-否
  240. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  241. 'st_wrong' => '',//错题本过滤难题
  242. 'st_reduce' => '',//减少提分题
  243. 'show_level' => 0,//提分题分层 1-是 0-否
  244. 'create_time' => $time,//创建时间
  245. 'is_default' => 1,//是否默认设置 1-是 0-否
  246. ),
  247. 1 => array(
  248. 'name' => '版本2',
  249. 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝
  250. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  251. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  252. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  253. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  254. 'show_guide' => 1,//显示名师指导 1-是 0-否
  255. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  256. 'st_wrong' => '',//错题本过滤难题
  257. 'st_reduce' => '4',//减少提分题
  258. 'show_level' => 0,//提分题分层 1-是 0-否
  259. 'create_time' => $time,//创建时间
  260. 'is_default' => 0,//是否默认设置 1-是 0-否
  261. ),
  262. 2 => array(
  263. 'name' => '版本3',
  264. 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝
  265. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  266. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  267. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  268. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  269. 'show_guide' => 1,//显示名师指导 1-是 0-否
  270. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  271. 'st_wrong' => '',//错题本过滤难题
  272. 'st_reduce' => '',//减少提分题
  273. 'show_level' => 1,//提分题分层 1-是 0-否
  274. 'create_time' => $time,//创建时间
  275. 'is_default' => 0,//是否默认设置 1-是 0-否
  276. ),
  277. 3 => array(
  278. 'name' => '版本4',
  279. 'product_type' => 3,//1-错题本 2-个性化学习方案 3-个性化学习宝
  280. 'show_map' => 1,//显示成长轨迹 1-是 0-否
  281. 'show_kp' => 1,//显示薄弱知识点掌握分析 1-是 0-否
  282. 'show_wrg_origin' => 1,//显示错题原型 1-是 0-否
  283. 'show_wrg_analyze' => 1,//显示错因分析 1-是 0-否
  284. 'show_guide' => 1,//显示名师指导 1-是 0-否
  285. 'st_tuozhan' => '1|2|3|4',//拓展训练题使用的学生 1--尖子生 2--优秀生 3--中等生 4--学困生
  286. 'st_wrong' => '',//错题本过滤难题
  287. 'st_reduce' => '4',//减少提分题
  288. 'show_level' => 1,//提分题分层 1-是 0-否
  289. 'create_time' => $time,//创建时间
  290. 'is_default' => 0,//是否默认设置 1-是 0-否
  291. ),
  292. ),
  293. );
  294. return $productVer;
  295. }
  296. }