Browse Source

订单按条件总和金额

master
xyiege 4 years ago
parent
commit
ca27f7d210
  1. 7
      src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java
  2. 3
      src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java
  3. 5
      src/main/resources/mapper/szwh/OrderMapper.xml
  4. 14
      src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

7
src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java

@ -4,6 +4,7 @@ import cn.chjyj.szwh.bean.Order;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -67,9 +68,9 @@ public interface OrderMapper {
int countOrderByStatus(int status);
/**
* 根据条件统计订单
* @param cmap
* 计算条件订单总额,返回 BigDecimal
* @param cmap ( 字段条件 field,condition)
* @return
*/
int sumOrderByMap(Map cmap);
BigDecimal sumOrderByMap(@Param("cmap") Map cmap);
}

3
src/main/java/cn/chjyj/szwh/service/impl/IndexServiceImpl.java

@ -63,8 +63,7 @@ public class IndexServiceImpl implements IndexService {
//交易总额
result.put("deal_money",goodsCount);
//订单总额
result.put("order_money",goodsCount);
result.put("shelf_count",goodsCount);

5
src/main/resources/mapper/szwh/OrderMapper.xml

@ -68,6 +68,11 @@
select count(*) from <include refid="tbName"/> where `status`=#{status}
</select>
<!-- 条件订单总额 -->
<select id="sumOrderByMap" parameterType="java.util.Map" resultType="java.lang.Double">
select sum(#{cmap.field}) from <include refid="tbName"/> where #{cmap.wherestr};
</select>
<!--新增用户-->
<insert id="addUser" parameterType="cn.chjyj.szwh.bean.Goods" useGeneratedKeys="true" keyColumn="uid">
insert into

14
src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

@ -9,6 +9,7 @@ import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
@ -97,4 +98,17 @@ public class OrderMapperTest {
int ret = orderMapper.countOrderByStatus(status);
System.out.println(ret);
}
@Test
public void mapSumTest(){
String starttime ="2022-05-18 00:00:00";
String endtime="2022-05-18 23:59:59";
String swhere ="(paymenttime between "+starttime+" and "+endtime+") " +
"and pay_status=2";
Map xmap =new HashMap();
xmap.put("field","total_money");
xmap.put("wherestr",swhere);
BigDecimal bd= orderMapper.sumOrderByMap(xmap);
System.out.println(bd);
}
}
Loading…
Cancel
Save