解讀@SelectProvider的使用方法
解讀@SelectProvider的使用
首先在mapper里面寫個方法
@SelectProvider(type = SalesOrderProvider.class, method = "selectSalesInformation")
List<SalesInformation> selectSalesInformation(@Param("createDateStart") String createDateStart, @Param("createDateEnd") String createDateEnd);然后再在SalesOrderProvider.class這個類里面寫方法
public String selectSalesInformation(@Param("createDateStart") String createDateStart, @Param("createDateEnd") String createDateEnd){
StringBuffer sql = new StringBuffer();
sql.append(" SELECT ORDER_STATUS,b.number,b.unit_price,a.CREATE_DATE FROM hl4pl_sales_order a join hl4pl_sales_order_goods b ");
sql.append(" where a.ID=b.ID and a.CREATE_DATE BETWEEN #{createDateStart} and #{createDateEnd} ");
sql.append(" HAVING ORDER_STATUS =8 or ORDER_STATUS =6 ");
return sql.toString();
}最后就在實(shí)現(xiàn)類里面直接調(diào)用就好了。
public SalesInformaitonVo getSalesInformation(String createDateStart, String createDateEnd){
List<SalesInformation> salesInformations = salesOrderMapper.selectSalesInformation(createDateStart,createDateEnd);
BigDecimal salesVolume = BigDecimal.ZERO;//銷售額
BigDecimal totalOrders = BigDecimal.ZERO;//訂單總量
int totalSales = salesInformations.size();//銷售總量
for (SalesInformation salesInformation : salesInformations) {
if (salesInformation.getNumber()!=null&&salesInformation.getUnitPrice()!=null&&salesInformation.getNumber()!=BigDecimal.ZERO&&salesInformation.getUnitPrice()!=BigDecimal.ZERO){
salesVolume = salesVolume.add(salesInformation.getNumber().multiply(salesInformation.getUnitPrice()));
totalOrders = totalOrders.add(salesInformation.getNumber());
}
}
SalesInformaitonVo salesInformaitonVo = new SalesInformaitonVo();
salesVolume=salesVolume.divide(BigDecimal.valueOf(10000));
BigDecimal bigDecimal = salesVolume.setScale(2, BigDecimal.ROUND_UP);//四舍五入兩位小數(shù)
salesInformaitonVo.setSalesVolume(bigDecimal);
salesInformaitonVo.setTotalOrders(totalOrders);
salesInformaitonVo.setTotalSales(totalSales);
return salesInformaitonVo;
}@Select @SelectProvider中使用foreach時(shí)不生效問題
問題
@Select @SelectProvider中使用<foreach>時(shí)不生效。
解決辦法
<foreach>、<when>等標(biāo)簽屬于xml語法,必須配合<script>標(biāo)簽使用。
@Select({"<script>",
"SELECT * FROM tbl_order",
"WHERE 1=1",
"<when test='title!=null'>",
"AND mydate = #{mydate}",
"</when>",
"</script>"})
List<ExpendVo> queryExpend(ExpendDto dto);總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)微信公眾號消息推送的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)微信公眾號消息推送的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
Spring Boot實(shí)現(xiàn)對文件進(jìn)行壓縮下載功能
在Web應(yīng)用中,文件下載功能是一個常見的需求,特別是當(dāng)你需要提供用戶下載各種類型的文件時(shí),本文將演示如何使用Spring Boot框架來實(shí)現(xiàn)一個簡單而強(qiáng)大的文件下載功能,需要的朋友跟隨小編一起學(xué)習(xí)吧2023-09-09
Mybatis中SqlSession接口中selectList方法詳解
這篇文章主要給大家介紹了關(guān)于Mybatis中SqlSession接口中selectList方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03
淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因
這篇文章主要介紹了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
如何解決java中遇到的for input string: "" 報(bào)錯問題
SpringCloud?Gateway之請求應(yīng)答日志打印方式

