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.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -55,27 +56,31 @@ public class OrderController extends BaseController {
/**
* 获取订单信息
* @param request
* @param reqstr POST 方式传递的
* @return
*/
@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();
Map qmap =new HashMap();
// 用户标识
String userIsli = request.getParameter("user_isli");
String userIsli = request.getString("user_isli");
if(StringUtils.isNotBlank(userIsli)){
// do nothing
}
// order sn
String batchcode = request.getParameter("batchcode");
String batchcode = request.getString("batchcode");
if(StringUtils.isNotBlank(batchcode)){
qmap.put("batchcode", batchcode);
}
//购买角色(1:购买方,2:委托方)
Integer iuserRole=2;
String userRole = request.getParameter("user_role");
String userRole = request.getString("user_role");
if(StringUtils.isNotBlank(userRole)){
if("1".equals(userRole)){ //
qmap.put("buy_islicode",userIsli);
@ -83,25 +88,26 @@ public class OrderController extends BaseController {
iuserRole=1;
}
String appkey=request.getParameter("appkey");
String timestamp = request.getParameter("timestamp");
String appkey=request.getString("appkey");
String timestamp = request.getString("timestamp");
String payStatus=request.getParameter("pay_status");
String payStatus=request.getString("pay_status");
if(StringUtils.isNotBlank(payStatus)){
Integer ipaystatus= Integer.valueOf(payStatus);
qmap.put("pay_status", ipaystatus);
}
String closeStatus = request.getParameter("close_status");
String closeStatus = request.getString("close_status");
if(StringUtils.isNotBlank(closeStatus)){
qmap.put("close_status", closeStatus);
}
String orderStatus = request.getParameter("order_status");
// 订单状态
String orderStatus = request.getString("order_status");
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)){
String jarr[]=creatimeStr.split(",");
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'");
}
}
String page = request.getParameter("page");
String page = request.getString("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);
// 获取订单信息
Map<String,Object> odmap = orderService.queryOrder(qmap,iuserRole,ipage,ilimit);
List odlist = orderService.queryOrder(qmap,iuserRole,ipage,ilimit);
long end = System.currentTimeMillis();
long howuse = (end-start)/1000l;
//赋值
JSONObject outjson = new JSONObject();
outjson.put("code","success");
outjson.put("code","200");
outjson.put("msg","成功");
outjson.put("data",odmap);
outjson.put("data",odlist);
outjson.put("useTime",howuse+"s");
return outjson;
}

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

@ -101,7 +101,7 @@ public interface OrderService {
* @param limit
* @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
*/
@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;
//订单结算 todo
List<Order> orderList = orderMapper.getOrderList(qmap, start, limit);
//
Map<String, Object> outmap = new HashMap<>();
//最后的结果返回list
List outlist =new ArrayList();
for (Order od : orderList) {
Map<String, Object> retmap = new HashMap<>();
//订单用户信息
@ -775,14 +774,14 @@ public class OrderServiceImpl implements OrderService {
//固定
entrustAmount = accountRatioDetail.getAmount();
}
BigDecimal totalCloseMoney = new BigDecimal("0.00");
//总额度
if (userrole == 1) {
BigDecimal totalCloseMoney = new BigDecimal(0.00);
if (entrustAmount.compareTo(new BigDecimal(0)) < 0) {
totalCloseMoney = totalCloseMoney.add(od.getTotalMoney()).setScale(2, RoundingMode.HALF_UP);
} else {
// 保留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);
}
retmap.put("close_money", totalCloseMoney);
@ -791,23 +790,65 @@ public class OrderServiceImpl implements OrderService {
BigDecimal totalMoney = new BigDecimal(0);
BigDecimal totalServiceCharge = new BigDecimal(0);
// 处理订单商品返回json格式
List odgList = new ArrayList();
//订单商品
List<OrderGoodsDetail> orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode());
for (OrderGoodsDetail ogd : orderGoodsDetailList) {
Map odgmap =new HashMap();
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);
// 如果是转让
if (ogd.getGoodsEntrust() == 1) {
retmap.put("transaction_count", "-");
// 查询委托方信息
OrderUser entrUser = orderUserMapper.getUserOrder(ogd.getBatchcode(),ogd.getIslicode());
if(entrUser!=null){ //not null
odgmap.put("entrust_name",entrUser.getName());
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());
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_service_charge", totalServiceCharge);
@ -816,10 +857,12 @@ public class OrderServiceImpl implements OrderService {
if (userrole == 1 && od.getStatus() == 3) {
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));
outmap.put("total_close_money", new BigDecimal(0));
return outmap;
return outlist;
}
/**

2
src/main/resources/application.properties

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

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

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

Loading…
Cancel
Save