Commit a6fa5ca5 authored by jiangpeng's avatar jiangpeng Committed by vipwzw

vote:fix group voteNum in update group

parent 095c7c43
......@@ -44,6 +44,14 @@ func (v *vote) ExecLocal_UpdateGroup(update *vty.UpdateGroup, tx *types.Transact
dbSet := &types.LocalDBSet{}
groupInfo := decodeGroupInfo(receiptData.Logs[0].Log)
table := newGroupTable(v.GetLocalDB())
row, err := table.GetData([]byte(groupInfo.ID))
if err != nil {
elog.Error("execLocal updateGroup", "txHash", hex.EncodeToString(tx.Hash()), "groupTable get", err)
return nil, err
}
oldInfo, _ := row.Data.(*vty.GroupInfo)
// 状态数据中未保存投票个数信息,需要进行赋值
groupInfo.VoteNum = oldInfo.VoteNum
kvs, err := v.updateAndSaveTable(table.Replace, table.Save, groupInfo, tx, vty.NameUpdateGroupAction, "group")
if err != nil {
return nil, err
......@@ -88,7 +96,7 @@ func (v *vote) ExecLocal_CreateVote(payload *vty.CreateVote, tx *types.Transacti
gTable := newGroupTable(v.GetLocalDB())
row, err := gTable.GetData([]byte(voteInfo.GroupID))
if err != nil {
elog.Error("execLocal createVote", "txHash", hex.EncodeToString(tx.Hash()), "voteTable get", err)
elog.Error("execLocal createVote", "txHash", hex.EncodeToString(tx.Hash()), "groupTable get", err)
return nil, err
}
groupInfo, _ := row.Data.(*vty.GroupInfo)
......
......@@ -97,10 +97,14 @@ func TestVote_ExecLocal_UpdateGroup(t *testing.T) {
index: 0,
payload: &vty.CreateGroup{Name: "test"},
}, {
index: 1,
payload: &vty.UpdateGroup{GroupID: groupID, RemoveAdmins: []string{testAddrs[0]}, AddAdmins: []string{testAddrs[1]}},
index: 1,
payload: &vty.CreateVote{Name: "v1", GroupID: groupID, VoteOptions: []string{"A", "B"},
BeginTimestamp: testBlockTime, EndTimestamp: testBlockTime + 1},
}, {
index: 2,
payload: &vty.UpdateGroup{GroupID: groupID, RemoveAdmins: []string{testAddrs[0]}, AddAdmins: []string{testAddrs[1]}},
}, {
index: 3,
priv: privKeys[1],
payload: &vty.UpdateGroup{GroupID: groupID, RemoveMembers: testAddrs, AddMembers: members},
}}
......@@ -122,7 +126,7 @@ func TestVote_ExecLocal_UpdateGroup(t *testing.T) {
testTableData(t, table, tcArr1, "check member groupIDs")
table = newGroupTable(mock.exec.GetLocalDB())
expectInfo := &vty.GroupInfo{ID: groupID, Name: "test", Admins: []string{testAddrs[1]},
Members: members, MemberNum: 1, Creator: testAddrs[0]}
Members: members, MemberNum: 1, Creator: testAddrs[0], VoteNum: 1}
testTableData(t, table, []*tableCase{{
index: 0,
key: []byte(groupID),
......@@ -136,7 +140,8 @@ func TestVote_ExecLocal_UpdateGroup(t *testing.T) {
tx := util.CreateNoneTx(mock.cfg, privKeys[0])
group, err := newAction(mock.exec, tx, 0).getGroupInfo(groupID)
require.Nil(t, err)
require.Equal(t, group.String(), expectInfo.String())
group.VoteNum = 1
require.Equal(t, expectInfo.String(), group.String())
}
func TestVote_ExecLocal_CreateVote(t *testing.T) {
......
......@@ -34,7 +34,7 @@ message GroupMember {
##### 交易回执
```proto
// 投票组信息
message GroupInfo {
......@@ -79,7 +79,7 @@ message GroupMember {
```
##### 交易回执
```proto
// 投票组信息
message GroupInfo {
......@@ -223,6 +223,7 @@ message VoteInfo {
repeated CommitInfo commitInfos = 8; //已投票的提交信息
string description = 9; //描述信息
uint32 status = 10; //状态,1即将开始,2正在进行,3已经结束,4已关闭
string groupName = 11; //所属投票组名称
}
```
......@@ -339,7 +340,7 @@ message ReqStrings {
message MemberInfos {
repeated MemberInfo memberList = 1; //投票组成员信息列表
}
message MemberInfo {
string addr = 1; //地址
string name = 2; //用户名称
......@@ -351,7 +352,7 @@ message MemberInfo {
- 通用查询json rpc接口,Chain33.Query
- funcName: GetMembers
-
-
```bash
curl -kd '{"method":"Chain33.Query","params":[{"execer":"vote","funcName":"GetMembers","payload":{"items":["1BQXS6TxaYYG5mADaWij4AxhZZUTpw95a5"]}}],"id":0}' http://localhost:8801
```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment