Browse Source

新增多条件查询订单详情

master
xyiege 3 years ago
parent
commit
55786c4011
  1. 61
      src/main/java/cn/chjyj/szwh/controller/api/OrderController.java
  2. 8
      src/main/java/cn/chjyj/szwh/mapper/OrderMapper.java
  3. 10
      src/main/java/cn/chjyj/szwh/service/OrderService.java
  4. 18
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  5. 21
      src/main/resources/mapper/szwh/OrderMapper.xml

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

@ -135,50 +135,39 @@ public class OrderController extends BaseController {
*/
@RequestMapping("/createOrder")
public JSONObject createOrder(HttpServletRequest request) {
//goods_isli=010007-00000000347399999999-2
// &is_car=2&user_isli=899998-000000001640-3
// &use_years=99&random=0.23348573938145045
// todo 对参数进行非空判断
long start = System.currentTimeMillis();
// 商品编号,逗号分隔
String goodsIsli=request.getParameter("goods_isli");
// 是否在购物车
String isCar = request.getParameter("is_car");
//用户购买年限,逗号分隔
// //用户购买年限,逗号分隔
String userYears = request.getParameter("user_years");
// 用户编码
Integer iuyears=StringUtils.isNotBlank(userYears)?Integer.valueOf(userYears):1;
// // 用户编码
String userIsli= request.getParameter("user_isli");
// get http_sign
String httpSign = request.getHeader("HTTP_SIGN");
//
String redisKey = "createOrder_"+httpSign;
String redisCon = RedisUtils.get(redisKey);
log.info("创建订单接口"+request.toString());
String msg="";
int code=400;
String sign = request.getHeader("sign");
//redis中是否存在
String r_key="createOrder_"+sign;
if(StringUtils.isNotEmpty(RedisUtils.get(r_key))){
throw new ChException("请勿重复提交",400);
}
// 存入redis
RedisUtils.set(r_key,1,10);
//用户购物车
String shopCar = RedisUtils.get("car_"+userIsli);
//分割多个goodsisli
String goodArr[]=goodsIsli.split(",");
// 购买年限数组
String uYears[] = userYears.split(",");
//用户信息
User buser = userService.getUserByIsli(userIsli);
//只有一条记录的时候
if(goodArr.length==1){
String batchcode = buyFindGoods(userIsli,goodsIsli,Integer.valueOf(userYears));
if(StringUtils.isNotBlank(shopCar)){
}
}else{ //多个商品编号
}
//未能删除成功
if(!RedisUtils.delete(r_key)){
throw new ChException("请勿重复提交",400);
Map<String,Object> retmap = orderService.createOrder(userIsli,goodsIsli,iuyears);
if(StringUtils.isNotBlank(redisCon)){
jsonObject.put("code","error");
jsonObject.put("msg","请勿重复提交");
}else{
// 10s redis
RedisUtils.set(redisKey,1,10);
}
jsonObject.put("code",code);
jsonObject.put("msg",msg);
long end =System.currentTimeMillis();
long howuse = (end-start)/1000l;
// jsonObject.put("code","error");
// jsonObject.put("msg","参数错误错误");
jsonObject.put("useTime",howuse);
return jsonObject;
}

8
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.OrderDetailVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@ -53,6 +54,13 @@ public interface OrderMapper {
*/
Order getOrderByBatchcode(String batchcode);
/**
* 多条件查询订单详情
* @param qmap
* @return
*/
OrderDetailVo getOrderDetailVOByMap(@Param("map")Map qmap);
/**
* 更新某些字段值
* @param map

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

@ -1,5 +1,6 @@
package cn.chjyj.szwh.service;
import cn.chjyj.szwh.bean.Goods;
import cn.chjyj.szwh.bean.Order;
import org.apache.ibatis.annotations.Param;
@ -100,4 +101,13 @@ public interface OrderService {
* @return
*/
Map<String,Object> queryOrder(Map qmap,Integer userrole,Integer page,Integer limit);
/**
* 创建订单
* @param userIsli
* @param goodsIsli
* @param userYears
* @return
*/
Map<String,Object> createOrder(String userIsli,String goodsIsli,Integer userYears);
}

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

@ -5,6 +5,7 @@ import cn.chjyj.szwh.constant.ChConstant;
import cn.chjyj.szwh.exception.ChException;
import cn.chjyj.szwh.mapper.*;
import cn.chjyj.szwh.service.OrderService;
import cn.chjyj.szwh.utils.RedisUtils;
import cn.chjyj.szwh.utils.SzFileUtils;
import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson2.JSONArray;
@ -36,6 +37,8 @@ public class OrderServiceImpl implements OrderService {
private OrderMapper orderMapper;
@Autowired
private OrderUserMapper orderUserMapper;
@Autowired
private UserMapper userMapper;
/**
* 订单商品信息取出商品名称委托编号
*/
@ -613,6 +616,21 @@ public class OrderServiceImpl implements OrderService {
return outmap;
}
@Override
public Map<String, Object> createOrder(String userIsli, String goodsIsli, Integer userYears) {
Map<String,Object> retmap = new HashMap<>();
User user = userMapper.getUserByIsli(userIsli);
if(user==null){
retmap.put("code","error");
retmap.put("msg","用户不存在");
}
String ureidsKey="car_"+userIsli;
String shopCar = RedisUtils.get(ureidsKey);
return null;
}
/**
* 结算
* @param order

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

@ -105,6 +105,27 @@
limit #{startRs},#{pageSize}
</select>
<!-- 多条件查询-->
<select id="getOrderDetailVOByMap" parameterType="java.util.Map" resultType="cn.chjyj.szwh.vo.OrderDetailVo">
SELECT o.*,od.*
FROM `order` o
LEFT JOIN order_goods_detail od
ON o.batchcode=od.batchcode
<where>
<if test="map!=null">
<foreach collection="map" item="v" index="k" separator="and">
<if test="k!='ostatus_not'">
${k} = #{v}
</if>
<if test="k=='ostatus_not'">
o.status <![CDATA[ <> ]]> #{v};
</if>
</foreach>
</if>
</where>
</select>
<!-- 根据不同状态代码统计 -->
<select id="countOrderByStatus" resultType="java.lang.Integer" parameterType="java.lang.Integer">
select count(*) from

Loading…
Cancel
Save