go_dreamfactory/modules/equipment/api_washconfirm.go
2022-10-25 17:08:34 +08:00

63 lines
2.0 KiB
Go

package equipment
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
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 proto.Message) {
var (
equip *pb.DB_Equipment
attrlibrary *cfg.GameEquipAttrlibraryData
err error
)
if code = this.WashConfirmCheck(session, req); code != pb.ErrorCode_Success {
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
return
}
if len(equip.AdverbEntry) != len(req.Pids) {
code = pb.ErrorCode_ReqParameterError
return
}
for i, v := range equip.AdverbEntry {
if attrlibrary, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(req.Pids[i]); err != nil {
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.Attrvar)),
}
}
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
return
}
session.SendMsg(string(this.module.GetType()), "washconfirm", &pb.EquipmentWashConfirmResp{Issucc: true})
return
}