Browse Source

订单明细优化

master
xyiege 4 years ago
parent
commit
5366dde4c8
  1. 31
      src/main/java/cn/chjyj/szwh/controller/BaseController.java
  2. 36
      src/main/java/cn/chjyj/szwh/controller/admin/AdminOrderController.java
  3. 11
      src/main/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapper.java
  4. 1
      src/main/java/cn/chjyj/szwh/service/OrderService.java
  5. 106
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  6. 8
      src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml

31
src/main/java/cn/chjyj/szwh/controller/BaseController.java

@ -35,55 +35,60 @@ public abstract class BaseController {
} }
} }
protected Map orderMap(HttpServletRequest request){ /**
* 将所有列表中筛选条件抽取出来
* @param request 为jsonobject对象
* @return
*/
protected Map orderMap(JSONObject request){
Map rqmap = new HashMap(); Map rqmap = new HashMap();
// 订单编号 // 订单编号
String batchcode= request.getParameter("batchcode"); String batchcode= request.getString("batchcode");
if(StringUtils.isNotBlank(batchcode)){ if(StringUtils.isNotBlank(batchcode)){
rqmap.put("batchcode",batchcode); rqmap.put("batchcode",batchcode);
} }
// //
String entrustName=request.getParameter("entrust_name"); String entrustName=request.getString("entrust_name");
if(StringUtils.isNotBlank(entrustName)){ if(StringUtils.isNotBlank(entrustName)){
rqmap.put("entrust_name",entrustName); rqmap.put("entrust_name",entrustName);
} }
// //
String buyName=request.getParameter("buy_name"); String buyName=request.getString("buy_name");
if(StringUtils.isNotBlank(buyName)){ if(StringUtils.isNotBlank(buyName)){
rqmap.put("buy_name",buyName); rqmap.put("buy_name",buyName);
} }
//商品名称 //商品名称
String goodsName=request.getParameter("goods_name"); String goodsName=request.getString("goods_name");
if(StringUtils.isNotBlank(goodsName)){ if(StringUtils.isNotBlank(goodsName)){
rqmap.put("goods_name",goodsName); rqmap.put("goods_name",goodsName);
} }
// 订单类型 // 订单类型
String orderType= request.getParameter("order_type"); String orderType= request.getString("order_type");
if(StringUtils.isNotBlank(orderType)){ if(StringUtils.isNotBlank(orderType)){
rqmap.put("order_type",orderType); rqmap.put("order_type",orderType);
} }
String transactionStatus =request.getParameter("transaction_status"); String transactionStatus =request.getString("transaction_status");
if(StringUtils.isNotBlank(transactionStatus)){ if(StringUtils.isNotBlank(transactionStatus)){
rqmap.put("transaction_status",transactionStatus); rqmap.put("transaction_status",transactionStatus);
} }
//创建时间,拆分 //创建时间,拆分
// String createtime=request.getParameter("createtime"); // String createtime=request.getString("createtime");
// if(StringUtils.isNotBlank(createtime)){ // if(StringUtils.isNotBlank(createtime)){
// rqmap.put("createtime",createtime); // rqmap.put("createtime",createtime);
// } // }
// //
String goodsIsli = request.getParameter("goods_isli"); // String goodsIsli = request.getString("goods_isli");
if(StringUtils.isNotBlank(goodsIsli)){ // if(StringUtils.isNotBlank(goodsIsli)){
rqmap.put("goods_isli",goodsIsli); // rqmap.put("goods_isli",goodsIsli);
} // }
//充值类型 //充值类型
String chargesType= request.getParameter("charges_type"); String chargesType= request.getString("charges_type");
if(StringUtils.isNotBlank(chargesType)){ if(StringUtils.isNotBlank(chargesType)){
rqmap.put("charges_type",chargesType); rqmap.put("charges_type",chargesType);
} }

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

@ -6,6 +6,7 @@ import cn.chjyj.szwh.constant.ChConstant;
import cn.chjyj.szwh.controller.BaseController; import cn.chjyj.szwh.controller.BaseController;
import cn.chjyj.szwh.service.OrderGoodsDetailService; import cn.chjyj.szwh.service.OrderGoodsDetailService;
import cn.chjyj.szwh.service.OrderService; import cn.chjyj.szwh.service.OrderService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -29,42 +30,22 @@ public class AdminOrderController extends BaseController {
@Autowired @Autowired
private OrderGoodsDetailService orderGoodsDetailService; private OrderGoodsDetailService orderGoodsDetailService;
@PostMapping("/xxlist")
public JSONObject olist(@RequestParam(value = "page",defaultValue = "1") String spage){
int ipage = Integer.valueOf(spage);
List<Order> orderList=orderService.getAllOrderList(ipage);
Map retmap = new HashMap();
int total = orderService.countAllOrder();
retmap.put("current_page",spage);
retmap.put("per_page",ChConstant.PAGESIZE);
retmap.put("total",total);
retmap.put("data",orderList);
//jsonObject.put("current_page",spage);
//jsonObject.put("per_page", ChConstant.PAGESIZE);
//jsonObject.put("total",total);
jsonObject.put("code",200);
jsonObject.put("data",retmap);
jsonObject.put("msg","成功");
return jsonObject;
}
/** /**
* 订单列列表 * 订单列列表
* @return * @return
*/ */
@PostMapping("/list") @PostMapping("/list")
public JSONObject solist(HttpServletRequest request){ public JSONObject odlist(@RequestBody String jsonStr){
JSONObject request = JSONObject.parseObject(jsonStr);
Map odmap = orderMap(request); Map odmap = orderMap(request);
if(odmap.size()==0){ if(odmap.size()==0){
odmap.put("1",1); odmap.put("1",1);
} }
String spage=request.getParameter("page"); String spage=request.getString("page");
// //
int page= StringUtils.isNotBlank(spage)?Integer.valueOf(spage):1; int page= StringUtils.isNotBlank(spage)?Integer.valueOf(spage):1;
String slimit=request.getParameter("limit"); String slimit=request.getString("limit");
int limit = StringUtils.isNotBlank(slimit)?Integer.valueOf(slimit):10; int limit = StringUtils.isNotBlank(slimit)?Integer.valueOf(slimit):10;
Map map = orderService.getOrderList(odmap,page,limit); Map map = orderService.getOrderList(odmap,page,limit);
@ -85,11 +66,11 @@ public class AdminOrderController extends BaseController {
public JSONObject orderDetail(@RequestBody String request){ public JSONObject orderDetail(@RequestBody String request){
JSONObject json = JSONObject.parseObject(request); JSONObject json = JSONObject.parseObject(request);
String batchcode = json.getString("batchcode"); String batchcode = json.getString("batchcode");
// 订单详情
Order order = orderService.getOrderByBatchcode(batchcode); Map orderMap = orderService.orderDetail(batchcode);
jsonObject.put("code",200); jsonObject.put("code",200);
jsonObject.put("msg","成功"); jsonObject.put("msg","成功");
jsonObject.put("data",order); jsonObject.put("data",orderMap);
return jsonObject; return jsonObject;
} }
@ -142,4 +123,5 @@ public class AdminOrderController extends BaseController {
jsonObject.put("code",200); jsonObject.put("code",200);
return jsonObject; return jsonObject;
} }
} }

11
src/main/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapper.java

@ -49,5 +49,14 @@ public interface OrderGoodsDetailMapper {
* @param batchcode * @param batchcode
* @return * @return
*/ */
OrderDetailVo getOrderDetailVo(String batchcode); List<OrderDetailVo> getOrderDetailVo(String batchcode);
/**
* 获取某个编号的资源下载地址
* @param batchcode
* @param goodsIslicode
* @return
*/
String getOrderGoodsDetailSourceDownload(@Param("batchcode") String batchcode,
@Param("goodsIslicode") String goodsIslicode);
} }

1
src/main/java/cn/chjyj/szwh/service/OrderService.java

@ -71,4 +71,5 @@ public interface OrderService {
* @return * @return
*/ */
int countAllOrder(); int countAllOrder();
} }

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

@ -1,17 +1,12 @@
package cn.chjyj.szwh.service.impl; package cn.chjyj.szwh.service.impl;
import cn.chjyj.szwh.bean.Order; import cn.chjyj.szwh.bean.*;
import cn.chjyj.szwh.bean.OrderGoodsDetail;
import cn.chjyj.szwh.bean.OrderGoodsSource;
import cn.chjyj.szwh.bean.OrderUser;
import cn.chjyj.szwh.constant.ChConstant; import cn.chjyj.szwh.constant.ChConstant;
import cn.chjyj.szwh.exception.ChException; import cn.chjyj.szwh.exception.ChException;
import cn.chjyj.szwh.mapper.OrderGoodsDetailMapper; import cn.chjyj.szwh.mapper.*;
import cn.chjyj.szwh.mapper.OrderGoodsSourceMapper;
import cn.chjyj.szwh.mapper.OrderMapper;
import cn.chjyj.szwh.mapper.OrderUserMapper;
import cn.chjyj.szwh.service.OrderService; import cn.chjyj.szwh.service.OrderService;
import cn.chjyj.szwh.vo.OrderDetailVo; import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -40,6 +35,8 @@ public class OrderServiceImpl implements OrderService {
private OrderGoodsDetailMapper orderGoodsDetailMapper; private OrderGoodsDetailMapper orderGoodsDetailMapper;
@Autowired @Autowired
private OrderGoodsSourceMapper orderGoodsSourceMapper; private OrderGoodsSourceMapper orderGoodsSourceMapper;
@Autowired
private GoodsSourceMapper goodsSourceMapper;
@Override @Override
public List<Order> getAllOrderList(int page) { public List<Order> getAllOrderList(int page) {
@ -144,37 +141,70 @@ public class OrderServiceImpl implements OrderService {
public Map<String, Object> orderDetail(String batchcode) { public Map<String, Object> orderDetail(String batchcode) {
Map retmap =new HashMap(); Map retmap =new HashMap();
// 订单详情及产品信息 // 订单详情及产品信息
OrderDetailVo ordv =orderGoodsDetailMapper.getOrderDetailVo(batchcode); List<OrderDetailVo> ordvList =orderGoodsDetailMapper.getOrderDetailVo(batchcode);
if(ordv==null){ if(ordvList==null){
// 订单不存在 // 订单不存在
} log.warn("order miss :"+batchcode+" miss! Check your db pls!");
// 商品图片 }else{
if(StringUtils.isNotBlank(ordv.getGoods_image())){ // 枚举所有的订单详情
//todo 远程获取图 for(OrderDetailVo dv:ordvList){
} // 商品图片
if(StringUtils.isNotBlank(dv.getGoods_image())){
// 订单用户 , //todo 远程获取图
OrderUser orderUser = orderUserMapper.getUserOrder(batchcode,ordv.getEntrust_islicode()); }
// 显示时候取出ID, retmap.put("goods",dv);
orderUser.setId(null); // 订单用户 ,
orderUser.setBatchcode(null); OrderUser orderUser = orderUserMapper.getUserOrder(batchcode,dv.getEntrust_islicode());
retmap.put("userinfo",orderUser); // 显示时候取出ID,
orderUser.setId(null);
//商品来源 orderUser.setBatchcode(null);
List<OrderGoodsSource> orderGoodsSourceList = orderGoodsSourceMapper. retmap.put("userinfo",orderUser);
getOrderGoodsSourceList(ordv.getSource_id());
// 遍历 //来源集合
for(OrderGoodsSource ods:orderGoodsSourceList){ List<OrderGoodsSource> orgslist = orderGoodsSourceMapper.getOrderGoodsSourceList(dv.getSource_id());
String sourceData = ods.getSourceData(); //存储整理后的订单商品
// 转为json List gatherList = new ArrayList();
JSONObject json = JSONObject.parseObject(sourceData); List oneSource = new ArrayList();
Integer dataType= json.getInteger("datatype"); Map info = new HashMap();
// 如果不存在的话,需要进行下载 // 罗列出goodssource
// if(dataType==1){ for(OrderGoodsSource ods:orgslist){
// JSONObject odsJson = JSONObject.parseObject(ods.getSourceData());
// }else{ // 类型
// Integer dataType = ods.getDatatype();
// } if(dataType==1){
info.put("name",ods.getSourceName());
info.put("class",ods.getSourceType());
// 从json data 中获取
info.put("registerDate",odsJson.getString("registerDate"));
info.put("identifier",odsJson.getString("identifier"));
//符合条件的数量
int count = goodsSourceMapper.countGoodSource(dv.getGoods_islicode(),1,ods.getSourceidentify());
info.put("count",count);
gatherList.add(info);
}else{
Long filesize= odsJson.getLongValue("metadataFileSize");
info.put("name",ods.getSourceName());
info.put("class",ods.getSourceType());
info.put("registerDate",odsJson.getString("registerDate"));
info.put("filesize",filesize);
info.put("metadataFileFormat",odsJson.getString("metadataFileFormat"));
// 资源下载地址 ,json 格式
String sourceDown= orderGoodsDetailMapper.getOrderGoodsDetailSourceDownload(batchcode,dv.getGoods_islicode());
JSONArray sdownJsonArray = JSONObject.parseArray(sourceDown);
for(int i=0;i<sdownJsonArray.size();i++){
if(sdownJsonArray.getJSONObject(i).getString("islicode").equals(ods.getLinkcode())){
// 是否已经下载。更新下载状态
info.put("download_status",sdownJsonArray.getJSONObject(i).getString("status"));
}
}
oneSource.add(info);
}
}
retmap.put("gather_arr",gatherList);
retmap.put("oneSource",oneSource);
}
} }
return retmap; return retmap;

8
src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml

@ -48,6 +48,14 @@
select count(*) from <include refid="tbName"/> where createtime between #{startTime} and #{endTime} select count(*) from <include refid="tbName"/> where createtime between #{startTime} and #{endTime}
</select> </select>
<!-- 获取某个资源的下载地址 -->
<select id="getOrderGoodsDetailSourceDownload" parameterType="java.lang.String" resultType="java.lang.String">
select source_download
from <include refid="tbName"/>
where batchcode=#{batchcode}
and goods_islicode=#{goodsIslicode}
</select>
<!-- 订单综合查询 --> <!-- 订单综合查询 -->
<select id="getOrderDetailVo" parameterType="java.lang.String" resultType="cn.chjyj.szwh.vo.OrderDetailVo"> <select id="getOrderDetailVo" parameterType="java.lang.String" resultType="cn.chjyj.szwh.vo.OrderDetailVo">

Loading…
Cancel
Save