|
@@ -43,18 +43,7 @@ func (p *ProjectTask) modifyUpdate(pid string, index, position int, tmpPro, modi
|
|
_ = udpclient.WriteUdp(by, mu.OP_TYPE_DATA, toaddr[1])
|
|
_ = udpclient.WriteUdp(by, mu.OP_TYPE_DATA, toaddr[1])
|
|
}
|
|
}
|
|
// 修改内存
|
|
// 修改内存
|
|
- var pro ProjectInfo
|
|
|
|
- err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
- if err != nil {
|
|
|
|
- qu.Debug(err)
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
|
- if v, ok := p.AllIdsMap[pid]; ok {
|
|
|
|
- v.P = &pro
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
|
-
|
|
|
|
- p.printMemPro(pid)
|
|
|
|
|
|
+ p.modifyMem(tmpPro)
|
|
}
|
|
}
|
|
|
|
|
|
func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp map[string]interface{}, tmpPro map[string]interface{}, modifyMap map[string]interface{}) {
|
|
func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp map[string]interface{}, tmpPro map[string]interface{}, modifyMap map[string]interface{}) {
|
|
@@ -79,16 +68,7 @@ func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp ma
|
|
//没有合并到新项目中
|
|
//没有合并到新项目中
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
// 修改内存
|
|
// 修改内存
|
|
- var pro ProjectInfo
|
|
|
|
- err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
- if err != nil {
|
|
|
|
- qu.Debug(err)
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
|
- if v, ok := p.AllIdsMap[pInfoId]; ok {
|
|
|
|
- v.P = &pro
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
|
|
|
+ p.modifyMem(tmpPro)
|
|
}
|
|
}
|
|
}else if index == 0 {
|
|
}else if index == 0 {
|
|
// 招标公告信息在原有项目中位于第1个
|
|
// 招标公告信息在原有项目中位于第1个
|
|
@@ -146,16 +126,7 @@ func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp ma
|
|
//没有合并到新项目中,更新list字段,有条件更新项目外围字段
|
|
//没有合并到新项目中,更新list字段,有条件更新项目外围字段
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
// 修改内存
|
|
// 修改内存
|
|
- var pro ProjectInfo
|
|
|
|
- err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
- if err != nil {
|
|
|
|
- qu.Debug(err)
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
|
- if v, ok := p.AllIdsMap[pInfoId]; ok {
|
|
|
|
- v.P = &pro
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
|
|
|
+ p.modifyMem(tmpPro)
|
|
}
|
|
}
|
|
}else if index == 1 {
|
|
}else if index == 1 {
|
|
// 招标公告信息在原有项目中处于中间某一条
|
|
// 招标公告信息在原有项目中处于中间某一条
|
|
@@ -182,16 +153,7 @@ func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp ma
|
|
// 未合并到新项目中
|
|
// 未合并到新项目中
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
// 修改内存
|
|
// 修改内存
|
|
- var pro ProjectInfo
|
|
|
|
- err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
- if err != nil {
|
|
|
|
- qu.Debug(err)
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
|
- if v, ok := p.AllIdsMap[pInfoId]; ok {
|
|
|
|
- v.P = &pro
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
|
|
|
+ p.modifyMem(tmpPro)
|
|
}
|
|
}
|
|
}else if index == 2 {
|
|
}else if index == 2 {
|
|
// 招标公告信息在原有项目中位于最后一条
|
|
// 招标公告信息在原有项目中位于最后一条
|
|
@@ -220,16 +182,7 @@ func (p *ProjectTask) mergeAndModify(pInfoId string, index, position int, tmp ma
|
|
// 未合并到新项目中
|
|
// 未合并到新项目中
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
p.modifyUpdate(pInfoId, index, position, tmpPro, modifyMap)
|
|
// 修改内存
|
|
// 修改内存
|
|
- var pro ProjectInfo
|
|
|
|
- err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
- if err != nil {
|
|
|
|
- qu.Debug(err)
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Lock()
|
|
|
|
- if v, ok := p.AllIdsMap[pInfoId]; ok {
|
|
|
|
- v.P = &pro
|
|
|
|
- }
|
|
|
|
- p.AllIdsMapLock.Unlock()
|
|
|
|
|
|
+ p.modifyMem(tmpPro)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1218,6 +1171,32 @@ func delOldPro(pid string) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 修改内存中的数据
|
|
|
|
+func (p *ProjectTask) modifyMem(tmpPro map[string]interface{}) {
|
|
|
|
+ pid := qu.ObjToString(tmpPro["_id"])
|
|
|
|
+ var pro ProjectInfo
|
|
|
|
+ err := mapstructure.Decode(tmpPro, &pro)
|
|
|
|
+ if err != nil {
|
|
|
|
+ qu.Debug(err)
|
|
|
|
+ }
|
|
|
|
+ pro.Id = StringTOBsonId(pid)
|
|
|
|
+ tmpMap := make(map[string]InfoField)
|
|
|
|
+ infoMap := tmpPro["infofield"].(map[string]interface{})
|
|
|
|
+ for _, v := range infoMap {
|
|
|
|
+ var field InfoField
|
|
|
|
+ b, _ := json.Marshal(v)
|
|
|
|
+ _ = json.Unmarshal(b, &field)
|
|
|
|
+ tmpMap[pid] = field
|
|
|
|
+ }
|
|
|
|
+ pro.InfoFiled = tmpMap
|
|
|
|
+ p.AllIdsMapLock.Lock()
|
|
|
|
+ if v, ok := p.AllIdsMap[pid]; ok {
|
|
|
|
+ v.P = &pro
|
|
|
|
+ }
|
|
|
|
+ p.AllIdsMapLock.Unlock()
|
|
|
|
+ p.printMemPro(pid)
|
|
|
|
+}
|
|
|
|
+
|
|
// 打印内存中的项目信息
|
|
// 打印内存中的项目信息
|
|
func (p *ProjectTask) printMemPro(pid string) {
|
|
func (p *ProjectTask) printMemPro(pid string) {
|
|
p.AllIdsMapLock.Lock()
|
|
p.AllIdsMapLock.Lock()
|