Browse Source

增加默认排序

master
xyiege 4 years ago
parent
commit
c0195a3907
  1. 368
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

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

@ -47,8 +47,8 @@ public class GoodsServiceImpl implements GoodsService {
@Override @Override
public List<Goods> getGoodsList(int page) { public List<Goods> getGoodsList(int page) {
int startrs = page>0?(page-1)* ChConstant.PAGESIZE:0; int startrs = page > 0 ? (page - 1) * ChConstant.PAGESIZE : 0;
List<Goods> goodsList = goodsMapper.getGoodsList(startrs,ChConstant.PAGESIZE); List<Goods> goodsList = goodsMapper.getGoodsList(startrs, ChConstant.PAGESIZE);
//todo 字段转化啥的 //todo 字段转化啥的
return goodsList; return goodsList;
} }
@ -60,31 +60,32 @@ public class GoodsServiceImpl implements GoodsService {
/** /**
* 更新产品并统计更新数量 * 更新产品并统计更新数量
*
* @return * @return
*/ */
@Override @Override
public int getApiGoods() { public int getApiGoods() {
int count=0; //统计更新数量 int count = 0; //统计更新数量
String host = ProperUtils.getSzwhProp("ENTRUST_URL"); String host = ProperUtils.getSzwhProp("ENTRUST_URL");
String apiurl=host+"/consign/exchange/v1/selectEntrustSource/exchange"; String apiurl = host + "/consign/exchange/v1/selectEntrustSource/exchange";
log.info("get apigoods :"+apiurl); log.info("get apigoods :" + apiurl);
//创建签名 //创建签名
String sign= SignUtils.createSign("entrust"); String sign = SignUtils.createSign("entrust");
// 请求头 // 请求头
Map<String,Object> hmap =new HashMap(); Map<String, Object> hmap = new HashMap();
hmap.put("token",sign); hmap.put("token", sign);
hmap.put("Content-Type","application/json"); hmap.put("Content-Type", "application/json");
// get 方式获取 // get 方式获取
JSONObject jsonObject = RequestUtils.GetData(apiurl,hmap); JSONObject jsonObject = RequestUtils.GetData(apiurl, hmap);
log.info("goods api result : "+jsonObject); log.info("goods api result : " + jsonObject);
// 检索出对象 // 检索出对象
JSONArray jsonArray = jsonObject.getJSONArray("data"); JSONArray jsonArray = jsonObject.getJSONArray("data");
log.info("goods jsonarray: "+jsonArray); log.info("goods jsonarray: " + jsonArray);
// 产品详情地址 // 产品详情地址
String gdurl=host+"/consign/exchange/v1/selectEntrustDetails"; String gdurl = host + "/consign/exchange/v1/selectEntrustDetails";
return count; return count;
} }
@ -92,61 +93,61 @@ public class GoodsServiceImpl implements GoodsService {
@Override @Override
public List getMapDataByTyep(int type) { public List getMapDataByTyep(int type) {
Map retmap = new HashMap(); Map retmap = new HashMap();
String order="";//排序条件 String order = "";//排序条件
String where="is_deleted=0 ";//排序 String where = "is_deleted=0 ";//排序
int limit=10; int limit = 10;
// 点击量倒序 // 点击量倒序
if (type==1){ if (type == 1) {
order="click_count"; order = "click_count";
} }
// 销售量 // 销售量
if(type==2){ if (type == 2) {
order="sale_count"; order = "sale_count";
} }
//推荐,just 8 //推荐,just 8
if(type==3){ if (type == 3) {
limit=8; limit = 8;
order="recommend_sort"; order = "recommend_sort";
where+= "and is_recommend=1"; where += "and is_recommend=1";
} }
// 商品结果列表 // 商品结果列表
List nglist = new ArrayList(); List nglist = new ArrayList();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 排序索引 // 排序索引
int index=0; int index = 0;
List<Goods> glist = goodsMapper.getGoodsByCondition(where,limit,order,"DESC"); List<Goods> glist = goodsMapper.getGoodsByCondition(where, limit, order, "DESC");
// 查询到的list 进行排序 // 查询到的list 进行排序
List<Goods> newgoodsList = new LinkedList<>(); List<Goods> newgoodsList = new LinkedList<>();
Collections.sort(glist, new Comparator<Goods>() { Collections.sort(glist, new Comparator<Goods>() {
@Override @Override
public int compare(Goods o1, Goods o2) { public int compare(Goods o1, Goods o2) {
if(o1.getRecommendSort()>o2.getRecommendSort()){ if (o1.getRecommendSort() > o2.getRecommendSort()) {
return -1; return -1;
} }
if(o1.getRecommendSort()== o2.getRecommendSort()){ if (o1.getRecommendSort() == o2.getRecommendSort()) {
return 0; return 0;
} }
return 1; return 1;
} }
}); });
if(glist!=null){ if (glist != null) {
for(Goods g:glist){ for (Goods g : glist) {
Map<String,Object> ngmap = new HashMap<>(); Map<String, Object> ngmap = new HashMap<>();
GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(g.getGoodsDetailId()); GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(g.getGoodsDetailId());
//添加内容 //添加内容
ngmap.put("createtime",sdf.format(g.getCreateTime())); ngmap.put("createtime", sdf.format(g.getCreateTime()));
ngmap.put("goods_islicode",g.getGoodsIslicode()); ngmap.put("goods_islicode", g.getGoodsIslicode());
ngmap.put("goods_name",goodsDetail.getGoodsName()); ngmap.put("goods_name", goodsDetail.getGoodsName());
ngmap.put("goods_status",g.getGoodsStatus()); ngmap.put("goods_status", g.getGoodsStatus());
ngmap.put("goods_type",goodsDetail.getGoodsType()); ngmap.put("goods_type", goodsDetail.getGoodsType());
ngmap.put("id",index+1); ngmap.put("id", index + 1);
ngmap.put("key",g.getGoodsIslicode()); ngmap.put("key", g.getGoodsIslicode());
ngmap.put("recommend_sort",g.getRecommendSort()); ngmap.put("recommend_sort", g.getRecommendSort());
ngmap.put("username",g.getUsername()); ngmap.put("username", g.getUsername());
nglist.add(ngmap); nglist.add(ngmap);
index++; index++;
} }
@ -156,20 +157,21 @@ public class GoodsServiceImpl implements GoodsService {
/** /**
* map 对象查询 * map 对象查询
* @param gmap 查询对象 *
* @param gmap 查询对象
* @param limit 条目 * @param limit 条目
* @return * @return
*/ */
@Override @Override
public Map<String,Object> getGoodsByMap(Map gmap, int page,int limit) { public Map<String, Object> getGoodsByMap(Map gmap, int page, int limit) {
Map retmap =new HashMap(); Map retmap = new HashMap();
int start = page>1?(page-1)*limit:0; int start = page > 1 ? (page - 1) * limit : 0;
int end =page*limit; int end = page * limit;
//排序方式 //排序方式
String orderkey = ""; String orderkey = "";
if(gmap.size()>0) { if (gmap.size() > 0) {
String ordway = (String) gmap.get("orderway"); String ordway = (String) gmap.get("orderway");
if (StringUtils.isNotBlank(ordway)) { if (StringUtils.isNotBlank(ordway)) {
switch (ordway) { switch (ordway) {
@ -185,6 +187,9 @@ public class GoodsServiceImpl implements GoodsService {
case "4": case "4":
orderkey = "g.click_count"; orderkey = "g.click_count";
break; break;
default:
orderkey = "g.id";
break;
} }
} }
} }
@ -192,39 +197,39 @@ public class GoodsServiceImpl implements GoodsService {
// 获取是否推荐 // 获取是否推荐
Integer ishow = (Integer) gmap.get("g.is_recommend"); Integer ishow = (Integer) gmap.get("g.is_recommend");
List nglist= new ArrayList(); List nglist = new ArrayList();
List<GoodsListVo> goodsListVoList = goodsMapper.getGoodsVoList(gmap,orderkey,"DESC",limit,start); List<GoodsListVo> goodsListVoList = goodsMapper.getGoodsVoList(gmap, orderkey, "DESC", limit, start);
for(GoodsListVo gl:goodsListVoList){ for (GoodsListVo gl : goodsListVoList) {
Map glmap = new HashMap(); Map glmap = new HashMap();
glmap.put("id",gl.getId()); glmap.put("id", gl.getId());
glmap.put("createtime",gl.getCreatetime()); glmap.put("createtime", gl.getCreatetime());
glmap.put("goods_islicode",gl.getGoods_islicode()); glmap.put("goods_islicode", gl.getGoods_islicode());
glmap.put("goods_name",gl.getGoods_name()); glmap.put("goods_name", gl.getGoods_name());
glmap.put("username",gl.getUsername()); glmap.put("username", gl.getUsername());
glmap.put("user_islicode",gl.getUser_islicode()); glmap.put("user_islicode", gl.getUser_islicode());
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.getIsRecommend());
glmap.put("entrust_status",gl.getEntrust_status()); glmap.put("entrust_status", gl.getEntrust_status());
//处理其他操作 //处理其他操作
glmap.put("key",gl.getGoods_islicode()); glmap.put("key", gl.getGoods_islicode());
nglist.add(glmap); nglist.add(glmap);
} }
retmap.put("data",nglist); retmap.put("data", nglist);
// 总的记录 // 总的记录
int total = goodsMapper.countGoodsListVo(gmap); int total = goodsMapper.countGoodsListVo(gmap);
retmap.put("total",total); retmap.put("total", total);
if(total<end){ if (total < end) {
end=total; end = total;
} }
retmap.put("per_page",limit); retmap.put("per_page", limit);
retmap.put("start",start+1); // start 默认为0 retmap.put("start", start + 1); // start 默认为0
retmap.put("end",end); retmap.put("end", end);
retmap.put("curr_page",page); retmap.put("curr_page", page);
retmap.put("per_page",limit); retmap.put("per_page", limit);
return retmap; return retmap;
@ -232,63 +237,63 @@ public class GoodsServiceImpl implements GoodsService {
@Override @Override
public Map<String, Object> getGoodsDetail(String islicode) { public Map<String, Object> getGoodsDetail(String islicode) {
Map retmap= new HashMap(); Map retmap = new HashMap();
/** /**
* 联合查询的结果 * 联合查询的结果
*/ */
GoodsDetailVo gdv= goodsDetailMapper.getGoodsDetailVoList(islicode); GoodsDetailVo gdv = goodsDetailMapper.getGoodsDetailVoList(islicode);
retmap.put("entrust_goods",gdv); retmap.put("entrust_goods", gdv);
if(gdv==null){ if (gdv == null) {
log.warn("goods islicode: "+islicode+" ,不存在"); log.warn("goods islicode: " + islicode + " ,不存在");
throw new ChException("未查询到该商品"); throw new ChException("未查询到该商品");
} }
// 取到用户信息 // 取到用户信息
// 返回后远程获取用户信息 userinfo // 返回后远程获取用户信息 userinfo
retmap.put("user_isli",gdv.getUser_islicode()); retmap.put("user_isli", gdv.getUser_islicode());
// 商品资源 // 商品资源
//List gatherarr=new ArrayList(); //List gatherarr=new ArrayList();
Set gatherarr=new HashSet(); Set gatherarr = new HashSet();
List oneSource=new ArrayList(); List oneSource = new ArrayList();
List<GoodsSource> goodsSourceList = goodsSourceMapper.getGoodsSourceByIsli(gdv.getGoods_islicode()); List<GoodsSource> goodsSourceList = goodsSourceMapper.getGoodsSourceByIsli(gdv.getGoods_islicode());
//if(goodsSourceList!=null){ //not null //if(goodsSourceList!=null){ //not null
for(GoodsSource gs:goodsSourceList){ for (GoodsSource gs : goodsSourceList) {
// 解析json // 解析json
JSONObject sdjson = JSONObject.parseObject(gs.getSourceData()); JSONObject sdjson = JSONObject.parseObject(gs.getSourceData());
log.info("source :"+sdjson); log.info("source :" + sdjson);
log.info("goods source data :"+gs.getSourceData()); log.info("goods source data :" + gs.getSourceData());
Integer datatype=gs.getDatatype(); Integer datatype = gs.getDatatype();
log.info("goods source datatype :"+datatype); log.info("goods source datatype :" + datatype);
Map info = new HashMap(); Map info = new HashMap();
if(datatype==1){ //机构数据 if (datatype == 1) { //机构数据
info.put("name",gs.getSourceName()); info.put("name", gs.getSourceName());
info.put("class",gs.getSourceType()); info.put("class", gs.getSourceType());
// 从json data 中获取 // 从json data 中获取
info.put("registerDate",sdjson.getString("registerDate")); info.put("registerDate", sdjson.getString("registerDate"));
info.put("identifier",sdjson.getString("identifier")); info.put("identifier", sdjson.getString("identifier"));
//符合条件的数量 //符合条件的数量
int count = goodsSourceMapper.countGoodSource(gdv.getGoods_islicode(),1,gs.getSourceidentify()); int count = goodsSourceMapper.countGoodSource(gdv.getGoods_islicode(), 1, gs.getSourceidentify());
info.put("count",count); info.put("count", count);
gatherarr.add(info); gatherarr.add(info);
}else{ } else {
Long filesize= sdjson.getLongValue("metadataFileSize"); Long filesize = sdjson.getLongValue("metadataFileSize");
info.put("name",gs.getSourceName()); info.put("name", gs.getSourceName());
info.put("class",gs.getSourceType()); info.put("class", gs.getSourceType());
info.put("registerDate",sdjson.getString("registerDate")); info.put("registerDate", sdjson.getString("registerDate"));
info.put("filesize", SzFileUtils.fileSizeFormat(filesize)); info.put("filesize", SzFileUtils.fileSizeFormat(filesize));
info.put("identifier",sdjson.getString("identifier")); info.put("identifier", sdjson.getString("identifier"));
info.put("metadataFileFormat",sdjson.getString("metadataFileFormat")); info.put("metadataFileFormat", sdjson.getString("metadataFileFormat"));
//符合条件的数量 //符合条件的数量
int count = goodsSourceMapper.countGoodSource(gdv.getGoods_islicode(),1,gs.getSourceidentify()); int count = goodsSourceMapper.countGoodSource(gdv.getGoods_islicode(), 1, gs.getSourceidentify());
info.put("count",count); info.put("count", count);
oneSource.add(info); oneSource.add(info);
}
} }
// }
retmap.put("gather_arr",gatherarr); //
retmap.put("oneSource",oneSource); retmap.put("gather_arr", gatherarr);
retmap.put("oneSource", oneSource);
//} //}
return retmap; return retmap;
@ -296,67 +301,69 @@ public class GoodsServiceImpl implements GoodsService {
/** /**
* 下架操作 * 下架操作
*
* @param goodsIsli * @param goodsIsli
* @return * @return
*/ */
@Override @Override
public Map<String, Object> whetherOff(String goodsIsli) { public Map<String, Object> whetherOff(String goodsIsli) {
Map retmap = new HashMap(); Map retmap = new HashMap();
String msg="没有该条委托数据"; String msg = "没有该条委托数据";
int code=400; int code = 400;
Goods goods = goodsMapper.getGoodsFuelByIsLi(goodsIsli); Goods goods = goodsMapper.getGoodsFuelByIsLi(goodsIsli);
// 非空,继续判断 // 非空,继续判断
if(goods!=null) { if (goods != null) {
// 非在售状态 // 非在售状态
if (goods.getGoodsStatus() != 1 && goods.getGoodsStatus() != 5) { if (goods.getGoodsStatus() != 1 && goods.getGoodsStatus() != 5) {
msg = "暂时只支持对已发布/暂停中文化数据进行撤销!"; msg = "暂时只支持对已发布/暂停中文化数据进行撤销!";
}else if (goods.getApplyOut() == 1) { } else if (goods.getApplyOut() == 1) {
msg = "请勿重复提交撤销委托申请!"; msg = "请勿重复提交撤销委托申请!";
}else{ } else {
code=200; code = 200;
msg="可以下架"; msg = "可以下架";
} }
} }
retmap.put("msg",msg); retmap.put("msg", msg);
retmap.put("code",code); retmap.put("code", code);
return retmap; return retmap;
} }
/** /**
* 委托撤销商品 * 委托撤销商品
*
* @param goodsIsli * @param goodsIsli
* @param reason * @param reason
* @param username * @param username
*/ */
@Override @Override
public Map<String,Object> offGoods(String goodsIsli, String reason,String username) { public Map<String, Object> offGoods(String goodsIsli, String reason, String username) {
int code =200; int code = 200;
String msg="成功"; String msg = "成功";
// 查询商品信息 // 查询商品信息
Goods goods = goodsMapper.getGoodsFuelByIsLi(goodsIsli); Goods goods = goodsMapper.getGoodsFuelByIsLi(goodsIsli);
if(goods==null ){ if (goods == null) {
msg="没有该条委托数据"; msg = "没有该条委托数据";
code=400; code = 400;
} }
if(goods.getGoodsStatus()!=1 && goods.getGoodsStatus()!=5){ if (goods.getGoodsStatus() != 1 && goods.getGoodsStatus() != 5) {
msg="暂时只支持对已发布/暂停中文化数据进行撤销!"; msg = "暂时只支持对已发布/暂停中文化数据进行撤销!";
code=400; code = 400;
} }
if(goods.getApplyOut() == 1){ if (goods.getApplyOut() == 1) {
msg="请勿重复提交撤销委托申请!"; msg = "请勿重复提交撤销委托申请!";
code=400; code = 400;
} }
// 满足上述条件后进行远程处理 // 满足上述条件后进行远程处理
JSONObject retjson = SzwhApiUtils.offGoods(reason,goodsIsli); JSONObject retjson = SzwhApiUtils.offGoods(reason, goodsIsli);
log.info("remote offgoods result:"+retjson.toString()); log.info("remote offgoods result:" + retjson.toString());
String errorcode =retjson.getString("resultCode"); String errorcode = retjson.getString("resultCode");
String errmsg = retjson.getString("resultMsg"); String errmsg = retjson.getString("resultMsg");
if(!"00000000".equals(errorcode)){ if (!"00000000".equals(errorcode)) {
msg= errmsg; msg = errmsg;
code=400; code = 400;
}else { } else {
// 更新状态 // 更新状态
Map gmap = new HashMap(); Map gmap = new HashMap();
gmap.put("apply_out", 1); gmap.put("apply_out", 1);
@ -372,88 +379,89 @@ public class GoodsServiceImpl implements GoodsService {
oplog.setMessage(message); oplog.setMessage(message);
operationLogMapper.addLog(oplog); operationLogMapper.addLog(oplog);
// //
msg="成功"; msg = "成功";
code=200; code = 200;
} }
// 返回的map 集合 // 返回的map 集合
Map retmap = new HashMap(); Map retmap = new HashMap();
retmap.put("code",code); retmap.put("code", code);
retmap.put("msg",msg); retmap.put("msg", msg);
return retmap; return retmap;
} }
@Override @Override
public Map<String,Object> addRank(List<String> goodsisliArr) { public Map<String, Object> addRank(List<String> goodsisliArr) {
String msg="成功"; String msg = "成功";
int code=200; int code = 200;
Map remap =new HashMap(); Map remap = new HashMap();
remap.put("is_recommend",1); //推荐商品 remap.put("is_recommend", 1); //推荐商品
remap.put("is_deleted",0); remap.put("is_deleted", 0);
int hasrecomend = goodsMapper.goodsCount(remap); int hasrecomend = goodsMapper.goodsCount(remap);
if(hasrecomend>=8){ if (hasrecomend >= 8) {
code=400; code = 400;
msg="你推荐的商品数量超过8个"; msg = "你推荐的商品数量超过8个";
} }
// //
for(String ss:goodsisliArr){ for (String ss : goodsisliArr) {
if(hasrecomend<8){ if (hasrecomend < 8) {
Goods goods = goodsMapper.getGoodsFuelByIsLi(ss); Goods goods = goodsMapper.getGoodsFuelByIsLi(ss);
if(goods==null){ if (goods == null) {
continue; continue;
}else{ } else {
if(goods.getIsRecommend()==1){ if (goods.getIsRecommend() == 1) {
continue; continue;
}else{ } else {
goodsMapper.updateRecommend(goods.getGoodsIslicode(),1); goodsMapper.updateRecommend(goods.getGoodsIslicode(), 1);
} }
} }
hasrecomend++; hasrecomend++;
} }
} }
Map outmap = new HashMap(); Map outmap = new HashMap();
outmap.put("code",code); outmap.put("code", code);
outmap.put("msg",msg); outmap.put("msg", msg);
return outmap; return outmap;
} }
/** /**
* 移除推荐榜 * 移除推荐榜
*
* @param goodsisliArr * @param goodsisliArr
* @return * @return
*/ */
@Override @Override
public Map<String, Object> delRank(List<String> goodsisliArr) { public Map<String, Object> delRank(List<String> goodsisliArr) {
int code=200; int code = 200;
String msg="成功"; String msg = "成功";
for(String srt:goodsisliArr){ for (String srt : goodsisliArr) {
String gis =srt; String gis = srt;
Goods goods = goodsMapper.getGoodsFuelByIsLi(gis); Goods goods = goodsMapper.getGoodsFuelByIsLi(gis);
if(goods==null){ if (goods == null) {
continue; continue;
} }
if(goods.getIsRecommend()==0){ if (goods.getIsRecommend() == 0) {
continue; continue;
}else{ } else {
int ret = goodsMapper.updateRecommend(gis,0); int ret = goodsMapper.updateRecommend(gis, 0);
} }
} }
Map retmap = new HashMap(); Map retmap = new HashMap();
retmap.put("code",code); retmap.put("code", code);
retmap.put("msg",msg); retmap.put("msg", msg);
return retmap; return retmap;
} }
@Override @Override
public int ranksort(String goodsIsli, int type) { public int ranksort(String goodsIsli, int type) {
int ret=0; int ret = 0;
Goods goods = goodsMapper.getGoodsByIsli(goodsIsli); Goods goods = goodsMapper.getGoodsByIsli(goodsIsli);
if(goods!=null ){ if (goods != null) {
int ranksort = goods.getRecommendSort(); int ranksort = goods.getRecommendSort();
int sortaval = type==1?ranksort+1:ranksort-1; int sortaval = type == 1 ? ranksort + 1 : ranksort - 1;
if(sortaval<0){ if (sortaval < 0) {
sortaval=0; sortaval = 0;
} }
ret = goodsMapper.updateRankSort(goodsIsli,sortaval); ret = goodsMapper.updateRankSort(goodsIsli, sortaval);
} }
return ret; return ret;
} }

Loading…
Cancel
Save