Browse Source

调整订单查询方法

master
xyiege 3 years ago
parent
commit
b7065ce19c
  1. 14
      src/main/java/cn/chjyj/szwh/controller/admin/AdminOrderController.java
  2. 19
      src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java
  3. 224
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  4. 100
      src/main/java/cn/chjyj/szwh/vo/AdOrderVO.java
  5. 54
      src/main/resources/mapper/szwh/OrderMapper.xml
  6. 12
      src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

14
src/main/java/cn/chjyj/szwh/controller/admin/AdminOrderController.java

@ -43,7 +43,7 @@ public class AdminOrderController extends BaseController {
// 订单编号
String batchcode= request.getString("batchcode");
if(StringUtils.isNotBlank(batchcode)){
rqmap.put("batchcode",batchcode);
rqmap.put("o.batchcode",batchcode);
}
//委托方
String entrustName=request.getString("entrust_name").trim();
@ -53,7 +53,7 @@ public class AdminOrderController extends BaseController {
//商品名称
String goodsName=request.getString("goods_name");
if(StringUtils.isNotBlank(goodsName)){
rqmap.put("goods_name",goodsName);
rqmap.put("og.goods_name",goodsName);
}
// 订单类型
String orderType= request.getString("order_type");
@ -63,17 +63,17 @@ public class AdminOrderController extends BaseController {
//充值类型
String chargesType= request.getString("charges_type");
if(StringUtils.isNotBlank(chargesType)){
rqmap.put("charges_type",chargesType);
rqmap.put("og.charges_type",chargesType);
}
//订单状态
String transaction_status=request.getString("transaction_status");
if(StringUtils.isNotBlank(transaction_status)){
rqmap.put("status",transaction_status);
rqmap.put("o.status",transaction_status);
}
// 交易类型
String entrustType=request.getString("entrust_type");
if(StringUtils.isNotBlank(entrustType)){
rqmap.put("goods_entrust",entrustType);
rqmap.put("og.goods_entrust",entrustType);
}
// 创建时间
@ -82,14 +82,14 @@ public class AdminOrderController extends BaseController {
JSONArray jarr = JSONArray.parseArray(createtime);
if(jarr.size()>0){
// 拆分
rqmap.put("createtime"," createtime between '"+jarr.get(0)+" 00:00:00' and '"+jarr.get(1)+" 23:59:59'");
rqmap.put("o.createtime"," createtime between '"+jarr.get(0)+" 00:00:00' and '"+jarr.get(1)+" 23:59:59'");
}
}
//商品编号
String gdsid = request.getString("goods_isli");
if(StringUtils.isNotEmpty(gdsid)){
rqmap.put("goods_islicode",gdsid);
rqmap.put("og.goods_islicode",gdsid);
}
//

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

@ -1,6 +1,7 @@
package cn.chjyj.szwh.mapper;
import cn.chjyj.szwh.bean.Order;
import cn.chjyj.szwh.vo.AdOrderVO;
import cn.chjyj.szwh.vo.OrderDetailVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@ -32,6 +33,24 @@ public interface OrderMapper {
@Param("pageSize") Integer pagesize
);
/**
* 查询订单集合
* @param map
* @param starrs
* @param pagesize
* @return
*/
List<AdOrderVO> queryOrderList(@Param("map")Map map,
@Param("startRs")Integer starrs,
@Param("pageSize")Integer pagesize);
/**
* 联合查询中统计数量
* @param map
* @return
*/
int countOrdMap(@Param("map") Map map);
/**
* 查询商品的关联订单
* @param goodsIsliCode 商品编号

224
src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java

@ -9,6 +9,7 @@ import cn.chjyj.szwh.service.OrderService;
import cn.chjyj.szwh.utils.*;
import cn.chjyj.szwh.utils.pay.StringUtil;
import cn.chjyj.szwh.utils.pay.security.AesEncryption;
import cn.chjyj.szwh.vo.AdOrderVO;
import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
@ -117,119 +118,152 @@ public class OrderServiceImpl implements OrderService {
}
//组织搜索条件
Map somap = new HashMap();
// 如果是商品名称
String gname = (String) qumap.get("goods_name");
if (StringUtils.isNotBlank(gname)) {
somap.put("goods_name", gname); //按名称搜索
somap.put("goods_islicode", gname); //按编号搜索
}
// 交易类型
String gtype = (String) qumap.get("goods_entrust");
if (gtype != null) {
somap.put("goods_entrust", gtype);
}
// 商品服务费类型
String chargeType = (String) qumap.get("charges_type");
if (chargeType != null) {
Integer ichargeType = Integer.valueOf(chargeType);
somap.put("charges_type", ichargeType);
}
// 如果订单商品查询条件存在
if(somap.size()>0){
List<OrderGoodsDetail> sogdlist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap);
if (sogdlist != null && sogdlist.size()>0) {
List sbarr = new ArrayList();
for (OrderGoodsDetail ogd : sogdlist) {
sbarr.add(ogd.getBatchcode());
}
qumap.put("bcin", sbarr);
}
log.info("sogdlist is null");
}
// //组织搜索条件
// Map somap = new HashMap();
// // 如果是商品名称
// String gname = (String) qumap.get("goods_name");
// if (StringUtils.isNotBlank(gname)) {
// somap.put("goods_name", gname); //按名称搜索
// somap.put("goods_islicode", gname); //按编号搜索
// }
// // 交易类型
// String gtype = (String) qumap.get("goods_entrust");
// if (gtype != null) {
// somap.put("goods_entrust", gtype);
// }
// // 商品服务费类型
// String chargeType = (String) qumap.get("charges_type");
// if (chargeType != null) {
// Integer ichargeType = Integer.valueOf(chargeType);
// somap.put("charges_type", ichargeType);
// }
// // 如果订单商品查询条件存在
// if(somap.size()>0){
// List<OrderGoodsDetail> sogdlist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap);
// if (sogdlist != null && sogdlist.size()>0) {
// List sbarr = new ArrayList();
// for (OrderGoodsDetail ogd : sogdlist) {
// sbarr.add(ogd.getBatchcode());
// }
// qumap.put("bcin", sbarr);
// }
// log.info("sogdlist is null");
// }
List<Order> orderList = new ArrayList<>();
//商品编号
String gsid=(String) qumap.get("goods_islicode");
if(gsid!=null){
// 查询商品关联订单
orderList = orderMapper.getGoodsInnerOrderList(gsid);
somap.put("goods_islicode",gsid);
}else {
// 重新组合筛选条件
orderList = orderMapper.getOrderList(qumap, starrs, limit);
}
// String gsid=(String) qumap.get("goods_islicode");
// if(gsid!=null){
//// // 查询商品关联订单
//// orderList = orderMapper.getGoodsInnerOrderList(gsid);
//// somap.put("goods_islicode",gsid);
//// }else {
// // 重新组合筛选条件
// orderList = orderMapper.getOrderList(qumap, starrs, limit);
// }
// 管理系统订单
List<AdOrderVO> adordlist = orderMapper.queryOrderList(qumap,starrs,limit);
// 统计符合条件的总数
int total = orderMapper.countOrderByMap(qumap);
int total = orderMapper.countOrdMap(qumap);
// 存放结果list
List relist = new ArrayList();
//拼装对象
for (Order od : orderList) {
for(AdOrderVO aod:adordlist){
Map tomap = new HashMap();
//订单编号
tomap.put("batchcode", od.getBatchcode());
// 购买者
OrderUser oduser = orderUserMapper.getUserOrder(od.getBatchcode(), od.getBuyIslicode());
if(oduser!=null) {
tomap.put("buy_username", oduser.getName());
}
//下单时间
tomap.put("createtime", sdf.format(od.getCreatetime()));
//entrust_name 委托人信息,
String entrustName = "";
String entrustType = "";//委托类型
String goodsName = ""; //商品名称
Set enset = new HashSet<>();// 存放商品的授权方式
List<OrderGoodsDetail> ogdlist = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode());
// 遍历
for (OrderGoodsDetail ogd : ogdlist) {
// 收费类型
if (StringUtils.isNotBlank((String) qumap.get("charges_type"))) {
}
// 授权方信息
JSONObject ujson = SzwhApiUtils.getApiUser(ogd.getEntrustIslicode());
// 抽取出data,
String udtjson = ujson.getString("data");
if(StringUtils.isNotBlank(udtjson)){
Map userMap =JSON.parseObject(udtjson);
entrustName = (String)userMap.get("name");
}
// 格式化时间
//tomap.put("createtime", sdf.format(aod.getCreatetime()));
//商品名称
if (StringUtils.isNotBlank(goodsName)) {
goodsName += "," + ogd.getGoodsName();
} else {
goodsName = ogd.getGoodsName();
}
//委托方式
String tmptype = ogd.getGoodsEntrust() == 1 ? "转让" : "授权";
enset.add(tmptype);
// 获取授权方
String entrustName = "";
JSONObject ujson = SzwhApiUtils.getApiUser(aod.getEntrust_islicode());
// 抽取出data,
String udtjson = ujson.getString("data");
if(StringUtils.isNotBlank(udtjson)){
Map userMap =JSON.parseObject(udtjson);
// entrustName = (String)userMap.get("name");
tomap.put("entrust_name",(String)userMap.get("name"));
}
// set集合 转为字符串
entrustType = String.join(",", enset);
//
String entrustType = aod.getGoods_entrust() == 1 ? "转让" : "授权";//委托类型
// 存放在map 中
tomap.put("entrust_name", entrustName);
tomap.put("entrust_type", entrustType);
tomap.put("goods_name", goodsName);
//订单金额
tomap.put("total_money", od.getTotalMoney());
tomap.put("type", od.getType());
tomap.put("status", od.getStatus());
tomap.put("id", od.getId());
//attention map 对象有小小的弊端
tomap.put("entrust_type", entrustType);
tomap.put("goods_name", aod.getGoods_name());
//订单金额
tomap.put("total_money", aod.getTotal_money());
tomap.put("status", aod.getStatus());
tomap.put("id", aod.getId());
//
relist.add(tomap);
}
//拼装对象
// for (Order od : orderList) {
// Map tomap = new HashMap();
// //订单编号
// tomap.put("batchcode", od.getBatchcode());
// // 购买者
// OrderUser oduser = orderUserMapper.getUserOrder(od.getBatchcode(), od.getBuyIslicode());
// if(oduser!=null) {
// tomap.put("buy_username", oduser.getName());
// }
// //下单时间
// tomap.put("createtime", sdf.format(od.getCreatetime()));
// //entrust_name 委托人信息,
// String entrustName = "";
// String entrustType = "";//委托类型
// String goodsName = ""; //商品名称
//
// Set enset = new HashSet<>();// 存放商品的授权方式
//
// List<OrderGoodsDetail> ogdlist = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode());
// // 遍历
// for (OrderGoodsDetail ogd : ogdlist) {
// // 收费类型
// if (StringUtils.isNotBlank((String) qumap.get("charges_type"))) {
//
// }
//
// // 授权方信息
// JSONObject ujson = SzwhApiUtils.getApiUser(ogd.getEntrustIslicode());
// // 抽取出data,
// String udtjson = ujson.getString("data");
// if(StringUtils.isNotBlank(udtjson)){
// Map userMap =JSON.parseObject(udtjson);
// entrustName = (String)userMap.get("name");
// }
//
// //商品名称
// if (StringUtils.isNotBlank(goodsName)) {
// goodsName += "," + ogd.getGoodsName();
// } else {
// goodsName = ogd.getGoodsName();
// }
//
// //委托方式
// String tmptype = ogd.getGoodsEntrust() == 1 ? "转让" : "授权";
// enset.add(tmptype);
// }
// // set集合 转为字符串
// entrustType = String.join(",", enset);
// // 存放在map 中
// tomap.put("entrust_name", entrustName);
// tomap.put("entrust_type", entrustType);
// tomap.put("goods_name", goodsName);
// //订单金额
// tomap.put("total_money", od.getTotalMoney());
// tomap.put("type", od.getType());
// tomap.put("status", od.getStatus());
// tomap.put("id", od.getId());
//
// //attention map 对象有小小的弊端
// relist.add(tomap);
// }
// 记录总数
retmap.put("total", total);

100
src/main/java/cn/chjyj/szwh/vo/AdOrderVO.java

@ -0,0 +1,100 @@
package cn.chjyj.szwh.vo;
/**
* 管理端的订单集合
*/
public class AdOrderVO {
private Integer id;
private String batchcode;
private Integer status;
private String total_money;
private String goods_name;
private String createtime;
private String entrust_islicode;
private Integer goods_entrust;
private Integer charges_type;
private String buy_username;//订单用户name 别名
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBatchcode() {
return batchcode;
}
public void setBatchcode(String batchcode) {
this.batchcode = batchcode;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getTotal_money() {
return total_money;
}
public void setTotal_money(String total_money) {
this.total_money = total_money;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public String getEntrust_islicode() {
return entrust_islicode;
}
public void setEntrust_islicode(String entrust_islicode) {
this.entrust_islicode = entrust_islicode;
}
public Integer getGoods_entrust() {
return goods_entrust;
}
public void setGoods_entrust(Integer goods_entrust) {
this.goods_entrust = goods_entrust;
}
public Integer getCharges_type() {
return charges_type;
}
public void setCharges_type(Integer charges_type) {
this.charges_type = charges_type;
}
public String getBuy_username() {
return buy_username;
}
public void setBuy_username(String buy_username) {
this.buy_username = buy_username;
}
}

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

@ -65,6 +65,60 @@
select count(*) from <include refid="tbName"/>
</select>
<!-- 查询订单集合 -->
<select id="queryOrderList" parameterType="java.util.Map" resultType="cn.chjyj.szwh.vo.AdOrderVO">
SELECT o.id,o.batchcode,o.status,o.total_money,
og.goods_name,og.createtime,og.entrust_islicode,og.goods_entrust,og.charges_type,
ou.name as buy_username
FROM `order` o
LEFT JOIN order_goods_detail og on o.batchcode = og.batchcode
LEFT JOIN order_user ou ON ou.batchcode = o.batchcode
<where>
<if test="map!=null">
<!-- 查询条件封装在map中,以k-v形式进行查询-->
<foreach collection="map" item="v" index="k" separator="and">
<if test="v != null and v != '' and k!='o.id' and k!='og.goods_name'
and k!='ou.name'">
${k} = #{v}
</if>
<if test="k=='o.id'">
${k}>#{v}
</if>
<if test="k=='ou.name'">
ou.`name` like concat('%',#{v},'%')
</if>
</foreach>
</if>
</where>
ORDER BY o.id DESC
LIMIT #{startRs},#{pageSize}
</select>
<!-- 统计联合查询的结果 -->
<select id="countOrdMap" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM `order` o
LEFT JOIN order_goods_detail og on o.batchcode = og.batchcode
LEFT JOIN order_user ou ON ou.batchcode = o.batchcode
<where>
<if test="map!=null">
<!-- 查询条件封装在map中,以k-v形式进行查询-->
<foreach collection="map" item="v" index="k" separator="and">
<if test="v != null and v != '' and k!='o.id' and k!='og.goods_name'
and k!='ou.name'">
${k} = #{v}
</if>
<if test="k=='o.id'">
${k}>#{v}
</if>
<if test="k=='ou.name'">
ou.`name` like concat('%',#{v},'%')
</if>
</foreach>
</if>
</where>
</select>
<!--订单条件查询-->
<select id="getOrderList" parameterType="java.util.Map" resultType="cn.chjyj.szwh.bean.Order">
select

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

@ -2,6 +2,7 @@ package cn.chjyj.szwh.mapper;
import cn.chjyj.szwh.bean.Order;
import cn.chjyj.szwh.dto.OrderGoodsDetailDTO;
import cn.chjyj.szwh.vo.AdOrderVO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@ -131,6 +132,17 @@ public class OrderMapperTest {
System.out.println(bd);
}
@Test
public void queryOrderListTest(){
Map smap = new HashMap();
smap.put("og.charges_type",1);
List<AdOrderVO> rlist = orderMapper.queryOrderList(smap,0,10);
rlist.stream().forEach(it->{
System.out.println(it.getBatchcode());
});
System.out.println(rlist.size());
}
@Test
public void countAllOrder(){
int total = orderMapper.countAllOrder();

Loading…
Cancel
Save