go_dreamfactory/modules/equipment/api_washconfirm.go
2023-05-31 17:49:01 +08:00

81 lines
2.4 KiB
Go

package equipment
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
)
//参数校验
func (this *apiComp) WashConfirmCheck(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode) {
if req.Eid == "" || req.Pids == nil || len(req.Pids) == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
//锻造
func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
equip *pb.DB_Equipment
attrlibrary *cfg.GameEquipAttrlibrarySData
err error
)
if code = this.WashConfirmCheck(session, req); code != pb.ErrorCode_Success {
data = &pb.ErrorData{
Title: code.ToString(),
Message: req.String(),
}
return
}
if equip, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), req.Eid); err != nil {
this.module.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), req.Eid, err)
code = pb.ErrorCode_SystemError
data = &pb.ErrorData{
Title: code.ToString(),
Message: err.Error(),
}
return
}
if len(equip.AdverbEntry) != len(req.Pids) {
code = pb.ErrorCode_ReqParameterError
data = &pb.ErrorData{
Title: code.ToString(),
}
return
}
for i, v := range equip.AdverbEntry {
if attrlibrary, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(req.Pids[i]); err != nil {
code = pb.ErrorCode_SystemError
data = &pb.ErrorData{
Title: code.ToString(),
Message: err.Error(),
}
return
}
equip.AdverbEntry[i] = &pb.EquipmentAttributeEntry{
Id: attrlibrary.Key,
Libraryid: attrlibrary.Libraryid,
Lv: v.Lv,
AttrName: attrlibrary.Attrkey,
BaseValue: attrlibrary.Attrvar,
Value: attrlibrary.Attrvar + int32(float64(attrlibrary.Addition[equip.AdverbEntry[i].Lv-1])/1000.0*float64(attrlibrary.AttrvarCorrect)),
}
}
if err = this.module.modelEquipment.ChangeList(session.GetUserId(), equip.Id, map[string]interface{}{
"adverbEntry": equip.AdverbEntry,
}); err != nil {
log.Errorf("Upgrade err:%v", err)
code = pb.ErrorCode_SystemError
data = &pb.ErrorData{
Title: code.ToString(),
Message: err.Error(),
}
return
}
session.SendMsg(string(this.module.GetType()), "washconfirm", &pb.EquipmentWashConfirmResp{Issucc: true})
return
}