Product.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <?php
  2. namespace app\expand\controller;
  3. use app\common\service\HelperService;
  4. use think\Validate;
  5. /**
  6. * 产品数据
  7. * Class Product
  8. * @package app\expand\controller
  9. */
  10. class Product extends BaseAuth
  11. {
  12. private $_Account = null;
  13. public function __construct(){
  14. parent::__construct();
  15. $this->_Account = $this->getKey($this->_apiCode);
  16. //验证是否具有访问这个接口的权限
  17. if(!isset($this->_Account['Product'])){
  18. HelperService::returnJson(['code'=>400,'msg'=>'product interface unauthorized access','data'=>[]]);
  19. }
  20. }
  21. public function getProductList(){
  22. $params = $this->_params;
  23. $rule = [
  24. 'company_no|集团编号'=>'require|max:100',
  25. 'page|页码'=>'integer',
  26. 'page_size|每页数目'=>'integer',
  27. ];
  28. $validate = new Validate($rule);
  29. if(!$validate->check($params)){
  30. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError(),'data'=>[]]);
  31. }
  32. $page = isset($params['page'])?$params['page']:0;
  33. $pageSize = isset($params['page_size'])?$params['page_size']:0;
  34. $count = $this->_getProductList($params['company_no'],true);
  35. $list = $this->_getProductList($params['company_no'],false,$page,$pageSize);
  36. HelperService::returnJson([
  37. 'code'=>200,
  38. 'msg'=>'success',
  39. 'data'=>['list'=>$list,'count'=>$count]
  40. ]);
  41. }
  42. public function getSeriesList(){
  43. $params = $this->_params;
  44. $rule = [
  45. 'company_no|集团编号'=>'require|max:100',
  46. 'page|页码'=>'integer',
  47. 'page_size|每页数目'=>'integer',
  48. ];
  49. $validate = new Validate($rule);
  50. if(!$validate->check($params)){
  51. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError(),'data'=>[]]);
  52. }
  53. $page = isset($params['page'])?$params['page']:0;
  54. $pageSize = isset($params['page_size'])?$params['page_size']:0;
  55. try {
  56. $c = new \SoapClient( 'http://hqdemo.keqin89.com/KeQinHQWebService.asmx?wsdl');
  57. $result = $c->LoginLite(array(
  58. 'strHQCode' => '898',
  59. 'strUserName'=>"898_0005_90",
  60. 'strPassword'=>md5("123") ,
  61. 'strShopCode'=>'',
  62. 'strMachineCode'=>'',
  63. 'strMachineSN'=>'',
  64. 'strKeyUID'=>'',
  65. 'strUserID'=>'',
  66. 'strPV'=>'1.7.9.0',
  67. 'strFrom'=>'HQClient',
  68. 'strContents'=>''
  69. ));
  70. $result = json_decode(json_decode(json_encode($result),true)['LoginLiteResult'],true);
  71. } catch (SOAPFault $e) {
  72. print $e;
  73. }
  74. if(isset($result['Message']['token'])){
  75. try {
  76. $c = new \SoapClient( 'http://hqdemo.keqin89.com/KeQinHQWebService.asmx?wsdl');
  77. $result = $c->GetShopMenuData(array(
  78. 'strHQCode' => $params['company_no'],
  79. 'strShopCode'=>$params['store_no'],
  80. 'strMachineCode'=>'',
  81. 'strMachineSN'=>'',
  82. 'strKeyUID'=>'',
  83. 'strToken'=>$result['Message']['token'],
  84. 'strUserID'=>'',
  85. 'strFrom'=>'POS',
  86. 'strContents'=>'{}'
  87. ));
  88. $results = json_decode(json_decode(json_encode($result),true)['GetShopMenuDataResult'],true);
  89. } catch (SOAPFault $e) {
  90. print $e;
  91. }
  92. HelperService::returnJson([
  93. 'code'=>200,
  94. 'msg'=>'success',
  95. 'data'=>$results['Message']
  96. ]);
  97. }else{
  98. HelperService::returnJson([
  99. 'code'=>400,
  100. 'msg'=>'登陆失败',
  101. 'data'=>[]
  102. ]);
  103. }
  104. }
  105. public function getSeriesLists(){
  106. $params = $this->_params;
  107. $rule = [
  108. 'company_no|集团编号'=>'require|max:100',
  109. 'page|页码'=>'integer',
  110. 'page_size|每页数目'=>'integer',
  111. ];
  112. $validate = new Validate($rule);
  113. if(!$validate->check($params)){
  114. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError(),'data'=>[]]);
  115. }
  116. $page = isset($params['page'])?$params['page']:0;
  117. $pageSize = isset($params['page_size'])?$params['page_size']:0;
  118. $count = $this->_getSeriesList($params['company_no'],true);
  119. $list = $this->_getSeriesList($params['company_no'],false,$page,$pageSize);
  120. HelperService::returnJson([
  121. 'code'=>200,
  122. 'msg'=>'success',
  123. 'data'=>['list'=>$list,'count'=>$count]
  124. ]);
  125. }
  126. public function getPackageList(){
  127. $params = $this->_params;
  128. $rule = [
  129. 'company_no|集团编号'=>'require|max:100',
  130. 'page|页码'=>'integer',
  131. 'page_size|每页数目'=>'integer',
  132. ];
  133. $validate = new Validate($rule);
  134. if(!$validate->check($params)){
  135. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError(),'data'=>[]]);
  136. }
  137. $page = isset($params['page'])?$params['page']:0;
  138. $pageSize = isset($params['page_size'])?$params['page_size']:0;
  139. $list = $this->_getPackageList($params['company_no'],false,$page,$pageSize);
  140. HelperService::returnJson([
  141. 'code'=>200,
  142. 'msg'=>'success',
  143. 'data'=>['list'=>$list]
  144. ]);
  145. }
  146. public function getFalvorList(){
  147. $params = $this->_params;
  148. $rule = [
  149. 'company_no|集团编号'=>'require|max:100',
  150. 'page|页码'=>'integer',
  151. 'page_size|每页数目'=>'integer',
  152. ];
  153. $validate = new Validate($rule);
  154. if(!$validate->check($params)){
  155. HelperService::returnJson(['code'=>400,'msg'=>$validate->getError(),'data'=>[]]);
  156. }
  157. $page = isset($params['page'])?$params['page']:0;
  158. $pageSize = isset($params['page_size'])?$params['page_size']:0;
  159. $count = $this->_getFalvorList($params['company_no'],true);
  160. $list = $this->_getFalvorList($params['company_no'],false,$page,$pageSize);
  161. HelperService::returnJson([
  162. 'code'=>200,
  163. 'msg'=>'success',
  164. 'data'=>['list'=>$list,'count'=>$count]
  165. ]);
  166. }
  167. public function _getPackageList($companyNo,$isCount=false,$page=0,$pageSize=0){
  168. $field = 'strItemBarCode as series_no,strProductName as product_name,strStandard as specs,strUnit as unit,floPrice as price,strProductBarCode as product_code';
  169. $mssqlConnection = $this->singleProductDbConnect();
  170. $productDbObj = $mssqlConnection->table('viwProduct')
  171. ->field($field)->where(['strHQCode'=>"$companyNo","blnSet"=>1]);
  172. if($isCount){
  173. return $productDbObj->count();
  174. }
  175. if(!empty($page) && !empty($pageSize)){
  176. $productDbObj->page($page,$pageSize);
  177. }
  178. $packageProduct = $productDbObj->select();
  179. $field = 'strProductBarCodeSet,strProductBarCode,strProductName,floQuantity,floPrice,strSetAlias';
  180. $mssqlConnection_sate = $this->singleProductDbConnect();
  181. $productDbObj_sate = $mssqlConnection_sate->table('tabSet')
  182. ->field($field)->where(['strHQCode'=>"$companyNo","blnState"=>1]);
  183. $packageDetail = $productDbObj_sate->select();
  184. $field = 'strSetBarCode,strProductBarCode,strReplaceProductBarCode,floDifferPrice';
  185. $mssqlConnection_set = $this->singleProductDbConnect();
  186. $productDbObj_set = $mssqlConnection_set->table('tabSetReplace')
  187. ->field($field)->where(['strHQCode'=>"$companyNo","blnState"=>1]);
  188. $packageChange = $productDbObj_set->select();
  189. return ["package"=>$packageProduct,'detail'=>$packageDetail,'change'=>$packageChange];
  190. }
  191. public function getAllList(){
  192. $mssqlConnection = $this->singleProductDbConnect();
  193. $productDbObj = $mssqlConnection->table('viwProduct')->limit(10)->select();
  194. var_dump(array_column($productDbObj, 'strProductName'));
  195. }
  196. /**
  197. * 查询产品列表
  198. * @param type $companyNo
  199. * @param type $isCount
  200. * @param type $page
  201. * @param type $pageSize
  202. * @return type
  203. */
  204. private function _getProductList($companyNo,$isCount=false,$page=0,$pageSize=0){
  205. $field = 'strItemBarCode as series_no,strProductName as product_name,strStandard as specs,strUnit as unit,floPrice as price,strProductBarCode as product_code';
  206. $mssqlConnection = $this->singleProductDbConnect();
  207. $productDbObj = $mssqlConnection->table('viwProduct')
  208. ->field($field)->where(['strHQCode'=>"$companyNo"]);
  209. if($isCount){
  210. return $productDbObj->count();
  211. }
  212. if(!empty($page) && !empty($pageSize)){
  213. $productDbObj->page($page,$pageSize);
  214. }
  215. return $productDbObj->select();
  216. }
  217. /**
  218. * 查询产品列表
  219. * @param type $companyNo
  220. * @param type $isCount
  221. * @param type $page
  222. * @param type $pageSize
  223. * @return type
  224. */
  225. private function _getSeriesList($companyNo,$isCount=false){
  226. $field = 'strItemName,strItemBarCode';
  227. $mssqlConnection = $this->singleProductDbConnect();
  228. $productDbObj = $mssqlConnection->table('tabItem')
  229. ->field($field)->where(['strHQCode'=>"$companyNo"]);
  230. if($isCount){
  231. return $productDbObj->count();
  232. }
  233. return $productDbObj->select();
  234. }
  235. /**
  236. * 查询佐料列表
  237. * @param type $companyNo
  238. * @param type $isCount
  239. * @param type $page
  240. * @param type $pageSize
  241. * @return type
  242. */
  243. private function _getFalvorList($companyNo,$isCount=false){
  244. $field = 'intFlavorID,strFlavorBarCode,strFlavorName,floPrice';
  245. $mssqlConnection = $this->singleProductDbConnect();
  246. $productDbObj = $mssqlConnection->table('tabFlavor')
  247. ->field($field)->where(['strHQCode'=>"$companyNo"]);
  248. if($isCount){
  249. return $productDbObj->count();
  250. }
  251. return $productDbObj->select();
  252. }
  253. }