首页 > 其他分享 >产品详情投资记录

产品详情投资记录

时间:2023-08-09 13:32:03浏览次数:31  
标签:记录 bid public phone 详情 产品 Integer import id

1. 产品详情接口分析   70

产品详情投资记录_List

产品详情投资记录_java_02

2. 产品详情和投资记录实现实现  71

产品详情投资记录_java_03

2.1 产品详情   71

2.1.1 业务接口   71

操作micr-api模块

ProductService
//产品详情 根据产品id ,查询产品信息  71
    ProductInfo queryById(Integer id);

2.1.2  业务接口实现类   71

操作micr-dataservice模块

ProductServiceImpl
//产品详情 根据产品id ,查询产品信息  71
    @Override
    public ProductInfo queryById(Integer id) {
        ProductInfo productInfo = null;
        if( id != null && id > 0 ){
            productInfo = productInfoMapper.selectByPrimaryKey(id);
        }
        return productInfo;
    }

2.2 投资记录   72

2.2.1 实体类  72

操作micr-api模块

BidInfoProduct
package com.bjpowernode.api.pojo;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 投资记录的实体类  72
 */
public class BidInfoProduct implements Serializable {

    private Integer id;
    private String phone;
    private String bidTime;
    private BigDecimal bidMoney;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getBidTime() {
        return bidTime;
    }

    public void setBidTime(String bidTime) {
        this.bidTime = bidTime;
    }

    public BigDecimal getBidMoney() {
        return bidMoney;
    }

    public void setBidMoney(BigDecimal bidMoney) {
        this.bidMoney = bidMoney;
    }
}

2.2.2 业务接口   72

操作micr-api模块

InvestService
package com.bjpowernode.api.service;

import com.bjpowernode.api.pojo.BidInfoProduct;

import java.util.List;

/**
 * 投资记录   72
 */
public interface InvestService {

    /** 查询某个产品的投资记录 */
    List<BidInfoProduct> queryBidListByProductId(Integer productId,
                                                 Integer pageNo,
                                                 Integer pageSize);

}

2.2.2 业务接口实现类   73

操作micr-dataservice模块

InvestServiceImpl
package com.bjpowernode.dataservice.service;

import com.bjpowernode.api.pojo.BidInfoProduct;
import com.bjpowernode.api.service.InvestService;
import com.bjpowernode.common.util.CommonUtil;
import com.bjpowernode.dataservice.mapper.BidInfoMapper;
import org.apache.dubbo.config.annotation.DubboService;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * 投资记录实现类   73
 */
@DubboService(interfaceClass = InvestService.class,version = "1.0")
public class InvestServiceImpl implements InvestService {

    @Resource
    private BidInfoMapper bidInfoMapper;

    /** 查询某个产品的投资记录 */
    @Override
    public List<BidInfoProduct> queryBidListByProductId(Integer productId,
                                                        Integer pageNo,
                                                        Integer pageSize) {
        List<BidInfoProduct> bidList = new ArrayList<>();
        if(productId != null && productId > 0 ){
            pageNo = CommonUtil.defaultPageNo(pageNo);
            pageSize = CommonUtil.defaultPageSize(pageSize);
            int offset = (pageNo - 1) * pageSize;
            bidList = bidInfoMapper.selectByProductId(productId,offset,pageSize);
        }
        return bidList;
    }
}

2.2.3 在mapper中定义方法   73

操作micr-dataservice

BidInfoMapper
//查询某个产品的投资记录  73
    List<BidInfoProduct> selectByProductId(@Param("productId") Integer productId,
                                           @Param("offset") int offset,
                                           @Param("rows") Integer rows);

2.2.4 遍写sql   72

格式化数据   72

我们选择在数据库中直接格式化数据,我们以7号产品为例

直接对手机号和日期做了格式化

 CONCAT( SUBSTRING( u.phone FROM 1 FOR 3 ), "******", SUBSTRING( u.phone FROM 10 FOR 2 ) ) AS phone, //CONCAT拼接字符串,SUBSTRING截取字符串

 DATE_FORMAT( bid.bid_time, "%Y-%m-%d %H:%i:%s" ) AS bidTime

SELECT
          bid.id,
          CONCAT( SUBSTRING( u.phone FROM 1 FOR 3 ), "******", SUBSTRING( u.phone FROM 10 FOR 2 ) ) AS phone,
          DATE_FORMAT( bid.bid_time, "%Y-%m-%d %H:%i:%s" ) AS bidTime,
          bid.bid_money AS bidMoney
      FROM
          b_bid_info bid
          JOIN u_user u ON bid.uid = u.id
      WHERE
          bid.prod_id = 7
      ORDER BY
          bid.bid_time DESC
          LIMIT 1,5

产品详情投资记录_java_04

BidInfoMapper.xml    73

操作micr-dataservice

<!--查询某个产品的投资记录   73-->
  <select id="selectByProductId" resultType="com.bjpowernode.api.pojo.BidInfoProduct">
      SELECT
          bid.id,
          CONCAT( SUBSTRING( u.phone FROM 1 FOR 3 ), "******", SUBSTRING( u.phone FROM 10 FOR 2 ) ) AS phone,
          DATE_FORMAT( bid.bid_time, "%Y-%m-%d %H:%i:%s" ) AS bidTime,
          bid.bid_money AS bidMoney
      FROM
          b_bid_info bid
          JOIN u_user u ON bid.uid = u.id
      WHERE
          bid.prod_id = #{productId}
      ORDER BY
          bid.bid_time DESC
          LIMIT #{offset},#{rows}
  </select>

2.3 消费者controller  74

操作micr-web

在BaseController中声明

产品详情投资记录_java_05

//投资服务  74
    @DubboReference(interfaceClass = InvestService.class,version = "1.0")
    protected InvestService investService;

ProductController   74

产品详情投资记录_List_06

/*查询某个产品的详情和投资记录   74*/
    @ApiOperation(value = "产品详情",notes = "查询某个产品的详细信息和投资5条记录")
    @GetMapping("/product/info")
    public RespResult queryProductDetail(@RequestParam("productId") Integer id){
        RespResult result = RespResult.fail();
        if( id != null && id > 0 ){
            //调用产品查询
            ProductInfo productInfo = productService.queryById(id);
            if( productInfo != null){
                //查询投资记录
                List<BidInfoProduct> bidInfoList = investService.queryBidListByProductId(id,1,5);
                //查询成功
                result = RespResult.ok();
                result.setData(productInfo);
                result.setList(bidInfoList);
            } else {
                result.setRCode(RCode.PRODUCT_OFFLINE);
            }
        }
        return result;
    }

测试  75

启动后端

先使用postman测试,成功

http://localhost:8000/api/v1/product/info

产品详情投资记录_java_07

3. 前端实现  75-76

前端我们不做重点,直接给出代码

ProductDetail.vue   76

<template>
  <div>
    <Header></Header>
    <div class="content clearfix">
      <div class="detail-left">
        <div class="detail-left-title">{{ product.productName }}({{ product.productNo }}期)</div>
        <ul class="detail-left-number">
          <li>
            <span>历史年化收益率</span>
            <p><b>{{ product.rate }}</b>%</p>
            <span>历史年化收益率</span>
          </li>
          <li>
            <span>募集金额(元)</span>
            <p><b>{{ product.productMoney }}</b>元</p>
            <span v-if="product.leftProductMoney > 0 ">募集中  剩余募集金额{{ product.leftProductMoney }}元</span>
            <span v-else>已满标</span>
          </li>
          <li>
            <span>投资周期</span>
            <p v-if="product.productType == 0 "><b>{{product.cycle}}</b>天</p>
            <p v-else><b>{{product.cycle}}</b>个月</p>

          </li>

        </ul>
        <div class="detail-left-way">
          <span>收益获取方式</span>
          <span>收益返还:<i>到期还本付息</i></span>
        </div>
        <!--投资记录-->
        <div class="datail-record">
          <h2 class="datail-record-title">投资记录</h2>
          <div class="datail-record-list">
            <table align="center" width="880" border="0" cellspacing="0" cellpadding="0">
              <colgroup>
                <col style="width: 72px" />
                <col style="width: 203px" />
                <col style="width: 251px" />
                <col style="width: 354px" />
              </colgroup>
              <thead class="datail_thead">
              <tr>
                <th>序号</th>
                <th>投资人</th>
                <th>投资金额(元)</th>
                <th>投资时间</th>
              </tr>
              </thead>
              <tbody>
              <tr v-for="(bid,ind) in bidList" :key="bid.id">
                <td>{{ind+1}}</td>
                <td class="datail-record-phone">{{ bid.phone }}</td>
                <td>{{ bid.bidMoney }}</td>
                <td>{{ bid.bidTime }}</td>
              </tr>

              </tbody>
            </table>
          </div>
        </div>

      </div>
      <!--右侧-->
      <div class="detail-right">
        <div class="detail-right-title">立即投资</div>
        <div class="detail-right-mode">
          <h3 class="detail-right-mode-title">收益方式</h3>
          <p class="detail-right-mode-p"><span>到期还本付息</span></p>
          <h3 class="detail-right-mode-title">我的账户可用</h3>
          <div class="detail-right-mode-rmb">
            <p>资金(元):******</p>
            <a href="login.html" target="_blank">请登录</a>
          </div>
          <h3 class="detail-right-mode-title">预计本息收入(元)</h3>
          <form action="" id="number_submit">
            <p>请在下方输入投资金额</p>
            <input type="text" placeholder="请输入日投资金额,应为100元整倍数" name="" class="number-money" >
            <input type="submit" value="立即投资" class="submit-btn">
          </form>

        </div>
      </div>
    </div>
    <Footer></Footer>

  </div>
</template>

<script>
import Header from "@/components/common/Header";
import Footer from "@/components/common/Footer";
import {doGet} from "@/api/httpRequest";

export default {
  name: "ProductDetail",
  components:{
    // eslint-disable-next-line vue/no-unused-components
    Header,
    // eslint-disable-next-line vue/no-unused-components
    Footer
  },
  data(){
    return {
      product:{
        id: 0,
        productName: "",
        rate: 0.0,
        cycle: 0,
        releaseTime: 0,
        productType: 0,
        productNo: "",
        productMoney: 0,
        leftProductMoney: 0,
        bidMinLimit: 0,
        bidMaxLimit: 0,
        productStatus: 0,
        productFullTime: "",
        productDesc: ""
      },
      bidList:[
        {
          id: 0,
          phone: "",
          bidTime: "",
          bidMoney: 0.00
        }]
    }
  },
  mounted() {
    let productId = this.$route.query.productId;
    doGet('/v1/product/info',{productId:productId})
        .then(resp=>{
          if( resp ) {
            this.product = resp.data.data;
            this.bidList = resp.data.list;
          }
        })
  }
}
</script>

<style scoped>

</style>

测试  76

产品详情投资记录_java_08

标签:记录,bid,public,phone,详情,产品,Integer,import,id
From: https://blog.51cto.com/u_15784725/7019058

相关文章

  • python多线程学习记录
    Python多线程参考文章:python多线程详解(超详细)、Python线程池(threadpool)创建及使用+实例代码、第二十章多线程1、多线程的概念2、python多线程的基本使用方法3、多线程的优点及与多进程的关系1、多线程的概念线程也叫轻量级进程,是操作系统能够进行运算调度......
  • 记录一次-戴尔R730dx安装Tesla p40 24GB显卡,安装Centos系统
    1.显卡bios中不需要配置2.centos最好选择Centos8.2带GUI模式,勾选常用的系统组件,开发环境,.net。3.安装时修改安装启动项内容如下//修改镜像文件位置hd:/dev/sdb4//禁用独立显卡rdblacklist=nouveaunouveau.modset=0  //查看GPU信息lspci|grep -invidia......
  • 2023下半年产品经理NPDP认证8月19日正式开班,报名从速
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。  【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业......
  • 人工智能产业应用研究院(课程+认证产品篇)
    人工智能产业应用研究院由intel和云图睿视共同发起的人工智能产业应用研究院(以下简称研究院)以适应行业、产业结构调整,社会发展趋势和对人工智能行业应用型人才紧缺的社会现状出发,统筹学科专业规划和加强国家急需的人工智能应用型学科建设,积极培育、发展新兴学科、交叉学科,探索多种......
  • 记录--前端实用小技巧: 自动合并的网络请求
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助我们经常会遇到一个场景,比如在一个列表中批量获取用户的信息。 如果我们一次性往后端发送几十条请求是非常愚蠢的事情。此时我们就要学会如何使用批量获取的逻辑。但是批量获取有一个问题就是,我需要在用户列表......
  • 【专题】家电及3C产品出海白皮书报告PDF合集分享(附原数据表)
    全文链接:https://tecdat.cn/?p=33393在后疫情时代,全球经济和消费力的增长面临巨大考验。2022年,电脑、手机等产品的市场规模出现了小幅收缩调整。然而,在这样的环境下,各种消费电子的细分领域却展现出了强大的韧性。阅读原文,获取专题报告合集全文,解锁文末29份消费电子行业相关报告。......
  • 忏悔记录——三考
    忏悔记录——三考总体上1.在老师给的第一题上想了很久,实现了很久(差不多1.5h)了吧最开始考虑贡献,然后有漏洞,然后G呗谁能想到暴力维护啊喂......总而言之,就是思想上的漏洞......具体上第一题:观光公交不再赘述第二题:造船没有想到正解,虽然很接近(最开始我也是两两连边画图做,但......
  • 记录部署lnmp环境的部署网站,自动生成脚本
    网站:https://oneinstack.com/auto/可以选择版本,扩展的插件,很方便,适合快速部署lnmp环境。......
  • 电子电器产品上架TEMU美国站UL测试报告如何办理呢?
    在今天高科技时代,电子电器产品已经成为人们生活中必不可少的一部分。然而,在销售这些产品之前,需要通过各种检测和认证来确保其质量和安全性。电子电器产品想要在美国TEMU销售UL测试报告正是其中重要的一项。UL(UnderwritersLaboratories)是美国一家非营利独立认证机构,专注于对产品进......
  • JAVA 问题记录
     OOM(内存溢出) 先查看java进程pidjps使用jmp把内存导出查看那些对象内存占用比较高jmp-histo<pid>>/histo.txt在可以看堆内存使用情况jmp-heap<pid>>/heap.txt ......