表结构
```
@startuml
class precision_marketing_batch_target_customer {}
precision_marketing_batch “1” — “many” precision_marketing_batch_statistics precision_marketing_batch “1” — “many” precision_marketing_batch_content precision_marketing_batch_content “1” — “1” precision_marketing_sms_template precision_marketing_sms_template “1” — “1” msg_template precision_marketing_batch_content “1” *— “1” coupon_template
precision_marketing_batch “1” — “many” precision_marketing_batch_detail precision_marketing_batch_detail “1” — “1” precision_marketing_batch_detail_ext_sms precision_marketing_batch_detail “1” — “1” precision_marketing_batch_detail_ext_coupon precision_marketing_batch_detail “1” — “many” precision_marketing_batch_detail_content precision_marketing_batch_detail_content “1” — “1” coupon precision_marketing_batch_detail_content “1” — “1” msg_send_detail @enduml
<a name="uLNpm"></a># 接口```java@startumlclass PrintCardBillController{private PrintManager<PrintCardBillCreateVo> printOpenBillManager;private PrintManager<PrintCardBillCreateVo> printRechargeBillManager;private PrintManager<PrintCardBillCreateVo> printTkdBillManager;}interface PrintManager<T extends PrintCreateVo> {String print(printCreateVo)}interface DataMaskManager<T extends DataMaskBaseVo>{void dataMask(BigInteger idOwnOrg, T maskVo);}abstract class AbstractPrintManager<T extends PrintCreateVo,K extends DataMaskBaseVo> implements PrintManager,DataMaskManager{boolean checkTemplateId(printCreateVo)abstract Map getPrintParam(printCreateVo)abstract Map printDataMask(map)String createPrintPdf(printCreateVo,map)final String print(printCreateVo)}abstract class AbstractPrintCardBillManager<T extends PrintCardBillCreateVo, K extends PrintCardBillDataMaskVo, R extends PrintCardBillBaseVo> extends AbstractPrintManager{Map getPrintParam(PrintCardBillBaseVo)void dataMask(BigInteger idOwnOrg, K maskVo)void printDataMask(map)T fillCardBillInfo(printCreateVo)abstract R queryBillInfo(T printCardBillBaseVo)R fillCardEntityInfo(R printCardBillBaseVo, CardInfoDTO cardInfoDTO) {}class PrintOpenBilllManagerImpl extends AbstractPrintCardBillManager{private OpenBillContext openBillContext;PrintOpenBillVo queryBillInfo(PrintCardBillCreateVo printCardBillBaseVo)PrintOpenBillVo fillCardEntityInfo(PrintOpenBillVo printCardBillBaseVo, CardInfoDTO cardInfoDTO)}class PrintRechargeBillManagerImpl extends AbstractPrintCardBillManager{private RechargeBillContext rechargeBillContext;PrintRechargeBillVo queryBillInfo(PrintCardBillCreateVo printCardBillBaseVo)}class PrintCardTKDBillManagerImpl extends AbstractPrintCardBillManager{}class PackageCardOpenBillQueryServiceCaller{PackageCardOpenBillFullInfo getById(CardBillGetByIdQuery cardBillGetByIdQuery)}class PackageCardRechargeBillQueryServiceCaller{PackageCardRechargeBillFullInfo getById(CardBillGetByIdQuery cardBillGetByIdQuery)}class ValueCardOpenBillQueryServiceCaller{ValueCardOpenBillFullInfo getById(CardBillGetByIdQuery cardBillGetByIdQuery)}class ValueCardRechargeBillQueryServiceCaller{ValueCardRechargeBillFullInfo getById(CardBillGetByIdQuery cardBillGetByIdQuery)}class PrintCreateVo{private bigint idOwnOrg;private int templateId;private bigint id;}class PrintCardBillCreateVo extends PrintCreateVo{private String cardType;}class PrintOpenBillVo extends PrintCardBillBaseVo{}class PrintValueCardOpenBillVo extends PrintOpenBillVo{private BigDecimal cardAmount;}class PrintPackageCardOpenBillVo extends PrintOpenBillVo{private List<PrintPackageCardOpenBillPartVo> partList;private List<PrintPackageCardOpenBillServiceVo> serviceList;private List<PrintPackageCardOpenBillPackVo> packageList;}class PrintRechargeBillVo extends PrintCardBillBaseVo{}class PrintValueRechargeBillVo extends PrintRechargeBillVo{private BigDecimal cardAmount;}class PrintPackageCardRechargeBillVo extends PrintRechargeBillVo{private List<PrintPackageCardRechargeBillPartVo> partList;private List<PrintPackageCardRechargeBillServiceVo> serviceList;private List<PrintPackageCardRechargeBillPackVo> packageList;}class PrintCardTKDBillVo extends PrintCardBillBaseVo{}class RechargeBillContext{private RechargeBillFactory rechargeBillFactory;PrintCardBillBaseVo queryCardBillBaseVo(PrintCardBillCreateVo printCardBillBaseVo)}class RechargeBillFactory {private PrintPackageCardRechargeBillQueryApiService printPackageCardRechargeBillQueryApiService;private PrintValueCardRechargeBillQueryApiService printValueCardRechargeBillQueryApiService;PrintCardBillReadService queryApiService(String cardType)}class OpenBillContext{private OpenBillFactory openBillFactory;PrintCardBillBaseVo queryCardBillBaseVo(PrintCardBillCreateVo printCardBillBaseVo)}class OpenBillFactory{private PrintPackageCardOpenBillQueryApiService printPackageCardOpenBillQueryApiService;private PrintValueCardOpenBillQueryApiService printValueCardOpenBillQueryApiService;PrintCardBillReadService queryApiService(String cardType)}PrintOpenBilllManagerImpl *-- OpenBillContextOpenBillContext *-- OpenBillFactoryOpenBillFactory *-- PackageCardOpenBillQueryServiceCallerOpenBillFactory *-- ValueCardOpenBillQueryServiceCallerPrintRechargeBillManagerImpl *-- RechargeBillContextRechargeBillContext *-- RechargeBillFactoryRechargeBillFactory *-- PackageCardRechargeBillQueryServiceCallerRechargeBillFactory *-- ValueCardRechargeBillQueryServiceCallerPrintCardBillController *-- PrintManager@enduml
