Merge branch 'develop'

pull/100/head
13621160019@163.com 2021-12-09 12:10:18 +08:00
commit 3768022234
14 changed files with 229 additions and 294 deletions

View File

@ -1,7 +1,14 @@
'use strict'; 'use strict';
app.controller('CostCenterController', function($scope, $translate,$uibModal, CostCenterService,toaster,SweetAlert) { app.controller('CostCenterController', function(
$scope,
$window,
$translate,
$uibModal,
CostCenterService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllCostCenters = function() { $scope.getAllCostCenters = function() {
CostCenterService.getAllCostCenters(function (response) { CostCenterService.getAllCostCenters(function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
@ -19,7 +26,8 @@ app.controller('CostCenterController', function($scope, $translate,$uibModal, Co
windowClass: "animated fadeIn", windowClass: "animated fadeIn",
}); });
modalInstance.result.then(function(costcenter) { modalInstance.result.then(function(costcenter) {
CostCenterService.addCostCenter(costcenter, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
CostCenterService.addCostCenter(costcenter, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) { if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -59,7 +67,8 @@ app.controller('CostCenterController', function($scope, $translate,$uibModal, Co
}); });
modalInstance.result.then(function (modifiedCostCenter) { modalInstance.result.then(function (modifiedCostCenter) {
CostCenterService.editCostCenter(modifiedCostCenter, function (response){ let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
CostCenterService.editCostCenter(modifiedCostCenter, headers, function (response){
if(angular.isDefined(response.status) && response.status === 200){ if(angular.isDefined(response.status) && response.status === 200){
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -96,7 +105,8 @@ app.controller('CostCenterController', function($scope, $translate,$uibModal, Co
closeOnCancel: true }, closeOnCancel: true },
function (isConfirm) { function (isConfirm) {
if (isConfirm) { if (isConfirm) {
CostCenterService.deleteCostCenter(costcenter, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
CostCenterService.deleteCostCenter(costcenter, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) { if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({ toaster.pop({
type: "success", type: "success",

View File

@ -1,11 +1,14 @@
'use strict'; 'use strict';
app.controller('CostCenterTariffController', function ($scope, $translate, app.controller('CostCenterTariffController', function (
CostCenterService, $scope,
TariffService, $window,
CostCenterTariffService, $translate,
toaster) { CostCenterService,
TariffService,
CostCenterTariffService,
toaster) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllCostCenters = function () { $scope.getAllCostCenters = function () {
CostCenterService.getAllCostCenters(function (response) { CostCenterService.getAllCostCenters(function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
@ -51,7 +54,8 @@ app.controller('CostCenterTariffController', function ($scope, $translate,
$scope.pairTariff = function (dragEl, dropEl) { $scope.pairTariff = function (dragEl, dropEl) {
var tariffid = angular.element('#' + dragEl).scope().tariff.id; var tariffid = angular.element('#' + dragEl).scope().tariff.id;
var costcenterid = $scope.currentCostCenter.id; var costcenterid = $scope.currentCostCenter.id;
CostCenterTariffService.addPair(costcenterid, tariffid, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
CostCenterTariffService.addPair(costcenterid, tariffid, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) { if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -77,7 +81,8 @@ app.controller('CostCenterTariffController', function ($scope, $translate,
} }
var costcentertariffid = angular.element('#' + dragEl).scope().costcentertariff.id; var costcentertariffid = angular.element('#' + dragEl).scope().costcentertariff.id;
var costcenterid = $scope.currentCostCenter.id; var costcenterid = $scope.currentCostCenter.id;
CostCenterTariffService.deletePair(costcenterid, costcentertariffid, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
CostCenterTariffService.deletePair(costcenterid, costcentertariffid, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) { if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({ toaster.pop({
type: "success", type: "success",

View File

@ -1,158 +0,0 @@
'use strict';
app.controller('FlatController', function($scope,$uibModal,$translate, FlatService,toaster,SweetAlert) {
$scope.getAllFlats = function() {
FlatService.getAllFlats(function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
$scope.flats = response.data;
} else {
$scope.flats = [];
}
});
};
$scope.addFlat = function() {
var modalInstance = $uibModal.open({
templateUrl: 'views/settings/tariff/flat.model.html',
controller: 'ModalAddFlatCtrl',
windowClass: "animated fadeIn",
resolve: {
params:function(){
return {
flats:angular.copy($scope.flats)
};
}
}
});
modalInstance.result.then(function(flat) {
FlatService.addFlat(flat, function(response) {
if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({
type: "success",
title: $translate.instant("TOASTER.SUCCESS_TITLE"),
body: $translate.instant("TOASTER.SUCCESS_ADD_BODY", {template: $translate.instant("TOASTER.FLAT")}),
showCloseButton: true,
});
$scope.getAllFlats();
} else {
toaster.pop({
type: "error",
title: $translate.instant("TOASTER.ERROR_ADD_BODY", {template: $translate.instant("TOASTER.FLAT")}),
body: $translate.instant(response.data.description),
showCloseButton: true,
});
}
});
}, function() {
});
};
$scope.editFlat=function(flat){
var modalInstance = $uibModal.open({
windowClass: "animated fadeIn",
templateUrl: 'views/settings/tariff/flat.model.html',
controller: 'ModalEditFlatCtrl',
resolve: {
params:function(){
return {
flat:angular.copy(flat),
flats:angular.copy($scope.flats)
};
}
}
});
modalInstance.result.then(function (modifiedFlat) {
FlatService.editFlat(modifiedFlat, function (response) {
if(angular.isDefined(response.status) && response.status === 200){
toaster.pop({
type: "success",
title: $translate.instant("TOASTER.SUCCESS_TITLE"),
body: $translate.instant("TOASTER.SUCCESS_UPDATE_BODY", {template: $translate.instant("TOASTER.FLAT")}),
showCloseButton: true,
});
$scope.getAllFlats();
}else{
toaster.pop({
type: "error",
title: $translate.instant("TOASTER.ERROR_UPDATE_BODY", {template: $translate.instant("TOASTER.FLAT")}),
body: $translate.instant(response.data.description),
showCloseButton: true,
});
}
});
}, function () {
//do nothing;
});
};
$scope.deleteFlat=function(flat){
SweetAlert.swal({
title: $translate.instant("SWEET.TITLE"),
text: $translate.instant("SWEET.TEXT"),
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: $translate.instant("SWEET.CONFIRM_BUTTON_TEXT"),
cancelButtonText: $translate.instant("SWEET.CANCEL_BUTTON_TEXT"),
closeOnConfirm: true,
closeOnCancel: true },
function (isConfirm) {
if (isConfirm) {
FlatService.deleteFlat(flat, function (response) {
if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({
type: "success",
title: $translate.instant("TOASTER.SUCCESS_TITLE"),
body: $translate.instant("TOASTER.SUCCESS_DELETE_BODY", {template: $translate.instant("TOASTER.FLAT")}),
showCloseButton: true,
});
$scope.getAllFlats();
} else {
toaster.pop({
type: "error",
title: $translate.instant("TOASTER.ERROR_DELETE_BODY", {template: $translate.instant("TOASTER.FLAT")}),
body: $translate.instant(response.data.description),
showCloseButton: true,
});
}
});
}
});
};
$scope.getAllFlats();
});
app.controller('ModalAddFlatCtrl', function ($scope, $uibModalInstance,params) {
$scope.operation="添加";
$scope.flats=params.flats;
$scope.ok = function () {
$uibModalInstance.close($scope.flat);
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
});
app.controller('ModalEditFlatCtrl', function ($scope, $uibModalInstance, params) {
$scope.operation="编辑";
$scope.flat = params.flat;
$scope.flats=params.flats;
$scope.ok = function () {
$uibModalInstance.close($scope.flat);
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
});

View File

@ -1,7 +1,17 @@
'use strict'; 'use strict';
app.controller('TariffController', function($scope,$uibModal,$translate, TARIFF_TYPE, PEAK_TYPE, TariffService, CategoryService, toaster, SweetAlert) { app.controller('TariffController', function(
$scope,
$window,
$uibModal,
$translate,
TARIFF_TYPE,
PEAK_TYPE,
TariffService,
CategoryService,
toaster,
SweetAlert) {
$scope.cur_user = JSON.parse($window.localStorage.getItem("myems_admin_ui_current_user"));
$scope.getAllCategories = function() { $scope.getAllCategories = function() {
CategoryService.getAllCategories(function (response) { CategoryService.getAllCategories(function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
@ -42,7 +52,8 @@ app.controller('TariffController', function($scope,$uibModal,$translate, TARIFF_
} }
}); });
modalInstance.result.then(function(tariff) { modalInstance.result.then(function(tariff) {
TariffService.addTariff(tariff, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
TariffService.addTariff(tariff, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 201) { if (angular.isDefined(response.status) && response.status === 201) {
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -82,7 +93,8 @@ app.controller('TariffController', function($scope,$uibModal,$translate, TARIFF_
}); });
modalInstance.result.then(function(modifiedTariff) { modalInstance.result.then(function(modifiedTariff) {
TariffService.editTariff(modifiedTariff, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
TariffService.editTariff(modifiedTariff, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) { if (angular.isDefined(response.status) && response.status === 200) {
toaster.pop({ toaster.pop({
type: "success", type: "success",
@ -119,7 +131,8 @@ app.controller('TariffController', function($scope,$uibModal,$translate, TARIFF_
}, },
function(isConfirm) { function(isConfirm) {
if (isConfirm) { if (isConfirm) {
TariffService.deleteTariff(tariff, function (response) { let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
TariffService.deleteTariff(tariff, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) { if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({ toaster.pop({
type: "success", type: "success",

View File

@ -17,24 +17,24 @@ app.factory('CostCenterService', function($http) {
callback(response); callback(response);
}); });
}, },
addCostCenter: function(costcenter, callback) { addCostCenter: function(costcenter, headers, callback) {
$http.post(getAPI()+'costcenters',{data:costcenter}) $http.post(getAPI()+'costcenters',{data:costcenter}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
callback(response); callback(response);
}); });
}, },
editCostCenter: function(costcenter, callback) { editCostCenter: function(costcenter, headers, callback) {
$http.put(getAPI()+'costcenters/'+costcenter.id,{data:costcenter}) $http.put(getAPI()+'costcenters/'+costcenter.id,{data:costcenter}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
callback(response); callback(response);
}); });
}, },
deleteCostCenter: function(costcenter, callback) { deleteCostCenter: function(costcenter, headers, callback) {
$http.delete(getAPI()+'costcenters/'+costcenter.id) $http.delete(getAPI()+'costcenters/'+costcenter.id, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {

View File

@ -1,8 +1,8 @@
'use strict'; 'use strict';
app.factory('CostCenterTariffService', function($http) { app.factory('CostCenterTariffService', function($http) {
return { return {
addPair: function(costcenterid,tariffid,callback) { addPair: function(costcenterid, tariffid, headers, callback ) {
$http.post(getAPI()+'costcenters/'+costcenterid+'/tariffs',{data:{'tariff_id':tariffid}}) $http.post(getAPI()+'costcenters/'+costcenterid+'/tariffs',{data:{'tariff_id':tariffid}}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
@ -10,8 +10,8 @@ app.factory('CostCenterTariffService', function($http) {
}); });
}, },
deletePair: function(costcenterid,tariffid, callback) { deletePair: function(costcenterid, tariffid, headers, callback) {
$http.delete(getAPI()+'costcenters/'+costcenterid+'/tariffs/'+tariffid) $http.delete(getAPI()+'costcenters/'+costcenterid+'/tariffs/'+tariffid, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
@ -19,7 +19,7 @@ app.factory('CostCenterTariffService', function($http) {
}); });
}, },
getTariffsByCostCenterID: function(id, callback) { getTariffsByCostCenterID: function(id, callback) {
$http.get(getAPI()+'costcenters/'+id+'/tariffs') $http.get(getAPI()+'costcenters/'+id+'/tariffs')
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {

View File

@ -1,53 +0,0 @@
'use strict';
app.factory('FlatService', function($http) {
return {
getAllFlats:function(callback){
$http.get(getAPI()+'flats')
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
searchFlats: function(query, callback) {
$http.get(getAPI()+'flats', { params: { q: query } })
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
addFlat: function(flat, callback) {
$http.post(getAPI()+'flats',{data:flat})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
editFlat: function(flat, callback) {
$http.put(getAPI()+'flats/'+flat.id,{data:flat})
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
deleteFlat: function(flat, callback) {
$http.delete(getAPI()+'flats/'+flat.id)
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
},
getFlat: function(id, callback) {
$http.get(getAPI()+'flats/'+id)
.then(function (response) {
callback(response);
}, function (response) {
callback(response);
});
}
};
});

View File

@ -17,24 +17,24 @@ app.factory('TariffService', function($http) {
callback(response); callback(response);
}); });
}, },
addTariff: function(tariff, callback) { addTariff: function(tariff, headers, callback) {
$http.post(getAPI()+'tariffs',{data:tariff}) $http.post(getAPI()+'tariffs',{data:tariff}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
callback(response); callback(response);
}); });
}, },
editTariff: function(tariff, callback) { editTariff: function(tariff, headers, callback) {
$http.put(getAPI()+'tariffs/'+tariff.id,{data:tariff}) $http.put(getAPI()+'tariffs/'+tariff.id,{data:tariff}, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {
callback(response); callback(response);
}); });
}, },
deleteTariff: function(tariff, callback) { deleteTariff: function(tariff, headers, callback) {
$http.delete(getAPI()+'tariffs/'+tariff.id) $http.delete(getAPI()+'tariffs/'+tariff.id, {headers})
.then(function (response) { .then(function (response) {
callback(response); callback(response);
}, function (response) { }, function (response) {

View File

@ -1,19 +0,0 @@
<div class="inmodal">
<div class="modal-header">
<h4 class="modal-title">{{operation | translate}}</h4>
</div>
<div class="modal-body">
<form method="get" class="form-horizontal">
<div class="form-group"><label class="col-sm-2 control-label">{{'SETTING.NAME' | translate}}</label>
<div class="col-sm-10"><input ng-model="meter.name" type="text" class="form-control"></div>
</div>
<div class="hr-line-dashed"></div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-white" ng-click="cancel()">{{'SETTING.CANCEL' | translate}}</button>
<button type="button" class="btn btn-primary" ng-click="ok()">{{'SETTING.SAVE' | translate}}</button>
</div>
</div>

View File

@ -1017,7 +1017,18 @@
"name": "POST Creat a Cost Center", "name": "POST Creat a Cost Center",
"request": { "request": {
"method": "POST", "method": "POST",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"动力中心\", \"external_id\":\"21829198980001\"}}" "raw": "{\"data\":{\"name\":\"动力中心\", \"external_id\":\"21829198980001\"}}"
@ -1038,7 +1049,18 @@
"name": "PUT Update a Cost Center", "name": "PUT Update a Cost Center",
"request": { "request": {
"method": "PUT", "method": "PUT",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"动力中心2\", \"external_id\":\"21829198980002\"}}" "raw": "{\"data\":{\"name\":\"动力中心2\", \"external_id\":\"21829198980002\"}}"
@ -1060,28 +1082,50 @@
"name": "DELETE a Cost Center by ID", "name": "DELETE a Cost Center by ID",
"request": { "request": {
"method": "DELETE", "method": "DELETE",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"url": { "url": {
"raw": "{{base_url}}/costcenters/2", "raw": "{{base_url}}/costcenters/3",
"host": [ "host": [
"{{base_url}}" "{{base_url}}"
], ],
"path": [ "path": [
"costcenters", "costcenters",
"2" "3"
] ]
} }
}, },
"response": [] "response": []
}, },
{ {
"name": "POST a Cost Center and Tariff Relation", "name": "POST Bind Tariff to Cost Center",
"request": { "request": {
"method": "POST", "method": "POST",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"tariff_id\":\"1\"}}" "raw": "{\"data\":{\"tariff_id\":\"3\"}}"
}, },
"url": { "url": {
"raw": "{{base_url}}/costcenters/1/tariffs", "raw": "{{base_url}}/costcenters/1/tariffs",
@ -1103,16 +1147,35 @@
"method": "GET", "method": "GET",
"header": [], "header": [],
"url": { "url": {
"raw": "" "raw": "{{base_url}}/costcenters/1/tariffs",
"host": [
"{{base_url}}"
],
"path": [
"costcenters",
"1",
"tariffs"
]
} }
}, },
"response": [] "response": []
}, },
{ {
"name": "DELETE a Cost Center and Tariff Relation", "name": "DELETE Unbind Tariff from Cost Center",
"request": { "request": {
"method": "DELETE", "method": "DELETE",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"url": { "url": {
"raw": "{{base_url}}/costcenters/1/tariffs/3", "raw": "{{base_url}}/costcenters/1/tariffs/3",
"host": [ "host": [
@ -7475,10 +7538,21 @@
"response": [] "response": []
}, },
{ {
"name": "POST Create a Tariff (block)", "name": "POST Create a Tariff (Tiered)",
"request": { "request": {
"method": "POST", "method": "POST",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"new阶梯电价\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"block\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2021-01-01T00:00:00\", \"block\":[{\"start_amount\":\"0\", \"end_amount\":\"10000\", \"price\":\"0.567\"}, {\"start_amount\":\"10000\", \"end_amount\":\"30000\", \"price\":\"0.678\"}, {\"start_amount\":\"30000\", \"end_amount\":\"100000\", \"price\":\"0.789\"}]}}" "raw": "{\"data\":{\"name\":\"new阶梯电价\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"block\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2021-01-01T00:00:00\", \"block\":[{\"start_amount\":\"0\", \"end_amount\":\"10000\", \"price\":\"0.567\"}, {\"start_amount\":\"10000\", \"end_amount\":\"30000\", \"price\":\"0.678\"}, {\"start_amount\":\"30000\", \"end_amount\":\"100000\", \"price\":\"0.789\"}]}}"
@ -7514,32 +7588,54 @@
"response": [] "response": []
}, },
{ {
"name": "PUT Update a Tariff (block)", "name": "PUT Update a Tariff (Tiered)",
"request": { "request": {
"method": "PUT", "method": "PUT",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"new阶梯电价\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"block\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2021-01-01T00:00:00\", \"block\":[{\"start_amount\":\"0\", \"end_amount\":\"20000\", \"price\":\"0.567\"}, {\"start_amount\":\"20000\", \"end_amount\":\"30000\", \"price\":\"0.678\"}, {\"start_amount\":\"30000\", \"end_amount\":\"100000\", \"price\":\"0.789\"}]}}" "raw": "{\"data\":{\"name\":\"new阶梯电价\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"block\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2021-01-01T00:00:00\", \"block\":[{\"start_amount\":\"0\", \"end_amount\":\"20000\", \"price\":\"0.567\"}, {\"start_amount\":\"20000\", \"end_amount\":\"30000\", \"price\":\"0.678\"}, {\"start_amount\":\"30000\", \"end_amount\":\"100000\", \"price\":\"0.789\"}]}}"
}, },
"url": { "url": {
"raw": "{{base_url}}/tariffs/18", "raw": "{{base_url}}/tariffs/17",
"host": [ "host": [
"{{base_url}}" "{{base_url}}"
], ],
"path": [ "path": [
"tariffs", "tariffs",
"18" "17"
] ]
} }
}, },
"response": [] "response": []
}, },
{ {
"name": "POST Create a Tariff (time of use)", "name": "POST Create a Tariff (Time of Use)",
"request": { "request": {
"method": "POST", "method": "POST",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"new2020分时电价1-6\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"timeofuse\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2020-07-01T00:00:00\", \"timeofuse\":[{\"start_time_of_day\":\"00:00:00\", \"end_time_of_day\":\"05:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}, {\"start_time_of_day\":\"06:00:00\", \"end_time_of_day\":\"07:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"08:00:00\", \"end_time_of_day\":\"10:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"11:00:00\", \"end_time_of_day\":\"17:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"18:00:00\", \"end_time_of_day\":\"20:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"21:00:00\", \"end_time_of_day\":\"21:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"22:00:00\", \"end_time_of_day\":\"23:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}]}}" "raw": "{\"data\":{\"name\":\"new2020分时电价1-6\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"timeofuse\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2020-07-01T00:00:00\", \"timeofuse\":[{\"start_time_of_day\":\"00:00:00\", \"end_time_of_day\":\"05:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}, {\"start_time_of_day\":\"06:00:00\", \"end_time_of_day\":\"07:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"08:00:00\", \"end_time_of_day\":\"10:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"11:00:00\", \"end_time_of_day\":\"17:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"18:00:00\", \"end_time_of_day\":\"20:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"21:00:00\", \"end_time_of_day\":\"21:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"22:00:00\", \"end_time_of_day\":\"23:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}]}}"
@ -7560,19 +7656,30 @@
"name": "PUT Update a Tariff (time of use)", "name": "PUT Update a Tariff (time of use)",
"request": { "request": {
"method": "PUT", "method": "PUT",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"body": { "body": {
"mode": "raw", "mode": "raw",
"raw": "{\"data\":{\"name\":\"new2020分时电价1-6\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"timeofuse\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2020-07-01T00:00:00\", \"timeofuse\":[{\"start_time_of_day\":\"00:00:00\", \"end_time_of_day\":\"05:59:59\", \"peak_type\":\"offpeak\", \"price\":0.456}, {\"start_time_of_day\":\"06:00:00\", \"end_time_of_day\":\"07:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"08:00:00\", \"end_time_of_day\":\"10:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"11:00:00\", \"end_time_of_day\":\"17:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"18:00:00\", \"end_time_of_day\":\"20:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"21:00:00\", \"end_time_of_day\":\"21:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"22:00:00\", \"end_time_of_day\":\"23:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}]}}" "raw": "{\"data\":{\"name\":\"new2020分时电价1-6\",\"energy_category\":{\"id\":1}, \"tariff_type\":\"timeofuse\", \"unit_of_price\":\"元/千瓦时\", \"valid_from\":\"2020-01-01T00:00:00\", \"valid_through\":\"2020-07-01T00:00:00\", \"timeofuse\":[{\"start_time_of_day\":\"00:00:00\", \"end_time_of_day\":\"05:59:59\", \"peak_type\":\"offpeak\", \"price\":0.456}, {\"start_time_of_day\":\"06:00:00\", \"end_time_of_day\":\"07:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"08:00:00\", \"end_time_of_day\":\"10:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"11:00:00\", \"end_time_of_day\":\"17:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"18:00:00\", \"end_time_of_day\":\"20:59:59\", \"peak_type\":\"onpeak\", \"price\":1.159}, {\"start_time_of_day\":\"21:00:00\", \"end_time_of_day\":\"21:59:59\", \"peak_type\":\"midpeak\", \"price\":0.708}, {\"start_time_of_day\":\"22:00:00\", \"end_time_of_day\":\"23:59:59\", \"peak_type\":\"offpeak\", \"price\":0.345}]}}"
}, },
"url": { "url": {
"raw": "{{base_url}}/tariffs/19", "raw": "{{base_url}}/tariffs/18",
"host": [ "host": [
"{{base_url}}" "{{base_url}}"
], ],
"path": [ "path": [
"tariffs", "tariffs",
"19" "18"
] ]
} }
}, },
@ -7582,15 +7689,26 @@
"name": "DELETE a Tariff", "name": "DELETE a Tariff",
"request": { "request": {
"method": "DELETE", "method": "DELETE",
"header": [], "header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text"
},
{
"key": "Token",
"value": "dca233ce58b2bf881e862e994f392dd27dd286c6135eff14da111137023b6c5625864300b269048036dcec310d4f61fa89021e5a3462512de2852493227187a0",
"type": "text"
}
],
"url": { "url": {
"raw": "{{base_url}}/tariffs/16", "raw": "{{base_url}}/tariffs/18",
"host": [ "host": [
"{{base_url}}" "{{base_url}}"
], ],
"path": [ "path": [
"tariffs", "tariffs",
"16" "18"
] ]
} }
}, },

View File

@ -343,20 +343,20 @@ Result
* GET All Cost Files * GET All Cost Files
```bash ```bash
curl -i -X GET {{base_url}}/costfiles curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X GET {{base_url}}/costfiles
``` ```
* DELETE a Cost File by ID * DELETE a Cost File by ID
```bash ```bash
curl -i -X DELETE {{base_url}}/costfiles/{id} curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X DELETE {{base_url}}/costfiles/{id}
``` ```
* POST Upload a Cost File * POST Upload a Cost File
(call users login API to get 'User-UUID' and 'Token') (call users login API to get 'User-UUID' and 'Token')
```bash ```bash
curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -H "Content-Type: application/TBD" -X POST -d 'file: (binary)' {{base_url}}/costfiles curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -H "Content-Type: application/TBD" -X POST -d 'file: (binary)' {{base_url}}/costfiles
``` ```
* GET Restore a Cost File by ID from database to disk * GET Restore a Cost File by ID from database to disk
```bash ```bash
curl -i -X GET {{base_url}}/costfiles/{id}/restore curl -i -H "User-UUID: dcdb67d1-6116-4987-916f-6fc6cf2bc0e4" -H "Token: GET-TOKEN-AFTER-LOGIN" -X GET {{base_url}}/costfiles/{id}/restore
``` ```
### Data Source ### Data Source

View File

@ -18,6 +18,7 @@ class CostCenterCollection:
@staticmethod @staticmethod
def on_get(req, resp): def on_get(req, resp):
"""Handles GET requests"""
cnx = mysql.connector.connect(**config.myems_system_db) cnx = mysql.connector.connect(**config.myems_system_db)
cursor = cnx.cursor() cursor = cnx.cursor()
@ -41,6 +42,7 @@ class CostCenterCollection:
@user_logger @user_logger
def on_post(req, resp): def on_post(req, resp):
"""Handles POST requests""" """Handles POST requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
@ -110,6 +112,7 @@ class CostCenterItem:
@staticmethod @staticmethod
def on_get(req, resp, id_): def on_get(req, resp, id_):
"""Handles GET requests"""
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_COST_CENTER_ID') description='API.INVALID_COST_CENTER_ID')
@ -135,6 +138,8 @@ class CostCenterItem:
@staticmethod @staticmethod
@user_logger @user_logger
def on_delete(req, resp, id_): def on_delete(req, resp, id_):
"""Handles DELETE requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_COST_CENTER_ID') description='API.INVALID_COST_CENTER_ID')
@ -282,6 +287,7 @@ class CostCenterItem:
@user_logger @user_logger
def on_put(req, resp, id_): def on_put(req, resp, id_):
"""Handles PUT requests""" """Handles PUT requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
except Exception as ex: except Exception as ex:
@ -376,6 +382,7 @@ class CostCenterTariffCollection:
@staticmethod @staticmethod
def on_get(req, resp, id_): def on_get(req, resp, id_):
"""Handles GET requests"""
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_COST_CENTER_ID') description='API.INVALID_COST_CENTER_ID')
@ -410,6 +417,7 @@ class CostCenterTariffCollection:
@user_logger @user_logger
def on_post(req, resp, id_): def on_post(req, resp, id_):
"""Handles POST requests""" """Handles POST requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
except Exception as ex: except Exception as ex:
@ -478,6 +486,8 @@ class CostCenterTariffItem:
@staticmethod @staticmethod
@user_logger @user_logger
def on_delete(req, resp, id_, tid): def on_delete(req, resp, id_, tid):
"""Handles DELETE requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_COST_CENTER_ID') description='API.INVALID_COST_CENTER_ID')

View File

@ -20,6 +20,7 @@ class CostFileCollection:
@staticmethod @staticmethod
def on_get(req, resp): def on_get(req, resp):
"""Handles GET requests"""
access_control(req) access_control(req)
cnx = mysql.connector.connect(**config.myems_historical_db) cnx = mysql.connector.connect(**config.myems_historical_db)
cursor = cnx.cursor() cursor = cnx.cursor()
@ -159,6 +160,7 @@ class CostFileItem:
@staticmethod @staticmethod
def on_get(req, resp, id_): def on_get(req, resp, id_):
"""Handles GET requests"""
access_control(req) access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, raise falcon.HTTPError(falcon.HTTP_400,
@ -194,6 +196,7 @@ class CostFileItem:
@staticmethod @staticmethod
@user_logger @user_logger
def on_delete(req, resp, id_): def on_delete(req, resp, id_):
"""Handles DELETE requests"""
access_control(req) access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
@ -245,6 +248,7 @@ class CostFileRestore:
@staticmethod @staticmethod
def on_get(req, resp, id_): def on_get(req, resp, id_):
"""Handles GET requests"""
access_control(req) access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',

View File

@ -101,6 +101,7 @@ class TariffCollection:
@user_logger @user_logger
def on_post(req, resp): def on_post(req, resp):
"""Handles POST requests""" """Handles POST requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
except Exception as ex: except Exception as ex:
@ -232,6 +233,7 @@ class TariffItem:
@staticmethod @staticmethod
def on_get(req, resp, id_): def on_get(req, resp, id_):
"""Handles GET requests"""
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_TARIFF_ID') description='API.INVALID_TARIFF_ID')
@ -311,6 +313,8 @@ class TariffItem:
@staticmethod @staticmethod
@user_logger @user_logger
def on_delete(req, resp, id_): def on_delete(req, resp, id_):
"""Handles DELETE requests"""
access_control(req)
if not id_.isdigit() or int(id_) <= 0: if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_TARIFF_ID') description='API.INVALID_TARIFF_ID')
@ -369,6 +373,7 @@ class TariffItem:
@user_logger @user_logger
def on_put(req, resp, id_): def on_put(req, resp, id_):
"""Handles PUT requests""" """Handles PUT requests"""
access_control(req)
try: try:
raw_json = req.stream.read().decode('utf-8') raw_json = req.stream.read().decode('utf-8')
except Exception as ex: except Exception as ex: