Browse Source

更新代码

master
xyiege 3 years ago
parent
commit
412c6d6a49
  1. 113
      src/main/java/cn/chjyj/szwh/controller/api/OrderController.java
  2. 9
      src/main/java/cn/chjyj/szwh/service/OrderService.java
  3. 86
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  4. 38
      src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java
  5. 1
      src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java

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

@ -9,7 +9,6 @@ import cn.chjyj.szwh.utils.SzOrderUtils;
import cn.chjyj.szwh.utils.SzwhApiUtils;
import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson2.JSONObject;
import com.sun.org.apache.xpath.internal.operations.Or;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -29,7 +28,7 @@ import java.util.Map;
* only POST method
*/
@RestController
@RequestMapping(name = "/api/Order", method = RequestMethod.POST)
@RequestMapping( value = "/api/Order")
public class OrderController extends BaseController {
private static Log log = LogFactory.getLog(OrderController.class);
@Autowired
@ -56,54 +55,77 @@ public class OrderController extends BaseController {
/**
* 获取订单信息
*
* @param batchcode
* @param userIsli
* @param userRole
* @param payStatus
* @param closeStatus
* @param orderStatus
* @param creatime
* @param chargesType
* @param page
* @param pagesize
* @param request
* @return
*/
@RequestMapping("/getOrder")
public JSONObject getOrder(@RequestParam("batchcode") String batchcode,
@RequestParam("user_isli") String userIsli,
@RequestParam("user_role") String userRole,
@RequestParam("pay_status") String payStatus,
@RequestParam("close_status") String closeStatus,
@RequestParam("order_status") String orderStatus,
@RequestParam("createtime") String creatime,
@RequestParam("charges_type") String chargesType,
@RequestParam(name = "page", defaultValue = "1") String page,
@RequestParam(name = "limit", defaultValue = "20") String pagesize
) {
// 拼装查询条件
Map<String, Object> qmap = new HashMap<>();
qmap.put("batchcode", batchcode);
qmap.put("user_isli", userIsli);
qmap.put("user_role", userRole);
qmap.put("pay_status", payStatus);
qmap.put("close_status", closeStatus);
qmap.put("order_status", orderStatus);
qmap.put("createtime", creatime);
qmap.put("charges_type", chargesType);
public JSONObject getOrder(HttpServletRequest request ) {
long start=System.currentTimeMillis();
Map qmap =new HashMap();
// 用户标识
String userIsli = request.getParameter("user_isli");
if(StringUtils.isNotBlank(userIsli)){
// do nothing
}
// order sn
String batchcode = request.getParameter("batchcode");
if(StringUtils.isNotBlank(batchcode)){
qmap.put("batchcode", batchcode);
}
//购买角色(1:购买方,2:委托方)
Integer iuserRole=2;
String userRole = request.getParameter("user_role");
if(StringUtils.isNotBlank(userRole)){
if("1".equals(userRole)){ //
qmap.put("buy_islicode",userIsli);
}
iuserRole=1;
}
String appkey=request.getParameter("appkey");
String timestamp = request.getParameter("timestamp");
String payStatus=request.getParameter("pay_status");
if(StringUtils.isNotBlank(payStatus)){
Integer ipaystatus= Integer.valueOf(payStatus);
qmap.put("pay_status", ipaystatus);
}
String closeStatus = request.getParameter("close_status");
if(StringUtils.isNotBlank(closeStatus)){
qmap.put("close_status", closeStatus);
}
String orderStatus = request.getParameter("order_status");
if(StringUtils.isNotBlank(orderStatus)){
qmap.put("order_status", orderStatus);
}
//
int ipage = Integer.valueOf(page);
int ips = Integer.valueOf(pagesize);
int startrs = ipage > 0 ? (ipage - 1) * ips : 0;
//List<Order> olist =orderService.getOrderList(qmap, startrs, ips);
Map outmap = orderService.getOrderList(qmap,"","",startrs,ips);
String creatimeStr = request.getParameter("createtime");
if(StringUtils.isNotBlank(creatimeStr)){
String jarr[]=creatimeStr.split(",");
if(jarr.length>0){
// 拆分
qmap.put("createtime"," createtime between '"+jarr[0]+" 00:00:00' and '"+jarr[1]+" 23:59:59'");
}
}
String page = request.getParameter("page");
Integer ipage = StringUtils.isBlank(page)?1:Integer.valueOf(page);
String limit= request.getParameter("limit");
Integer ilimit = StringUtils.isBlank(limit)?20:Integer.valueOf(limit);
// 获取订单信息
Map<String,Object> odmap = orderService.queryOrder(qmap,iuserRole,ipage,ilimit);
long end = System.currentTimeMillis();
long howuse = (end-start)/1000l;
//赋值
jsonObject.put("code","200");
jsonObject.put("data",outmap);
jsonObject.put("msg","success");
jsonObject.put("page",page);
jsonObject.put("limit",pagesize);
return jsonObject;
JSONObject outjson = new JSONObject();
outjson.put("code","success");
outjson.put("msg","成功");
outjson.put("data",odmap);
outjson.put("useTime",howuse+"s");
return outjson;
}
/**
@ -167,6 +189,7 @@ public class OrderController extends BaseController {
*/
@RequestMapping("/getTicket")
public JSONObject getTicket() {
jsonObject.put("msg",System.currentTimeMillis());
return jsonObject;
}

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

@ -91,4 +91,13 @@ public interface OrderService {
* @return
*/
public String buyFindGoods(String userIsli,String goodsIsli,int userYears);
/**
* 查询订单
* @param qmap
* @param page
* @param limit
* @return
*/
Map<String,Object> queryOrder(Map qmap,Integer userrole,Integer page,Integer limit);
}

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

@ -9,6 +9,7 @@ import cn.chjyj.szwh.utils.SzFileUtils;
import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sun.org.apache.xpath.internal.operations.Or;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
@ -527,6 +529,90 @@ public class OrderServiceImpl implements OrderService {
return null;
}
/**
* 输出条件查询订单
* @param qmap
* @param page
* @param limit
* @return
*/
@Override
public Map<String, Object> 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<>();
for(Order od:orderList){
Map<String,Object> retmap = new HashMap<>();
//订单用户信息
OrderUser orderUser = orderUserMapper.getUserOrder(od.getBatchcode(),od.getBuyIslicode());
retmap.put("buy_username",orderUser.getName());
retmap.put("attesttime",orderUser.getAttesttime());
retmap.put("registertime",orderUser.getRegistertime());
retmap.put("userType",orderUser.getUsertype());
retmap.put("authType",orderUser.getAuthtype());
retmap.put("state",orderUser.getState());
// 分配情况
AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getAccRatioSettingById(od.getAccountRatioId());
AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(),1);
BigDecimal entrustAmount=new BigDecimal(0);
if(accountRatioDetail.getCalculate()==1){
//并列结算
entrustAmount =accountRatioDetail.getRatio();
}else{
//固定
entrustAmount =accountRatioDetail.getAmount();
}
//总额度
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);
totalCloseMoney = totalCloseMoney.add(od.getTotalMoney().multiply(rate)).setScale(2, RoundingMode.HALF_UP);
}
retmap.put("close_money",totalCloseMoney);
}
//
BigDecimal totalMoney=new BigDecimal(0);
BigDecimal totalServiceCharge = new BigDecimal(0);
//订单商品
List<OrderGoodsDetail> orderGoodsDetailList =orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode());
for(OrderGoodsDetail ogd:orderGoodsDetailList){
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","-");
}
retmap.put("entrust_month",ogd.getContractualPeriod());
//订单商品资源
List<OrderGoodsSource> ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString());
retmap.put("source",orderGoodsDetailList);
}
// 商品详情
retmap.put("order_detail",orderGoodsDetailList);
//
retmap.put("total_money",totalMoney);
retmap.put("total_service_charge",totalServiceCharge);
// for buyer
if(userrole==1 && od.getStatus()==3){
retmap.put("status",4);
}
}
outmap.put("search_close_money",new BigDecimal(0));
outmap.put("total_close_money",new BigDecimal(0));
return outmap;
}
/**
* 结算
* @param order

38
src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java

@ -24,7 +24,11 @@ public class GoodsListVo {
private Integer goods_entrust;//委托类型
private BigDecimal price; //gd 价格
private String canceltime; //撤销时间
private String goods_ownership_str;
private String goods_ownership_str; //权益
private String goods_image;
private Integer stock;
private Integer sale_count;
private Integer click_count;
public Integer getId() {
return id;
@ -161,4 +165,36 @@ public class GoodsListVo {
public void setGoods_ownership_str(String goods_ownership_str) {
this.goods_ownership_str = goods_ownership_str;
}
public String getGoods_image() {
return goods_image;
}
public void setGoods_image(String goods_image) {
this.goods_image = goods_image;
}
public Integer getStock() {
return stock;
}
public void setStock(Integer stock) {
this.stock = stock;
}
public Integer getSale_count() {
return sale_count;
}
public void setSale_count(Integer sale_count) {
this.sale_count = sale_count;
}
public Integer getClick_count() {
return click_count;
}
public void setClick_count(Integer click_count) {
this.click_count = click_count;
}
}

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

@ -36,6 +36,7 @@ public class OrderMapperTest {
Map<String,Object> wcon=new HashMap<>();
//wcon.put("buy_islicode","999998-000000001923-9");
//wcon.put("status",5);
wcon.put("buy_islicode","899998-000000001640-3");
int starrs=0;
int pagesize=10;

Loading…
Cancel
Save