fabric智能合约java配置_fabric 智能合约开发

这是一个关于如何使用Java开发Hyperledger Fabric智能合约的详细教程。代码展示了如何通过Go和JSON进行操作,包括获取处方区块链信息、按不同条件查询处方、处理历史记录等关键功能。
摘要由CSDN通过智能技术生成

1 package operation2

3 import (4 "github.com/prescriptionserver/chaincode/go/prescription/model"

5 "github.com/hyperledger/fabric/core/chaincode/shim"

6 "encoding/json"

7 "github.com/hyperledger/fabric/protos/peer"

8 "github.com/prescriptionserver/chaincode/go/prescription/global"

9 "bytes"

10 )11

12 type PrescriptionQuery struct{13 Stub shim.ChaincodeStubInterface14 Args []string

15 }16

17 func (p *PrescriptionQuery) GetPbcnByPid(pid string)(model.PrescriptionBlockchain,bool) {18 var pbcn model.PrescriptionBlockchain19 bytes, err :=p.Stub.GetState(pid)20 if bytes ==nil {21 return pbcn, false

22 }23 err =json.Unmarshal(bytes,&pbcn)24 if err !=nil{25 return pbcn,false

26 }27 return pbcn,true

28 }29 func (p *PrescriptionQuery) GetPbcnsByOpdid() peer.Response {30 if len(p.Args) != 1{31 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid args!=1")32 returnshim.Error(res)33 }34 pspnsIterator,err :=p.Stub.GetStateByPartialCompositeKey(global.OpenPrescriptionDeptID_PrescriptionID_IndexName,35 []string{p.Args[0]})36 if err !=nil{37 res:=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid"+

38 "getstatebypartialcompositekey error")39 returnshim.Error(res)40 }41 defer pspnsIterator.Close()42 var pbcns []model.PrescriptionBlockchain43 forpspnsIterator.HasNext() {44 kv,err:=pspnsIterator.Next()45 if err !=nil{46 res:=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid iterator.next error")47 returnshim.Error(res)48 }49 _, compositeKey, err :=p.Stub.SplitCompositeKey(kv.Key)50 if err !=nil{51 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid"+

52 "split composite key error")53 returnshim.Error(res)54 }55 if len(compositeKey) <2{56 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid"+

57 "composite keys len<2")58 returnshim.Error(res)59 }60 pbcn, b := p.GetPbcnByPid(compositeKey[1])61 if !b{62 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid getpbcnbypid error")63 returnshim.Error(res)64 }65 pbcns =append(pbcns,pbcn)66 }67 pbcndata,err :=json.Marshal(pbcns)68 if err !=nil{69 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyopdid json marshal error")70 returnshim.Error(res)71 }72 returnshim.Success(pbcndata)73 }74 func (p *PrescriptionQuery) GetPbcnsByPrpdid() peer.Response {75 if len(p.Args) != 1{76 res :=GetRetString(1,"PrescriptionChaincode query getpbcnsbyprpdid args!=1")77 returnshim.Error(res)78 }79 pspnsIterator,err :=p.Stub.GetStateByPartialCompositeKey(80 global.PendingReceivePrescriptionDeptID_PrescriptionID_IndexName,81 []string{p.Args[0]})82 if err !=nil{83 res:=GetRetString(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值