From 1d554056ace82215c17fc5e26535df738e8e7d90 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Thu, 21 Sep 2023 16:56:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/db/pkg/telsaler_reward_pkg.pck | 30 +++ code/web/task_schedule/package-lock.json | 244 ++---------------- code/web/task_schedule/package.json | 4 +- .../xim/mybatis/mapper/RewardsMapper.java | 4 +- .../rewards/AddTelsalerRequest.java | 91 +++++++ .../rewards/AddTelsalerResponse.java | 25 ++ .../rewards/DeleteTelsalerRequest.java | 65 +++++ .../rewards/DeleteTelsalerResponse.java | 25 ++ .../controllers/rewards/RewardController.java | 132 +++++++++- .../rewards/UpdateTelsalerRequest.java | 109 ++++++++ .../rewards/UpdateTelsalerResponse.java | 25 ++ .../mybatis/mapper/RewardsMapper.xml | 17 +- 12 files changed, 537 insertions(+), 234 deletions(-) create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerRequest.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerRequest.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerResponse.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerRequest.java create mode 100644 code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerResponse.java diff --git a/code/db/pkg/telsaler_reward_pkg.pck b/code/db/pkg/telsaler_reward_pkg.pck index 483bbb2..c70af96 100644 --- a/code/db/pkg/telsaler_reward_pkg.pck +++ b/code/db/pkg/telsaler_reward_pkg.pck @@ -4,6 +4,12 @@ CREATE OR REPLACE PACKAGE telsaler_reward_pkg IS -- Created : 2023/9/13 10:05:43 -- Purpose : ϯصİ + PROCEDURE add_telsaler_reward + ( + a_reward_index VARCHAR2, + a_telsaler_name VARCHAR2 + ); + PROCEDURE save_telsaler_reward ( a_rec_id INTEGER, @@ -17,6 +23,30 @@ END telsaler_reward_pkg; / CREATE OR REPLACE PACKAGE BODY telsaler_reward_pkg IS + PROCEDURE add_telsaler_reward + ( + a_reward_index VARCHAR2, + a_telsaler_name VARCHAR2 + ) IS + BEGIN + BEGIN + INSERT INTO telsaler_reward + (reward_index, + telsaler_name) + VALUES + (a_reward_index, + a_telsaler_name); + EXCEPTION + WHEN OTHERS THEN + IF SQLCODE = -00001 + THEN + raise_application_error(-20001, + 'ֵظ'); + END IF; + END; + COMMIT; + END; + PROCEDURE save_telsaler_reward ( a_rec_id INTEGER, diff --git a/code/web/task_schedule/package-lock.json b/code/web/task_schedule/package-lock.json index 4d504b0..b853ec4 100644 --- a/code/web/task_schedule/package-lock.json +++ b/code/web/task_schedule/package-lock.json @@ -21,7 +21,7 @@ "devDependencies": { "@babel/eslint-parser": "^7.22.15", "@rushstack/eslint-patch": "^1.4.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/eslint-plugin": "^6.7.2", "@vitejs/plugin-vue": "^4.3.4", "@vue/cli-plugin-eslint": "^5.0.8", "@vue/eslint-config-typescript": "^12.0.0", @@ -31,7 +31,7 @@ "eslint-config-standard-with-typescript": "^39.0.0", "eslint-plugin-vue": "^9.17.0", "node-sass": "^9.0.0", - "sass": "^1.67.0", + "sass": "^1.68.0", "style-loader": "^3.3.3", "ts-node": "^10.9.1", "vue-eslint-parser": "^9.3.1" @@ -1578,16 +1578,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz", - "integrity": "sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==", + "version": "6.7.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.2.tgz", + "integrity": "sha512-ooaHxlmSgZTM6CHYAFRlifqh1OAr3PAQEwi7lhYhaegbnXrnh7CDcHmc3+ihhbQC7H0i4JF0psI5ehzkF6Yl6Q==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/type-utils": "6.7.0", - "@typescript-eslint/utils": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/type-utils": "6.7.2", + "@typescript-eslint/utils": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1608,50 +1608,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", - "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1723,13 +1679,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz", - "integrity": "sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==", + "version": "6.7.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.7.2.tgz", + "integrity": "sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.0", - "@typescript-eslint/utils": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/utils": "6.7.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1745,93 +1701,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", - "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/types": { "version": "6.7.2", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.2.tgz", @@ -1898,17 +1767,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.7.0.tgz", - "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", + "version": "6.7.2", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.7.2.tgz", + "integrity": "sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.2", "semver": "^7.5.4" }, "engines": { @@ -1918,73 +1787,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", - "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", - "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -12813,9 +12615,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.67.0", - "resolved": "https://registry.npmmirror.com/sass/-/sass-1.67.0.tgz", - "integrity": "sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A==", + "version": "1.68.0", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.68.0.tgz", + "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==", "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/code/web/task_schedule/package.json b/code/web/task_schedule/package.json index 7ac79d4..66f632b 100644 --- a/code/web/task_schedule/package.json +++ b/code/web/task_schedule/package.json @@ -22,7 +22,7 @@ "devDependencies": { "@babel/eslint-parser": "^7.22.15", "@rushstack/eslint-patch": "^1.4.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/eslint-plugin": "^6.7.2", "@vitejs/plugin-vue": "^4.3.4", "@vue/cli-plugin-eslint": "^5.0.8", "@vue/eslint-config-typescript": "^12.0.0", @@ -32,7 +32,7 @@ "eslint-config-standard-with-typescript": "^39.0.0", "eslint-plugin-vue": "^9.17.0", "node-sass": "^9.0.0", - "sass": "^1.67.0", + "sass": "^1.68.0", "style-loader": "^3.3.3", "ts-node": "^10.9.1", "vue-eslint-parser": "^9.3.1" diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/RewardsMapper.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/RewardsMapper.java index 6ddfefa..b7666e3 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/RewardsMapper.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/RewardsMapper.java @@ -21,7 +21,9 @@ public interface RewardsMapper public ArrayList queryRewardTelsaler(); - public void saveRewardTelSaler( HashMap params ); + public void addRewardTelSaler( HashMap params ); + + public void updateRewardTelSaler( HashMap params ); public void deleteRewardTelSaler( HashMap params ); } diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerRequest.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerRequest.java new file mode 100644 index 0000000..4951cf6 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerRequest.java @@ -0,0 +1,91 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 11:35:57 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerRequest.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.rewards; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class AddTelsalerRequest +{ + public AddTelsalerRequest() {} + + public AddTelsalerRequest( String rewardIndex, String telsalerName ) + { + this.rewardIndex = rewardIndex; + this.telsalerName = telsalerName; + } + + public String getRewardIndex() + { + return rewardIndex; + } + + public void setRewardIndex( String rewardIndex ) + { + this.rewardIndex = rewardIndex; + } + + public String getTelsalerName() + { + return telsalerName; + } + + public void setTelsalerName( String telsalerName ) + { + this.telsalerName = telsalerName; + } + + @Override + public String toString() + { + return "AddTelsalerRequest [rewardIndex=" + rewardIndex + ", telsalerName=" + telsalerName + + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((rewardIndex == null) ? 0 : rewardIndex.hashCode()); + result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode()); + return result; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( obj == null ) + return false; + if ( getClass() != obj.getClass() ) + return false; + AddTelsalerRequest other = (AddTelsalerRequest) obj; + if ( rewardIndex == null ) + { + if ( other.rewardIndex != null ) + return false; + } else if ( !rewardIndex.equals( other.rewardIndex ) ) + return false; + if ( telsalerName == null ) + { + if ( other.telsalerName != null ) + return false; + } else if ( !telsalerName.equals( other.telsalerName ) ) + return false; + return true; + } + + @JsonProperty("rewardIndex") + private String rewardIndex; + + @JsonProperty("telsalerName") + private String telsalerName; +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java new file mode 100644 index 0000000..f9e1578 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java @@ -0,0 +1,25 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 11:35:57 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.rewards; + +import com.cpic.xim.web.controllers.QueryResponse; + +public class AddTelsalerResponse extends QueryResponse +{ + public AddTelsalerResponse() + { + super(); + } + + public AddTelsalerResponse( boolean success, String message ) + { + super( success, message ); + } +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerRequest.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerRequest.java new file mode 100644 index 0000000..49906e6 --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerRequest.java @@ -0,0 +1,65 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 11:35:57 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerRequest.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.rewards; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class DeleteTelsalerRequest +{ + public DeleteTelsalerRequest() {} + + public DeleteTelsalerRequest( int recordID) + { + this.recordID = recordID; + } + + @Override + public String toString() + { + return "DeleteTelsalerRequest [recordID=" + recordID + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + recordID; + return result; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( obj == null ) + return false; + if ( getClass() != obj.getClass() ) + return false; + DeleteTelsalerRequest other = (DeleteTelsalerRequest) obj; + if ( recordID != other.recordID ) + return false; + return true; + } + + public int getRecordID() + { + return recordID; + } + + public void setRecordID( int recordID ) + { + this.recordID = recordID; + } + + @JsonProperty("recordID") + private int recordID; +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerResponse.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerResponse.java new file mode 100644 index 0000000..a71f26b --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/DeleteTelsalerResponse.java @@ -0,0 +1,25 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 11:35:57 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/AddTelsalerResponse.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.rewards; + +import com.cpic.xim.web.controllers.QueryResponse; + +public class DeleteTelsalerResponse extends QueryResponse +{ + public DeleteTelsalerResponse() + { + super(); + } + + public DeleteTelsalerResponse( boolean success, String message ) + { + super( success, message ); + } +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/RewardController.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/RewardController.java index 6427506..2d0b276 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/RewardController.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/RewardController.java @@ -11,11 +11,14 @@ package com.cpic.xim.web.controllers.rewards; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; +import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.session.SqlSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.cpic.xim.mybatis.mapper.RewardsMapper; @@ -68,13 +71,6 @@ public class RewardController logger.debug( "查询奖项清单," + response.getMessage() + "," + error.getMessage() ); } - finally - { - if ( session != null ) - { - session.close(); - } - } return response; } @@ -104,12 +100,130 @@ public class RewardController response.setMessage( "查询失败!" + error.getMessage() ); response.setGainerList( null ); } - finally + + return response; + } + + @PostMapping( "/add_telsaler_reward.do" ) + @ResponseBody + public AddTelsalerResponse addTelsalerReward( @RequestBody AddTelsalerRequest request ) + { + AddTelsalerResponse response = new AddTelsalerResponse(); + SqlSession session = null; + + try + { + session = MybatisUtils.getSqlSession(); + + RewardsMapper mapper = session.getMapper( RewardsMapper.class ); + HashMap params = new HashMap<>( 3 ); + + params.put( "a_reward_index", request.getRewardIndex() ); + params.put( "a_telsaler_name", request.getTelsalerName() ); + + mapper.addRewardTelSaler( params ); + session.commit(); + + response.setSuccess( true ); + response.setMessage( "添加成功!" ); + } + catch ( PersistenceException error ) { if ( session != null ) { - session.close(); + session.rollback(); } + + logger.error( "添加获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + } + catch ( IOException error ) + { + logger.error( "添加获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + } + + return response; + } + + @PostMapping( "/delete_telsaler_reward.do" ) + @ResponseBody + public DeleteTelsalerResponse deleteTelsalerReward( @RequestBody DeleteTelsalerRequest request ) + { + DeleteTelsalerResponse response = new DeleteTelsalerResponse(); + SqlSession session = null; + + try + { + session = MybatisUtils.getSqlSession(); + RewardsMapper mapper = session.getMapper( RewardsMapper.class ); + + HashMap param = new HashMap( 3 ); + + param.put( "a_rec_id", request.getRecordID() ); + + mapper.deleteRewardTelSaler( param ); + + response.setSuccess( true ); + response.setMessage( "删除成功!" ); + } + catch ( IOException error ) + { + logger.error( "删除获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + } + catch ( PersistenceException error ) + { + logger.error( "删除获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + } + + return response; + } + + @PostMapping( "update_telsaler_reward.do" ) + @ResponseBody + UpdateTelsalerResponse updateTelsalerReward( @RequestBody UpdateTelsalerRequest request ) + { + UpdateTelsalerResponse response = new UpdateTelsalerResponse(); + SqlSession session = null; + + try + { + session = MybatisUtils.getSqlSession(); + RewardsMapper mapper = session.getMapper( RewardsMapper.class ); + HashMap params = new HashMap<>( 3 ); + + params.put( "a_rec_id", request.getRecordID() ); + params.put( "a_telsaler_name", request.getTelsalerName() ); + params.put( "a_reward_index", request.getRewardIndex() ); + + mapper.updateRewardTelSaler( params ); + + response.setSuccess( true ); + response.setMessage( "更新成功!" ); + } + catch ( IOException error ) + { + logger.error( "更新获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + } + catch ( PersistenceException error ) + { + logger.error( "更新获奖坐席失败,原因:" + error.getMessage() ); + + response.setSuccess( false ); + response.setMessage( error.getMessage() ); } return response; diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerRequest.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerRequest.java new file mode 100644 index 0000000..fe6af8c --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerRequest.java @@ -0,0 +1,109 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 16:01:51 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerRequest.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ + +package com.cpic.xim.web.controllers.rewards; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class UpdateTelsalerRequest +{ + public UpdateTelsalerRequest() {} + + public UpdateTelsalerRequest( int recordID, String rewardIndex, String telsalerName ) + { + this.recordID = recordID; + this.rewardIndex = rewardIndex; + this.telsalerName = telsalerName; + } + + public String getRewardIndex() + { + return rewardIndex; + } + + public void setRewardIndex( String rewardIndex ) + { + this.rewardIndex = rewardIndex; + } + + public String getTelsalerName() + { + return telsalerName; + } + + public void setTelsalerName( String telsalerName ) + { + this.telsalerName = telsalerName; + } + + public int getRecordID() + { + return recordID; + } + + public void setRecordID( int recordID ) + { + this.recordID = recordID; + } + + @Override + public String toString() + { + return "UpdateTelsalerRequest [recordID=" + recordID + ", rewardIndex=" + rewardIndex + + ", telsalerName=" + telsalerName + "]"; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + recordID; + result = prime * result + ((rewardIndex == null) ? 0 : rewardIndex.hashCode()); + result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode()); + return result; + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + return true; + if ( obj == null ) + return false; + if ( getClass() != obj.getClass() ) + return false; + UpdateTelsalerRequest other = (UpdateTelsalerRequest) obj; + if ( recordID != other.recordID ) + return false; + if ( rewardIndex == null ) + { + if ( other.rewardIndex != null ) + return false; + } else if ( !rewardIndex.equals( other.rewardIndex ) ) + return false; + if ( telsalerName == null ) + { + if ( other.telsalerName != null ) + return false; + } else if ( !telsalerName.equals( other.telsalerName ) ) + return false; + return true; + } + + @JsonProperty("recordID") + private int recordID; + + @JsonProperty("rewardIndex") + private String rewardIndex; + + @JsonProperty("telsalerName") + private String telsalerName; +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerResponse.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerResponse.java new file mode 100644 index 0000000..bc8c41c --- /dev/null +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerResponse.java @@ -0,0 +1,25 @@ +/* + * @Author: Kane + * @Date: 2023-09-21 11:35:57 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/rewards/UpdateTelsalerResponsense.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers.rewards; + +import com.cpic.xim.web.controllers.QueryResponse; + +public class UpdateTelsalerResponse extends QueryResponse +{ + public UpdateTelsalerResponse() + { + super(); + } + + public UpdateTelsalerResponse( boolean success, String message ) + { + super( success, message ); + } +} \ No newline at end of file diff --git a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/RewardsMapper.xml b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/RewardsMapper.xml index 7bf8c77..8dcec3a 100644 --- a/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/RewardsMapper.xml +++ b/code/后端/desktop_archievement_backend/src/main/resources/mybatis/mapper/RewardsMapper.xml @@ -28,8 +28,23 @@ - + call telsaler_reward_pkg.add_telsaler_reward( + #{a_reward_index,mode=IN,jdbcType=VARCHAR}, + #{a_telsaler_name,mode=IN,jdbcType=VARCHAR}) + + + + + + + \ No newline at end of file