diff --git a/code/db/建表/坐席奖励表.sql b/code/db/建表/坐席奖励表.sql new file mode 100644 index 0000000..5c1aa08 --- /dev/null +++ b/code/db/建表/坐席奖励表.sql @@ -0,0 +1,17 @@ +drop table telsaler_reward; +create table telsaler_reward +( + rec_id integer not null, + reward_index integer not null, + telsaler_name varchar2(100) not null, + telsaler_code varchar2(20) +); + +CREATE OR REPLACE TRIGGER telsaler_reward_id + BEFORE INSERT ON telsaler_reward + FOR EACH ROW +BEGIN + SELECT desktop_archievement_seq.nextval + INTO :new.rec_id + FROM dual; +END; diff --git a/code/web/task_schedule/src/utils/reward.ts b/code/web/task_schedule/src/utils/reward.ts index a580e0d..0b12b1b 100644 --- a/code/web/task_schedule/src/utils/reward.ts +++ b/code/web/task_schedule/src/utils/reward.ts @@ -26,7 +26,7 @@ interface RewardProjectResponse interface RewardGainer { - acquiredDate: string; + recID: number; callerName: string; callerCode: string; rewardProjectCode: string; @@ -37,7 +37,7 @@ interface RewardGainerResponse { success: boolean; message: string; - gainerList: RewardGainer[]; + gainerList: RewardGainer[] | null; } /** @@ -108,7 +108,7 @@ function requestRewardGainers( handler: any ): void rewardResponse.success = data.success; rewardResponse.message = data.message; - rewardResponse.gainerList = data.gainerList; + rewardResponse.gainerList = checkRewardGainers( data.gainerList ); handler( rewardResponse, null ); }) @@ -158,12 +158,14 @@ function checkRewardGainers( gainers: any[]): RewardGainer[] | null gainers.forEach(( item: RewardGainer ): void => { const gainer: RewardGainer = { - acquiredDate: item.acquiredDate ?? "", + recID: item.recID ?? "", callerName: item.callerName ?? "", callerCode: item.callerCode ?? "", rewardProjectCode: item.rewardProjectCode ?? "", rewardProjectName: item.rewardProjectName ?? "", }; + + gainerList.push( gainer ); }); return gainerList; diff --git a/code/web/task_schedule/src/views/DataManagement.vue b/code/web/task_schedule/src/views/DataManagement.vue index 36550a8..b93b65f 100644 --- a/code/web/task_schedule/src/views/DataManagement.vue +++ b/code/web/task_schedule/src/views/DataManagement.vue @@ -53,7 +53,7 @@ @@ -64,7 +64,7 @@ @@ -78,20 +78,27 @@ :page-size="ui.tablePageSize" :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" - :total="ui.rewardGainerList.length" + :total="(ui.rewardGainerList ?? []).length" @current-change="onCurrentPageIndexChange" @size-change="onTablePageSizeChange" /> -
+
- +
@@ -107,15 +114,18 @@ import { requestRewardGainers } from "@/utils/reward.js"; import { ElMessageBox } from "element-plus"; -import RewardGainerDialog from "@/views/reward/RewardGainer.vue"; +import RewardGainerDialog from "@/views/reward/RewardTelsaler.vue"; interface UI { showUI: boolean; showEditRewardGainerDialog: boolean; - rewardGainerList: RewardGainer[]; + rewardGainerList: RewardGainer[] | null; tablePageIndex: number; tablePageSize: number; + selectedRecID: number | null; + selectedTelsalerName: string; + selectedRewardProjectCode: number; } export default { @@ -126,9 +136,12 @@ export default { const ui: UI = reactive({ showUI: true, showEditRewardGainerDialog: false, - rewardGainerList: [], + rewardGainerList: null, tablePageIndex: 1, tablePageSize: 10, + selectedRecID: null, + selectedTelsalerName: "", + selectedRewardProjectCode: -999, }); /** 请求数据相关 ***************************/ @@ -160,8 +173,17 @@ export default { return ( ui.tablePageSize + 1 ) * 40; }); + /** + * 用于根据分页组件的参数,生成表格用的数据。 + */ const rewardGainerData = computed((): RewardGainer[] => { + // 防御性验证 + if ( ui.rewardGainerList === null ) + { + return []; + } + const startIndex = ui.tablePageSize * ( ui.tablePageIndex - 1 ); const endIndex = startIndex + ui.tablePageSize; const data = ui.rewardGainerList.slice( startIndex, endIndex ); @@ -182,10 +204,18 @@ export default { }; // 表格编辑相关 - const onEditRewardGainer = ( callerName: string, rewardProjectName: string ): void => + /** + * 响应用户在表格中的双击 + * @param telsalerName + * @param rewardProjectName + */ + const onEditRewardGainer = ( recID: number, telsalerName: string, rewardProjectCode: number ): void => { - console.log( "编辑获奖清单", callerName, rewardProjectName ); + console.log( "编辑获奖清单", recID, telsalerName, rewardProjectCode ); + ui.selectedRecID = recID; + ui.selectedTelsalerName = telsalerName; + ui.selectedRewardProjectCode = rewardProjectCode; ui.showEditRewardGainerDialog = true; }; diff --git a/code/web/task_schedule/src/views/reward/RewardGainer.vue b/code/web/task_schedule/src/views/reward/RewardGainer.vue deleted file mode 100644 index 3ef6d7f..0000000 --- a/code/web/task_schedule/src/views/reward/RewardGainer.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - diff --git a/code/web/task_schedule/src/views/reward/RewardTelsaler.vue b/code/web/task_schedule/src/views/reward/RewardTelsaler.vue new file mode 100644 index 0000000..38f3b9b --- /dev/null +++ b/code/web/task_schedule/src/views/reward/RewardTelsaler.vue @@ -0,0 +1,183 @@ + + + + diff --git a/code/后端/desktop_archievement_backend/pom.xml b/code/后端/desktop_archievement_backend/pom.xml index 35b18a5..f6778a5 100644 --- a/code/后端/desktop_archievement_backend/pom.xml +++ b/code/后端/desktop_archievement_backend/pom.xml @@ -122,10 +122,19 @@ mybatis 3.5.13 - desktop_archievement_backend + + + src/main/resources + + **/*.properties + **/*.xml + + false + + org.apache.maven.plugins 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 ae853fe..46856ae 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 @@ -18,7 +18,7 @@ public interface RewardsMapper { public ArrayList queryRewardProjects(); - public ArrayList queryRewardGainers(); + public ArrayList queryRewardTelsaler(); } diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/RewardGainer.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/RewardGainer.java index ad31fa4..828e081 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/RewardGainer.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/RewardGainer.java @@ -13,12 +13,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class RewardGainer { - public RewardGainer() {} + public RewardGainer() + {} - public RewardGainer( String acquiredDate, String callerName, String callerCode, - String rewardProjectCode, String rewardProjectName) + public RewardGainer( int recID, String callerName, String callerCode, int rewardProjectCode, + String rewardProjectName) { - this.acquiredDate = acquiredDate; + this.recID = recID; this.callerName = callerName; this.callerCode = callerCode; this.rewardProjectCode = rewardProjectCode; @@ -28,9 +29,9 @@ public class RewardGainer @Override public String toString() { - return "RewardGainer [acquiredDate=" + acquiredDate + ", callerName=" + callerName - + ", callerCode=" + callerCode + ", rewardProjectCode=" + rewardProjectCode - + ", rewardProjectName=" + rewardProjectName + "]"; + return "RewardGainer [recID=" + recID + ", callerName=" + callerName + ", callerCode=" + + callerCode + ", rewardProjectCode=" + rewardProjectCode + ", rewardProjectName=" + + rewardProjectName + "]"; } @Override @@ -38,14 +39,14 @@ public class RewardGainer { final int prime = 31; int result = 1; - result = prime * result + ((acquiredDate == null) ? 0 : acquiredDate.hashCode()); + result = prime * result + recID; result = prime * result + ((callerName == null) ? 0 : callerName.hashCode()); result = prime * result + ((callerCode == null) ? 0 : callerCode.hashCode()); - result = prime * result + ((rewardProjectCode == null) ? 0 : rewardProjectCode.hashCode()); + result = prime * result + rewardProjectCode; result = prime * result + ((rewardProjectName == null) ? 0 : rewardProjectName.hashCode()); return result; } - + @Override public boolean equals( Object obj ) { @@ -56,11 +57,7 @@ public class RewardGainer if ( getClass() != obj.getClass() ) return false; RewardGainer other = (RewardGainer) obj; - if ( acquiredDate == null ) - { - if ( other.acquiredDate != null ) - return false; - } else if ( !acquiredDate.equals( other.acquiredDate ) ) + if ( recID != other.recID ) return false; if ( callerName == null ) { @@ -74,11 +71,7 @@ public class RewardGainer return false; } else if ( !callerCode.equals( other.callerCode ) ) return false; - if ( rewardProjectCode == null ) - { - if ( other.rewardProjectCode != null ) - return false; - } else if ( !rewardProjectCode.equals( other.rewardProjectCode ) ) + if ( rewardProjectCode != other.rewardProjectCode ) return false; if ( rewardProjectName == null ) { @@ -89,14 +82,14 @@ public class RewardGainer return true; } - public String getAcquiredDate() + public int getRecID() { - return acquiredDate; + return recID; } - public void setAcquiredDate( String acquiredDate ) + public void setRecID( int recID ) { - this.acquiredDate = acquiredDate; + this.recID = recID; } public String getCallerName() @@ -119,12 +112,12 @@ public class RewardGainer this.callerCode = callerCode; } - public String getRewardProjectCode() + public int getRewardProjectCode() { return rewardProjectCode; } - public void setRewardProjectCode( String rewardProjectCode ) + public void setRewardProjectCode( int rewardProjectCode ) { this.rewardProjectCode = rewardProjectCode; } @@ -139,8 +132,8 @@ public class RewardGainer this.rewardProjectName = rewardProjectName; } - @JsonProperty( "acquiredDate" ) - private String acquiredDate; + @JsonProperty( "recID" ) + private int recID; @JsonProperty( "callerName" ) private String callerName; @@ -149,7 +142,7 @@ public class RewardGainer private String callerCode; @JsonProperty( "rewardProjectCode" ) - private String rewardProjectCode; + private int rewardProjectCode; @JsonProperty( "rewardProjectName" ) private String rewardProjectName; diff --git a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java index 8b1039c..6d3acb0 100644 --- a/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java +++ b/code/后端/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/utils/MybatisUtils.java @@ -21,18 +21,17 @@ public class MybatisUtils { private static HashMap SessionMap = new HashMap<>(); private static String DEFAULT_CONFIGFILE = "mybatis/mybatis-config.xml"; - + /** * * @param configFile * @return * @throws IOException */ - public static SqlSession getSqlSession(String configFile ) - throws IOException + public static SqlSession getSqlSession( String configFile ) throws IOException { // 根据配置文件的路径,查找是否已经创建了对应的session - SqlSession session = SessionMap.get(configFile); + SqlSession session = SessionMap.get( configFile ); // 找到就直接返回 if ( session != null ) @@ -41,21 +40,20 @@ public class MybatisUtils } // 没找到就创建一个 - InputStream configIS = Resources.getResourceAsStream(configFile); - SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configIS); + InputStream configIS = Resources.getResourceAsStream( configFile ); + SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); session = factory.openSession(); // 保存 - SessionMap.put(configFile, session); + SessionMap.put( configFile, session ); return session; } - - public static SqlSession getSqlSession() - throws IOException + + public static SqlSession getSqlSession() throws IOException { // 根据配置文件的路径,查找是否已经创建了对应的session - SqlSession session = SessionMap.get(DEFAULT_CONFIGFILE); + SqlSession session = SessionMap.get( DEFAULT_CONFIGFILE ); // 找到就直接返回 if ( session != null ) @@ -64,13 +62,13 @@ public class MybatisUtils } // 没找到就创建一个 - InputStream configIS = Resources.getResourceAsStream(DEFAULT_CONFIGFILE); - SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configIS); + InputStream configIS = Resources.getResourceAsStream( DEFAULT_CONFIGFILE ); + SqlSessionFactory factory = new SqlSessionFactoryBuilder().build( configIS ); session = factory.openSession(); // 保存 - SessionMap.put(DEFAULT_CONFIGFILE, session); + SessionMap.put( DEFAULT_CONFIGFILE, session ); return session; - } -} \ 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 c317086..c958a38 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 @@ -83,7 +83,7 @@ public class RewardController SqlSession session = MybatisUtils.getSqlSession(); RewardsMapper mapper = session.getMapper( RewardsMapper.class ); - ArrayList gainers = mapper.queryRewardGainers(); + ArrayList gainers = mapper.queryRewardTelsaler(); response.setSuccess( true ); response.setMessage( "查询成功!" ); 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 237d0c2..0b37624 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 @@ -9,20 +9,21 @@ - + SELECT hjr.rec_id rec_id, + hjr.telsaler_name telsaler_name, + hjr.telsaler_code telsaler_code, xm.reward_name reward_name, - xm.reward_index - FROM reward_gainers hjr, - reward_projects xm + xm.reward_index reward_index + FROM telsaler_reward hjr, + reward_projects xm WHERE hjr.reward_index = xm.reward_index + order by xm.reward_index desc - - - + + + diff --git a/code/后端/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java b/code/后端/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java index b43c342..965815b 100644 --- a/code/后端/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java +++ b/code/后端/desktop_archievement_backend/src/test/java/com/cpic/xim/DesktopArchievement/test/DesktopArchievementTest.java @@ -147,7 +147,7 @@ public class DesktopArchievementTest session = MybatisUtils.getSqlSession(); RewardsMapper mapper = session.getMapper( RewardsMapper.class ); - ArrayList gainers = mapper.queryRewardGainers(); + ArrayList gainers = mapper.queryRewardTelsaler(); System.out.println( gainers ); @@ -155,6 +155,7 @@ public class DesktopArchievementTest } catch ( IOException error ) { + System.out.println( error.getMessage() ); assert (false); } }