gpt4 book ai didi

grails - 如何使用Services中数据库中的信息来呈现HTML模板

转载 作者:行者123 更新时间:2023-12-02 15:17:53 25 4
gpt4 key购买 nike

我有很多工作要做:

  • 拥有不时运行的工作(完成)
  • 从该作业内的数据库中获取一些数据(完成)
  • 下一步是将该数据与我已经创建的模板(HTML)一起使用,然后将其呈现为PDF。
  • 然后发送带有pdf附件
  • 的电子邮件

    这是我目前的工作:
    def execute() {
    println("Hi, I am a schedule Job triggering every half an hour from 7 AM to 22 PM that will never stop running until master jose tells me to :)")

    EventService.updateOffersdwh()
    EventService.getUncheckedOffers()
    }

    这工作正常:)

    这些是我在上一份工作中调用的服务方法:
    def updateOffersdwh(){

    def sql = Sql.newInstance("jdbc:postgresql://"+hostname+":5432/xyz", username, password, "org.postgresql.Driver")
    sql.rows(" Select From bird_admin.updt_offerorders('2018-03-07','2018-03-07','" + database + "') ");

    println('Updating Order and Offers datawarehouse...');
    }

    def getUncheckedOffers(){

    def sql = sql.newInstance("jdbc:postgresql://"+hostname+":5432/xyz", username, password, "org.postgresql.Driver")

    def query = "select id, poo_id, b.name, b.address_line1, b.address_line2, b.zipcode, event_date::date, task_name, sku_id, sku_name, column_type, column_value, instance_name,checked FROM bird_admin.ooisdwh a LEFT JOIN sd_bel.cfg_point_of_operation b ON a.poo_id = b.id WHERE checked = false"
    def offers = sql.rows(query)

    println('DEBUG OFFERS FINAL:: '+offers)
    }

    任何人都可以在下一步中提供建议或指导我吗?

    如何使用已经存在于views \ template文件夹中的html模板?

    使用数据库中的信息并使用该信息呈现html的最佳方法是什么?

    我应该使用 Controller 吗?如果是这样,怎么办?我有点迷路了:|

    最佳答案

    我不确定100%是否要为电子邮件或附件的正文使用模板,但是要为电子邮件的正文使用模板,可以执行以下操作。

    首先添加Grails mail plugin的依赖项:
    build.gradle

    dependencies {
    compile "org.grails.plugins:mail:2.0.0"
    ...
    }

    然后在您的服务中使用模板生成正文并发送如下内容:
    class YourService {

    def groovyPageRenderer
    def mailService


    def getUncheckedOffers(){

    def sql = sql.newInstance("jdbc:postgresql://"+hostname+":5432/xyz", username, password, "org.postgresql.Driver")

    def query = "select id, poo_id, b.name, b.address_line1, b.address_line2, b.zipcode, event_date::date, task_name, sku_id, sku_name, column_type, column_value, instance_name,checked FROM bird_admin.ooisdwh a LEFT JOIN sd_bel.cfg_point_of_operation b ON a.poo_id = b.id WHERE checked = false"
    def offers = sql.rows(query)
    def content = groovyPageRenderer.render( view: "/aViewDirectory/mail",
    model:[offers : offers ] )

    mailService.sendMail {
    to 'anEmailRecipient@somewhere.com'
    subject "Email subject"
    html( content )
    }
    }

    电子邮件插件docs about attachments中有一个部分。
    您可以按照上述步骤从模板生成PDF并按照文档进行附加。

    关于grails - 如何使用Services中数据库中的信息来呈现HTML模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281199/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com