commonservice.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. (function (app) {
  2. //公共服务
  3. app.factory('common', ['$http', 'config', '$q', 'msg', function ($http, config, $q, msg) {
  4. return {
  5. //经营范围
  6. getSetting: function (category) {
  7. return $http({
  8. url: config.server + 'api/setting/get/' + category,
  9. method: "get"
  10. })
  11. },
  12. //选择图片
  13. chooseImage: function (cameraOptions) {
  14. var deferred = $q.defer();
  15. var defaultCameraOptions = {
  16. quality: 50,
  17. sourceType: 1,
  18. allowEdit: false,
  19. encodingType: 0,//0为jpg,1为png
  20. //targetHeight: 112,
  21. //targetWidth: 112
  22. };
  23. var options = angular.extend(defaultCameraOptions, cameraOptions);
  24. var sheetOptions = {
  25. title: '选择图片方式',
  26. buttonLabels: ['拍摄照片', '从图库选择'],
  27. addCancelButtonWithLabel: '取消',
  28. androidEnableCancelButton: true
  29. };
  30. window.plugins.actionsheet.show(sheetOptions, function (index) {
  31. switch (index) {
  32. case 1: //拍摄图片
  33. options.sourceType = 1;
  34. break;
  35. case 2://从图库选择
  36. options.sourceType = 2;
  37. break;
  38. default:
  39. return;
  40. deferred.resolve();
  41. break;
  42. }
  43. navigator.camera.getPicture(function (imageUri) {
  44. if (imageUri) {
  45. deferred.resolve(imageUri);
  46. } else {
  47. deferred.reject('图片未找到');
  48. }
  49. }, function (error) {
  50. deferred.reject(error);
  51. }, options);
  52. });
  53. return deferred.promise;
  54. },
  55. uploadFiles: function (imageUri,type) {//通用上传,type:1图片,2视频
  56. var deferred = $q.defer();
  57. if (imageUri) {
  58. var uploadOptions = new FileUploadOptions();
  59. if (type==1) {//图片
  60. uploadOptions.fileKey = "picture";
  61. uploadOptions.fileName = "picture.jpg";
  62. uploadOptions.mimeType = "image/jpeg";
  63. uploadOptions.params = { tag: "dream" };
  64. }
  65. if (type==2) {//视频
  66. uploadOptions.fileKey = "video";
  67. uploadOptions.fileName = "video.mp4";
  68. uploadOptions.mimeType = "video/mpeg";
  69. uploadOptions.params = { tag: "video" };
  70. }
  71. if (type == 3) {//头像
  72. uploadOptions.fileKey = "avatar";
  73. uploadOptions.fileName = "avatar.jpg";
  74. uploadOptions.mimeType = "image/jpeg";
  75. uploadOptions.params = { tag: "avatar" };
  76. }
  77. uploadOptions.httpMethod = 'post';
  78. uploadOptions.chunkedMode = true;
  79. var token = 'Bearer ' + localStorage['token'];
  80. uploadOptions.headers = { "Authorization": token };
  81. var ft = new FileTransfer();
  82. ft.upload(imageUri, encodeURI(config.server + "api/attachment/upload"), function (sucess) {
  83. deferred.resolve(sucess);
  84. // alert('上传成功' + JSON.stringify(sucess));
  85. }, function (fail) {
  86. deferred.reject(fail);
  87. //alert('上传失败' + JSON.stringify(fail));
  88. }, uploadOptions);
  89. } else {
  90. deferred.reject('图片未找到');
  91. }
  92. return deferred.promise;
  93. },
  94. deletefile:function (file) {
  95. return $http({
  96. url: config.server + 'api/attachment/delete/' + file,
  97. method: "get"
  98. })
  99. },
  100. setAvator: function () {//上传头像
  101. var deferred = $q.defer();
  102. this.chooseImage().then(function (imageUri) {
  103. msg.text('上传中');
  104. var uploadOptions = new FileUploadOptions();
  105. uploadOptions.fileKey = "avatar";
  106. uploadOptions.fileName = "avatar.jpg";
  107. uploadOptions.mimeType = "image/jpeg";
  108. uploadOptions.httpMethod = 'post';
  109. uploadOptions.chunkedMode = true;
  110. var token = 'Bearer ' + localStorage['token'];
  111. uploadOptions.headers = { "Authorization": token };
  112. var ft = new FileTransfer();
  113. ft.upload(imageUri, encodeURI(config.server + "api/auth/avatar"), function (sucess) {
  114. msg.hide();
  115. deferred.resolve(sucess);
  116. // alert('上传成功' + JSON.stringify(sucess));
  117. }, function (fail) {
  118. msg.hide();
  119. deferred.reject(fail);
  120. // alert('上传失败' + JSON.stringify(fail));
  121. }, uploadOptions);
  122. });
  123. return deferred.promise;
  124. },
  125. continue_consume: function (data) {
  126. var deferred = $q.defer();
  127. $http({
  128. url: config.server + 'api/service/continue_consume',
  129. method: "post",
  130. data: data
  131. }).success(function (result) {
  132. console.log("result pay:"+JSON.stringify(result));
  133. var payInfo = result.data.orderString;
  134. if (data.pay_type == "alipay_app") {
  135. //支付宝
  136. console.log("result AliPay");
  137. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  138. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  139. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  140. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  141. //当e.resultStatus为9000时,请去服务端验证支付结果
  142. // alert('状态码:' + e.resultStatus);
  143. if (e.resultStatus == '9000') {
  144. deferred.resolve(e.resultStatus);
  145. } else {
  146. deferred.reject(e);
  147. }
  148. }, function error(e) {
  149. deferred.reject(e);
  150. });
  151. }
  152. if (data.pay_type== "wechatpay_app") { //微信
  153. window.wxpay.payment({
  154. appid: payInfo.appid,
  155. noncestr: payInfo.noncestr,
  156. package: payInfo.package,
  157. partnerid: payInfo.partnerid,
  158. prepayid: payInfo.prepayid,
  159. timestamp: payInfo.timestamp,
  160. sign: payInfo.sign
  161. }, function success(msg) {
  162. console.log("wxpay success:"+JSON.stringify(msg));
  163. deferred.resolve(msg);
  164. }, function error(e) {
  165. console.log("wxpay error:"+JSON.stringify(e));
  166. deferred.reject(e);
  167. })
  168. }
  169. }).error(function (error) {
  170. // alert(JSON.stringify(error));
  171. deferred.reject(error);
  172. });
  173. return deferred.promise;
  174. },
  175. pay: function (data) {
  176. var deferred = $q.defer();
  177. $http({
  178. url: config.server + 'api/merchant/charge',
  179. method: "post",
  180. data: data
  181. }).success(function (result) {
  182. console.log("result pay:"+JSON.stringify(result));
  183. var payInfo = result.data.orderString;
  184. if (data.type == 1) {
  185. //支付宝
  186. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  187. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  188. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  189. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  190. //当e.resultStatus为9000时,请去服务端验证支付结果
  191. // alert('状态码:' + e.resultStatus);
  192. if (e.resultStatus == '9000') {
  193. deferred.resolve(e.resultStatus);
  194. } else {
  195. deferred.reject(e);
  196. }
  197. }, function error(e) {
  198. deferred.reject(e);
  199. });
  200. }
  201. if (data.type==2) { //微信
  202. window.wxpay.payment({
  203. appid: payInfo.appid,
  204. noncestr: payInfo.noncestr,
  205. package: payInfo.package,
  206. partnerid: payInfo.partnerid,
  207. prepayid: payInfo.prepayid,
  208. timestamp: payInfo.timestamp,
  209. sign: payInfo.sign
  210. }, function success(msg) {
  211. console.log("wxpay success:"+JSON.stringify(msg));
  212. deferred.resolve(msg);
  213. }, function error(e) {
  214. console.log("wxpay error:"+JSON.stringify(e));
  215. deferred.reject(e);
  216. })
  217. }
  218. }).error(function (error) {
  219. // alert(JSON.stringify(error));
  220. deferred.reject(error);
  221. });
  222. return deferred.promise;
  223. }
  224. };
  225. }]);
  226. })(angular.module('app.services'));