Browse Source

调整订单查询的json返回结构

master
xyiege 3 years ago
parent
commit
7696b44939
  1. 40
      src/main/java/cn/chjyj/szwh/controller/api/OrderController.java
  2. 2
      src/main/java/cn/chjyj/szwh/service/OrderService.java
  3. 77
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  4. 2
      src/main/resources/application.properties
  5. 2
      src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml

40
src/main/java/cn/chjyj/szwh/controller/api/OrderController.java

@ -21,6 +21,7 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -55,27 +56,31 @@ public class OrderController extends BaseController {
/** /**
* 获取订单信息 * 获取订单信息
* @param request * @param reqstr POST 方式传递的
* @return * @return
*/ */
@RequestMapping("/getOrder") @RequestMapping("/getOrder")
public JSONObject getOrder(HttpServletRequest request ) { public JSONObject getOrder(@RequestBody String reqstr ) {
//{"appkey":"0acdbb709ee95707","limit":"20","order_status":"2","page":"1",
// "timestamp":"1667810376","user_isli":"899998-000000001640-3","user_role":"1"}
log.info("Apigetorder:"+reqstr);
JSONObject request = JSONObject.parseObject(reqstr);
long start=System.currentTimeMillis(); long start=System.currentTimeMillis();
Map qmap =new HashMap(); Map qmap =new HashMap();
// 用户标识 // 用户标识
String userIsli = request.getParameter("user_isli"); String userIsli = request.getString("user_isli");
if(StringUtils.isNotBlank(userIsli)){ if(StringUtils.isNotBlank(userIsli)){
// do nothing // do nothing
} }
// order sn // order sn
String batchcode = request.getParameter("batchcode"); String batchcode = request.getString("batchcode");
if(StringUtils.isNotBlank(batchcode)){ if(StringUtils.isNotBlank(batchcode)){
qmap.put("batchcode", batchcode); qmap.put("batchcode", batchcode);
} }
//购买角色(1:购买方,2:委托方) //购买角色(1:购买方,2:委托方)
Integer iuserRole=2; Integer iuserRole=2;
String userRole = request.getParameter("user_role"); String userRole = request.getString("user_role");
if(StringUtils.isNotBlank(userRole)){ if(StringUtils.isNotBlank(userRole)){
if("1".equals(userRole)){ // if("1".equals(userRole)){ //
qmap.put("buy_islicode",userIsli); qmap.put("buy_islicode",userIsli);
@ -83,25 +88,26 @@ public class OrderController extends BaseController {
iuserRole=1; iuserRole=1;
} }
String appkey=request.getParameter("appkey"); String appkey=request.getString("appkey");
String timestamp = request.getParameter("timestamp"); String timestamp = request.getString("timestamp");
String payStatus=request.getParameter("pay_status"); String payStatus=request.getString("pay_status");
if(StringUtils.isNotBlank(payStatus)){ if(StringUtils.isNotBlank(payStatus)){
Integer ipaystatus= Integer.valueOf(payStatus); Integer ipaystatus= Integer.valueOf(payStatus);
qmap.put("pay_status", ipaystatus); qmap.put("pay_status", ipaystatus);
} }
String closeStatus = request.getParameter("close_status"); String closeStatus = request.getString("close_status");
if(StringUtils.isNotBlank(closeStatus)){ if(StringUtils.isNotBlank(closeStatus)){
qmap.put("close_status", closeStatus); qmap.put("close_status", closeStatus);
} }
String orderStatus = request.getParameter("order_status"); // 订单状态
String orderStatus = request.getString("order_status");
if(StringUtils.isNotBlank(orderStatus)){ if(StringUtils.isNotBlank(orderStatus)){
qmap.put("order_status", orderStatus); qmap.put("status", orderStatus);
} }
// //
String creatimeStr = request.getParameter("createtime"); String creatimeStr = request.getString("createtime");
if(StringUtils.isNotBlank(creatimeStr)){ if(StringUtils.isNotBlank(creatimeStr)){
String jarr[]=creatimeStr.split(","); String jarr[]=creatimeStr.split(",");
if(jarr.length>0){ if(jarr.length>0){
@ -109,21 +115,21 @@ public class OrderController extends BaseController {
qmap.put("createtime"," createtime between '"+jarr[0]+" 00:00:00' and '"+jarr[1]+" 23:59:59'"); qmap.put("createtime"," createtime between '"+jarr[0]+" 00:00:00' and '"+jarr[1]+" 23:59:59'");
} }
} }
String page = request.getParameter("page"); String page = request.getString("page");
Integer ipage = StringUtils.isBlank(page)?1:Integer.valueOf(page); Integer ipage = StringUtils.isBlank(page)?1:Integer.valueOf(page);
String limit= request.getParameter("limit"); String limit= request.getString("limit");
Integer ilimit = StringUtils.isBlank(limit)?20:Integer.valueOf(limit); Integer ilimit = StringUtils.isBlank(limit)?20:Integer.valueOf(limit);
// 获取订单信息 // 获取订单信息
Map<String,Object> odmap = orderService.queryOrder(qmap,iuserRole,ipage,ilimit); List odlist = orderService.queryOrder(qmap,iuserRole,ipage,ilimit);
long end = System.currentTimeMillis(); long end = System.currentTimeMillis();
long howuse = (end-start)/1000l; long howuse = (end-start)/1000l;
//赋值 //赋值
JSONObject outjson = new JSONObject(); JSONObject outjson = new JSONObject();
outjson.put("code","success"); outjson.put("code","200");
outjson.put("msg","成功"); outjson.put("msg","成功");
outjson.put("data",odmap); outjson.put("data",odlist);
outjson.put("useTime",howuse+"s"); outjson.put("useTime",howuse+"s");
return outjson; return outjson;
} }

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

@ -101,7 +101,7 @@ public interface OrderService {
* @param limit * @param limit
* @return * @return
*/ */
Map<String,Object> queryOrder(Map qmap,Integer userrole,Integer page,Integer limit); List queryOrder(Map qmap,Integer userrole,Integer page,Integer limit);
/** /**
* 创建订单 * 创建订单

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

@ -746,14 +746,13 @@ public class OrderServiceImpl implements OrderService {
* @return * @return
*/ */
@Override @Override
public Map<String, Object> queryOrder(Map qmap, Integer userrole, Integer page, Integer limit) { public List queryOrder(Map qmap, Integer userrole, Integer page, Integer limit) {
int start = page > 1 ? (page - 1) * limit : 0; int start = page > 1 ? (page - 1) * limit : 0;
//订单结算 todo //订单结算 todo
List<Order> orderList = orderMapper.getOrderList(qmap, start, limit); List<Order> orderList = orderMapper.getOrderList(qmap, start, limit);
// //最后的结果返回list
Map<String, Object> outmap = new HashMap<>(); List outlist =new ArrayList();
for (Order od : orderList) { for (Order od : orderList) {
Map<String, Object> retmap = new HashMap<>(); Map<String, Object> retmap = new HashMap<>();
//订单用户信息 //订单用户信息
@ -775,14 +774,14 @@ public class OrderServiceImpl implements OrderService {
//固定 //固定
entrustAmount = accountRatioDetail.getAmount(); entrustAmount = accountRatioDetail.getAmount();
} }
BigDecimal totalCloseMoney = new BigDecimal("0.00");
//总额度 //总额度
if (userrole == 1) { if (userrole == 1) {
BigDecimal totalCloseMoney = new BigDecimal(0.00);
if (entrustAmount.compareTo(new BigDecimal(0)) < 0) { if (entrustAmount.compareTo(new BigDecimal(0)) < 0) {
totalCloseMoney = totalCloseMoney.add(od.getTotalMoney()).setScale(2, RoundingMode.HALF_UP); totalCloseMoney = totalCloseMoney.add(od.getTotalMoney()).setScale(2, RoundingMode.HALF_UP);
} else { } else {
// 保留2位小数,向上 四舍五入 // 保留2位小数,向上 四舍五入
BigDecimal rate = entrustAmount.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP); BigDecimal rate = entrustAmount.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP);
totalCloseMoney = totalCloseMoney.add(od.getTotalMoney().multiply(rate)).setScale(2, RoundingMode.HALF_UP); totalCloseMoney = totalCloseMoney.add(od.getTotalMoney().multiply(rate)).setScale(2, RoundingMode.HALF_UP);
} }
retmap.put("close_money", totalCloseMoney); retmap.put("close_money", totalCloseMoney);
@ -791,23 +790,65 @@ public class OrderServiceImpl implements OrderService {
BigDecimal totalMoney = new BigDecimal(0); BigDecimal totalMoney = new BigDecimal(0);
BigDecimal totalServiceCharge = new BigDecimal(0); BigDecimal totalServiceCharge = new BigDecimal(0);
// 处理订单商品返回json格式
List odgList = new ArrayList();
//订单商品 //订单商品
List<OrderGoodsDetail> orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode()); List<OrderGoodsDetail> orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode());
for (OrderGoodsDetail ogd : orderGoodsDetailList) { for (OrderGoodsDetail ogd : orderGoodsDetailList) {
Map odgmap =new HashMap();
retmap.put("close_status", ogd.getCloseStatus()); retmap.put("close_status", ogd.getCloseStatus());
totalMoney = totalMoney.add(ogd.getMoney()).setScale(2, RoundingMode.HALF_UP); // 查询委托方信息
totalServiceCharge = totalServiceCharge.add(ogd.getServiceCharge()).setScale(2, RoundingMode.HALF_UP); OrderUser entrUser = orderUserMapper.getUserOrder(ogd.getBatchcode(),ogd.getIslicode());
// 如果是转让 if(entrUser!=null){ //not null
if (ogd.getGoodsEntrust() == 1) { odgmap.put("entrust_name",entrUser.getName());
retmap.put("transaction_count", "-"); odgmap.put("attesttime",entrUser.getAttesttime());
odgmap.put("registertime",entrUser.getRegistertime());
odgmap.put("userType",entrUser.getUserType());
odgmap.put("authType",entrUser.getAuthType());
odgmap.put("state",entrUser.getState());
}
//查询商品状态
Goods tgoods = goodsMapper.getGoodsByIsli(ogd.getGoodsIslicode());
int igoodsStatus=4; //默认
if(tgoods!=null){
igoodsStatus = tgoods.getGoodsStatus();
}
odgmap.put("goods_status",igoodsStatus);
//如果是委托方
if(userrole==2){
if (entrustAmount.compareTo(new BigDecimal(1))!=0) {
totalCloseMoney = totalCloseMoney.add(ogd.getMoney());
}else{
BigDecimal tmp = entrustAmount.divide(new BigDecimal("100")).setScale(2);
totalCloseMoney = totalCloseMoney.add(ogd.getMoney().multiply(tmp)).setScale(2);
}
}
// 检查委托信息
if(ogd.getGoodsEntrust()==1 || (ogd.getChargesType()==1 && ogd.getGoodsEntrust()==2)){
odgmap.put("transaction_count","-");
} }
retmap.put("entrust_month", ogd.getContractualPeriod()); //
totalMoney = totalMoney.add(ogd.getMoney());
totalServiceCharge = totalServiceCharge.add(ogd.getServiceCharge());
//委托周期
odgmap.put("entrust_month",ogd.getContractualPeriod());
//订单商品资源 //订单商品资源
List<OrderGoodsSource> ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString()); List<OrderGoodsSource> ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString());
retmap.put("source", orderGoodsDetailList); List ogsJsonList = new ArrayList();
for(OrderGoodsSource innerOgs:ogsourceList){
Map osgsMap = JSONObject.parseObject(JSON.toJSONString(innerOgs));
ogsJsonList.add(osgsMap);
}
// convert to json
odgmap.put("source", ogsJsonList);
//
odgList.add(odgmap);
} }
// 商品详情 // 商品详情
retmap.put("order_detail", orderGoodsDetailList); retmap.put("order_detail", odgList);
// //
retmap.put("total_money", totalMoney); retmap.put("total_money", totalMoney);
retmap.put("total_service_charge", totalServiceCharge); retmap.put("total_service_charge", totalServiceCharge);
@ -816,10 +857,12 @@ public class OrderServiceImpl implements OrderService {
if (userrole == 1 && od.getStatus() == 3) { if (userrole == 1 && od.getStatus() == 3) {
retmap.put("status", 4); retmap.put("status", 4);
} }
retmap.put("search_close_money", new BigDecimal(0));
retmap.put("total_close_money", new BigDecimal(0));
outlist.add(retmap);
} }
outmap.put("search_close_money", new BigDecimal(0)); return outlist;
outmap.put("total_close_money", new BigDecimal(0));
return outmap;
} }
/** /**

2
src/main/resources/application.properties

@ -30,7 +30,7 @@ spring.redis.jedis.pool.max-wait=-1
spring.quartz.scheduler-name=szwhQuartz spring.quartz.scheduler-name=szwhQuartz
spring.quartz.job-store-type=memory spring.quartz.job-store-type=memory
# quartz 自动启动 # quartz 自动启动
spring.quartz.auto-startup=false spring.quartz.auto-startup=true
# 延迟5s启动 # 延迟5s启动
spring.quartz.startup-delay=5 spring.quartz.startup-delay=5
# 应用关闭时候等待完成 # 应用关闭时候等待完成

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

@ -109,7 +109,7 @@
<!-- search in few somthing fields --> <!-- search in few somthing fields -->
<select id="searchOrderGoodsInKey" resultType="cn.chjyj.szwh.bean.OrderGoodsDetail"> <select id="searchOrderGoodsInKey" resultType="cn.chjyj.szwh.bean.OrderGoodsDetail">
select ${field} select <include refid="column"/>
from <include refid="tbName"/> from <include refid="tbName"/>
<where> <where>
<foreach collection="somap" item="v" index="k" separator="OR"> <foreach collection="somap" item="v" index="k" separator="OR">

Loading…
Cancel
Save