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 @@
{{ rewardGainer.row.callerName }}
@@ -64,7 +64,7 @@
{{ rewardGainer.row.rewardProjectName }}
@@ -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 @@
-