Browse Source

修正推荐接口显示异常的bug

master
xyiege 3 years ago
parent
commit
9c2f701450
  1. 15
      src/main/java/cn/chjyj/szwh/controller/api/OrderController.java
  2. 27
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java
  3. 5
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  4. 38
      src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java
  5. 3
      src/main/resources/mapper/szwh/GoodsMapper.xml
  6. 2
      src/test/java/cn/chjyj/szwh/mapper/GoodsMapperTest.java

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

@ -4,10 +4,10 @@ import cn.chjyj.szwh.bean.*;
import cn.chjyj.szwh.controller.BaseController; import cn.chjyj.szwh.controller.BaseController;
import cn.chjyj.szwh.exception.ChException; import cn.chjyj.szwh.exception.ChException;
import cn.chjyj.szwh.service.*; import cn.chjyj.szwh.service.*;
import cn.chjyj.szwh.utils.RedisUtil;
import cn.chjyj.szwh.utils.RedisUtils; import cn.chjyj.szwh.utils.RedisUtils;
import cn.chjyj.szwh.utils.SzOrderUtils; import cn.chjyj.szwh.utils.SzOrderUtils;
import cn.chjyj.szwh.utils.SzwhApiUtils; import cn.chjyj.szwh.utils.SzwhApiUtils;
import cn.chjyj.szwh.vo.OrderDetailVo;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.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;
@ -20,7 +20,6 @@ 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;
/** /**
@ -151,22 +150,20 @@ public class OrderController extends BaseController {
String userIsli= request.getParameter("user_isli"); String userIsli= request.getParameter("user_isli");
// get http_sign // get http_sign
String httpSign = request.getHeader("HTTP_SIGN"); String httpSign = request.getHeader("HTTP_SIGN");
// //redis chk order flag
String redisKey = "createOrder_"+httpSign; String redisKey = "createOrder_"+userIsli;
String redisCon = RedisUtils.get(redisKey); Object redisCon = RedisUtil.get(redisKey);
Map<String,Object> retmap = orderService.createOrder(userIsli,goodsIsli,iuyears); Map<String,Object> retmap = orderService.createOrder(userIsli,goodsIsli,iuyears);
if(StringUtils.isNotBlank(redisCon)){ if(redisCon!=null){
jsonObject.put("code","error"); jsonObject.put("code","error");
jsonObject.put("msg","请勿重复提交"); jsonObject.put("msg","请勿重复提交");
}else{ }else{
// 10s redis // 10s redis
RedisUtils.set(redisKey,1,10); RedisUtil.set(redisKey,1,10);
} }
long end =System.currentTimeMillis(); long end =System.currentTimeMillis();
long howuse = (end-start)/1000l; long howuse = (end-start)/1000l;
// jsonObject.put("code","error");
// jsonObject.put("msg","参数错误错误");
jsonObject.put("useTime",howuse); jsonObject.put("useTime",howuse);
return jsonObject; return jsonObject;
} }

27
src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

@ -216,7 +216,7 @@ public class GoodsServiceImpl implements GoodsService {
glmap.put("goods_type", gl.getGoods_type()); glmap.put("goods_type", gl.getGoods_type());
glmap.put("goods_status", gl.getGoods_status()); glmap.put("goods_status", gl.getGoods_status());
glmap.put("goods_detail_id", gl.getGoods_detail_id()); glmap.put("goods_detail_id", gl.getGoods_detail_id());
glmap.put("is_recommend", gl.getIsRecommend()); glmap.put("is_recommend", gl.getIs_recommend());
glmap.put("entrust_status", gl.getEntrust_status()); glmap.put("entrust_status", gl.getEntrust_status());
glmap.put("charges_type", gl.getCharges_type()); glmap.put("charges_type", gl.getCharges_type());
glmap.put("price", gl.getPrice()); glmap.put("price", gl.getPrice());
@ -536,29 +536,36 @@ public class GoodsServiceImpl implements GoodsService {
@Override @Override
public List getTypeGoods(String type, String createtime, String goods_type) { public List getTypeGoods(String type, String createtime, String goods_type) {
// 商品列表 // 商品列表
List<Goods> glist = new ArrayList<>(); Map qmap = new HashMap();//查询条件
String where = "";//查询条件 qmap.put("g.is_deleted",0);
int limit=8;
String orderKey="g.id"; //排序字段
if ("1".equals(type)) { if ("1".equals(type)) {
glist = goodsMapper.getGoodsByCondition("1=1", 10, "click_count", "DESC"); limit=10;
orderKey="click_count";
} }
if ("2".equals(type)) { if ("2".equals(type)) {
glist = goodsMapper.getGoodsByCondition("1=1", 10, "sale_count", "DESC"); limit=10;
orderKey="click_count";
} }
if ("3".equals(type)) { if ("3".equals(type)) {
where = "is_recommend=1 and goods_status=1"; orderKey="recommend_sort";
glist = goodsMapper.getGoodsByCondition(where, 8, "recommend_sort", "DESC"); qmap.put("g.is_recommend",1);
qmap.put("g.goods_status",1);
} }
List<GoodsListVo> glist = goodsMapper.getGoodsVoList(qmap,orderKey,"DESC",limit,0);
//填充信息 //填充信息
List retlist = new ArrayList(); List retlist = new ArrayList();
for (Goods g : glist) { for (GoodsListVo g : glist) {
Map tgmap =new HashMap(); Map tgmap =new HashMap();
//List tmpglist =new ArrayList(); //List tmpglist =new ArrayList();
JSONObject tmpjson = (JSONObject) JSON.toJSON(g); JSONObject tmpjson = (JSONObject) JSON.toJSON(g);
tgmap= JSONObject.parseObject(tmpjson.toJSONString()); tgmap= JSONObject.parseObject(tmpjson.toJSONString());
// //
GoodsDetail gd = goodsDetailMapper.getGoodsDetailBygid(g.getGoodsDetailId()); //GoodsDetail gd = goodsDetailMapper.getGoodsDetailBygid(g.getGoodsDetailId());
//add //add
tgmap.put("entrust_month",gd.getContractualPeriod()); tgmap.put("entrust_month",g.getContractual_period());
retlist.add(tgmap); retlist.add(tgmap);
} }

5
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.exception.ChException;
import cn.chjyj.szwh.mapper.*; import cn.chjyj.szwh.mapper.*;
import cn.chjyj.szwh.service.OrderService; import cn.chjyj.szwh.service.OrderService;
import cn.chjyj.szwh.utils.RedisUtil;
import cn.chjyj.szwh.utils.RedisUtils; import cn.chjyj.szwh.utils.RedisUtils;
import cn.chjyj.szwh.utils.SzFileUtils; import cn.chjyj.szwh.utils.SzFileUtils;
import cn.chjyj.szwh.vo.OrderDetailVo; import cn.chjyj.szwh.vo.OrderDetailVo;
@ -625,8 +626,8 @@ public class OrderServiceImpl implements OrderService {
retmap.put("msg","用户不存在"); retmap.put("msg","用户不存在");
} }
String ureidsKey="car_"+userIsli; String ureidsKey="car_"+userIsli;
//查询购物车
String shopCar = RedisUtils.get(ureidsKey); Object shopCar = RedisUtil.get(ureidsKey);
return null; return null;
} }

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

@ -16,7 +16,7 @@ public class GoodsListVo {
private Integer goods_type;//商品类型;1:文化资源数据;2:文化数字内容 |goods_detail private Integer goods_type;//商品类型;1:文化资源数据;2:文化数字内容 |goods_detail
private Integer goods_status;//商品状态;1:上架中;2:下架中;3:已转让;4:已失效;5:冻结中;6:下架中 |goods private Integer goods_status;//商品状态;1:上架中;2:下架中;3:已转让;4:已失效;5:冻结中;6:下架中 |goods
private Integer goods_detail_id; //商品明细ID |goods private Integer goods_detail_id; //商品明细ID |goods
private Integer isRecommend; //是否推荐;0:否;1:是 \goods private Integer is_recommend; //是否推荐;0:否;1:是 \goods
private Integer entrust_status; //商品委托类型;1:转让;2:许可 \goods_detail private Integer entrust_status; //商品委托类型;1:转让;2:许可 \goods_detail
//处理其他操作 //处理其他操作
private String key; private String key;
@ -29,6 +29,10 @@ public class GoodsListVo {
private Integer stock; private Integer stock;
private Integer sale_count; private Integer sale_count;
private Integer click_count; private Integer click_count;
//add extral
private Integer user_id; //via:goods
private Integer recommend_sort;
private Integer contractual_period;//委托周期
public Integer getId() { public Integer getId() {
return id; return id;
@ -102,12 +106,12 @@ public class GoodsListVo {
this.goods_detail_id = goods_detail_id; this.goods_detail_id = goods_detail_id;
} }
public Integer getIsRecommend() { public Integer getIs_recommend() {
return isRecommend; return is_recommend;
} }
public void setIsRecommend(Integer isRecommend) { public void setIs_recommend(Integer is_recommend) {
this.isRecommend = isRecommend; this.is_recommend = is_recommend;
} }
public Integer getEntrust_status() { public Integer getEntrust_status() {
@ -197,4 +201,28 @@ public class GoodsListVo {
public void setClick_count(Integer click_count) { public void setClick_count(Integer click_count) {
this.click_count = click_count; this.click_count = click_count;
} }
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public Integer getRecommend_sort() {
return recommend_sort;
}
public void setRecommend_sort(Integer recommend_sort) {
this.recommend_sort = recommend_sort;
}
public Integer getContractual_period() {
return contractual_period;
}
public void setContractual_period(Integer contractual_period) {
this.contractual_period = contractual_period;
}
} }

3
src/main/resources/mapper/szwh/GoodsMapper.xml

@ -66,7 +66,8 @@
<select id="getGoodsVoList" parameterType="java.util.Map" resultType="cn.chjyj.szwh.vo.GoodsListVo"> <select id="getGoodsVoList" parameterType="java.util.Map" resultType="cn.chjyj.szwh.vo.GoodsListVo">
SELECT g.*,gd.* SELECT g.*,gd.*
FROM goods as g FROM goods as g
INNER JOIN goods_detail as gd ON g.goods_detail_id=gd.id INNER JOIN goods_detail as gd
ON g.goods_detail_id=gd.id
<where> <where>
<if test="map!=null"> <if test="map!=null">
<foreach collection="map" item="v" index="k" separator="and"> <foreach collection="map" item="v" index="k" separator="and">

2
src/test/java/cn/chjyj/szwh/mapper/GoodsMapperTest.java

@ -95,7 +95,7 @@ public class GoodsMapperTest {
String odval="DESC"; String odval="DESC";
List<GoodsListVo> goodsListVoList = goodsMapper.getGoodsVoList(map,odkey,odval,100,0); List<GoodsListVo> goodsListVoList = goodsMapper.getGoodsVoList(map,odkey,odval,100,0);
for (GoodsListVo gv:goodsListVoList){ for (GoodsListVo gv:goodsListVoList){
System.out.println(gv.getGoods_name()+" | "+gv.getIsRecommend()+" | "+gv.getId()); System.out.println(gv.getGoods_name()+" | "+gv.getIs_recommend()+" | "+gv.getId());
} }
} }

Loading…
Cancel
Save