Authored by chenchao

Merge branch 'test6.8.3' into dev6.8.3_order

package com.yohoufo.dal.product;
import com.yohoufo.dal.product.model.SearchWord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
... ... @@ -8,5 +9,5 @@ import java.util.List;
* Created by li.ma on 2018/9/27.
*/
public interface SearchWordMapper {
List<SearchWord> selectAll();
List<SearchWord> selectAll(@Param("clientType")Integer clientType, @Param("wordType")Integer wordType);
}
... ...
... ... @@ -10,6 +10,14 @@
</resultMap>
<select id="selectAll" resultMap="BaseResultMap">
select id, search_word, order_by, create_time, update_time from hot_search_word order by order_by DESC
select id, search_word, order_by, create_time, update_time from search_word
where 1 = 1
<if test="clientType != null">
AND (client_type = #{clientType, jdbcType=INTEGER} or client_type = 2)
</if>
<if test="wordType != null">
AND word_type = #{wordType, jdbcType=INTEGER}
</if>
order by order_by DESC LIMIT 20
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -9,6 +9,7 @@ import com.yohobuy.ufo.model.order.resp.PageResp;
import com.yohoufo.common.ApiResponse;
import com.yohoufo.common.annotation.IgnoreSession;
import com.yohoufo.common.annotation.IgnoreSignature;
import com.yohoufo.order.model.AddressInfo;
import com.yohoufo.order.model.request.OrderListRequest;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.model.response.OrderDetailInfo;
... ... @@ -119,6 +120,24 @@ public class BuyerOrderController {
}
/**
* 买家修改收货地址
* @return
*/
@RequestMapping(params = "method=ufo.buyer.modifyAddress")
public ApiResponse buyerModifyAddress(@RequestParam("orderCode") long orderCode,@RequestParam("tabType") String tabType,
AddressInfo addressInfo){
if (!TabType.BUY.getValue().equals(tabType)){
return new ApiResponse.ApiResponseBuilder().code(400).message("非法的tab").build();
}
LOG.info("in ufo.order.buyerModifyAddress, uid {},orderCode {} request addressInfo {} ", addressInfo.getUid(),orderCode,addressInfo);
buyerOrderService.buyerModifyAddress(addressInfo.getUid(),orderCode,addressInfo);
return new ApiResponse.ApiResponseBuilder().code(200).message("修改收货地址成功").build();
}
/**
* 取消订单
*/
... ...
... ... @@ -2,12 +2,13 @@ package com.yohoufo.order.controller;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.resp.ExpressInfoRespBo;
import com.yohoufo.common.ApiResponse;
import com.yohoufo.common.cache.Cachable;
import com.yohoufo.order.model.response.AppraiseAddressResp;
import com.yohoufo.order.service.IExpressInfoService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -44,12 +45,19 @@ public class ExpressInfoController {
/**
* 查询快递详情
*
* tabType 为后加的属性,为兼容老版本,故设置为非必须,但是新版本要求必须传。。 20181207
*
* @param orderCode
* @return
*/
@RequestMapping(params = "method=ufo.order.expressDetailInfo")
public ApiResponse queryExpressDetailInfo(@RequestParam("uid") Integer uid, @RequestParam("orderCode") Long orderCode) {
ExpressInfoRespBo expressInfoRespBo = expressInfoService.queryExpressDetailInfo(uid,orderCode);
public ApiResponse queryExpressDetailInfo(@RequestParam("uid") Integer uid, @RequestParam("orderCode") Long orderCode,@RequestParam(value = "tabType",required = false) String tabType) {
TabType actor = null;
if(StringUtils.isNotBlank(tabType)){
actor = TabType.getTabType(tabType);
}
ExpressInfoRespBo expressInfoRespBo = expressInfoService.queryExpressDetailInfo(uid,orderCode,actor);
return new ApiResponse.ApiResponseBuilder().code(200).data(expressInfoRespBo).build();
}
... ...
... ... @@ -9,4 +9,6 @@ public interface IBuyerOrderMetaService {
AddressInfo getAddressInfo(int uid, long orderCode);
AddressInfo getHiddenAddressInfo(int uid, long orderCode);
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yohoufo.order.service;
import com.yohobuy.ufo.model.order.common.OrderListType;
import com.yohobuy.ufo.model.order.resp.OrderCntResp;
import com.yohoufo.order.model.AddressInfo;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.model.response.OrderSummaryResp;
... ... @@ -25,6 +26,13 @@ public interface IBuyerOrderService extends IOrderListService, IOrderDetailServi
*/
void confirm(OrderRequest orderRequest);
/**
* 买家修改收货地址
*/
void buyerModifyAddress(int uid, long orderCode,AddressInfo changedAddress);
/**
* 根据uid查询购买的订单数目
* @param uid
... ...
package com.yohoufo.order.service;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.resp.ExpressInfoRespBo;
import com.yohoufo.order.model.response.AppraiseAddressResp;
... ... @@ -53,7 +54,7 @@ public interface IExpressInfoService {
* @param orderCode
* @return
*/
ExpressInfoRespBo queryExpressDetailInfo(Integer uid,Long orderCode);
ExpressInfoRespBo queryExpressDetailInfo(Integer uid, Long orderCode, TabType actor);
/**
* 根据用户默认地址的省份定位到鉴定中心的地址返回
... ...
... ... @@ -37,7 +37,6 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
... ... @@ -88,7 +87,7 @@ public class AppraiseService {
public ApiResponse appraiseSuccess(Integer expressCompanyId, Long orderCode, String wayBillCode,Integer depotNum){
ApiResponse apiResponse=new ApiResponse();
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
if (buyerOrder == null){
LOGGER.warn("appraiseSuccess getOrderInfo order not exist, orderCode is {}", orderCode);
... ... @@ -224,13 +223,12 @@ public class AppraiseService {
*/
public ApiResponse returnBack(Integer expressCompanyId, Long orderCode, String wayBillCode, Integer depotNum){
ApiResponse apiResponse=new ApiResponse();
List<BuyerOrder> buyerOrderList = buyerOrderMapper.selectByOrderCodes(Arrays.asList(orderCode),null);
BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
if (buyerOrderList == null||buyerOrderList.size()<=0){
if (buyerOrder == null){
LOGGER.warn("returnBack getOrderInfo order not exist, orderCode {}", orderCode);
throw new ServiceException(ServiceError.ORDER_NULL);
}
BuyerOrder buyerOrder = buyerOrderList.get(0);
OrderStatus expectStatus = OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE;
if (buyerOrder.getStatus() != expectStatus.getCode()){
... ... @@ -259,7 +257,7 @@ public class AppraiseService {
*/
public ApiResponse appraiseFail(Integer expressCompanyId, Long orderCode, String wayBillCode, Integer depotNum){
ApiResponse apiResponse=new ApiResponse();
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
if (buyerOrder == null){
LOGGER.warn("appraiseFail getOrderInfo order not exist, orderCode {}", orderCode);
... ...
... ... @@ -108,4 +108,16 @@ public class BuyerOrderMetaServiceImpl implements IBuyerOrderMetaService {
return userAddress;
}
@Override
public AddressInfo getHiddenAddressInfo(int uid, long orderCode){
BuyerOrderMeta buyerOrderMeta = getBuyerOrderMeta(uid,
orderCode, MetaKey.BUYER_DELIVERY_HIDDEN_ADDRESS);
AddressInfo userAddress = null;
if ( null != buyerOrderMeta
&& StringUtils.isNotBlank(buyerOrderMeta.getMetaValue())){
userAddress = JSONObject.parseObject(buyerOrderMeta.getMetaValue(), AddressInfo.class);
}
return userAddress;
}
}
... ...
package com.yohoufo.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.OrderListType;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.SkupStatus;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.req.BuyerOrderMetaUpdateReq;
import com.yohobuy.ufo.model.order.resp.OrderCntResp;
import com.yohobuy.ufo.model.order.resp.OrderListInfo;
import com.yohobuy.ufo.model.order.resp.PageResp;
import com.yohobuy.ufo.model.order.vo.OrderListVo;
import com.yohoufo.common.exception.UfoServiceException;
import com.yohoufo.common.utils.DateUtil;
import com.yohoufo.dal.order.BuyerOrderGoodsMapper;
import com.yohoufo.dal.order.BuyerOrderMapper;
... ... @@ -21,16 +25,19 @@ import com.yohoufo.order.common.ActionStatusHold;
import com.yohoufo.order.common.DelStatus;
import com.yohoufo.order.event.BeforeDepotReceiveEvent;
import com.yohoufo.order.event.BeforeSellerDeliverEvent;
import com.yohoufo.order.model.AddressInfo;
import com.yohoufo.order.model.request.OrderListRequest;
import com.yohoufo.order.model.request.OrderRequest;
import com.yohoufo.order.model.response.OrderDetailInfo;
import com.yohoufo.order.model.response.OrderSummaryResp;
import com.yohoufo.order.service.IBuyerOrderMetaService;
import com.yohoufo.order.service.IBuyerOrderService;
import com.yohoufo.order.service.cache.CacheCleaner;
import com.yohoufo.order.service.cache.CacheKeyBuilder;
import com.yohoufo.order.service.cache.OrderCacheService;
import com.yohoufo.order.service.proxy.InBoxFacade;
import com.yohoufo.order.service.proxy.ProductProxyService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -76,6 +83,9 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
@Autowired
private BuyerOrderCancelService buyerOrderCancelService;
@Autowired
private IBuyerOrderMetaService buyerOrderMetaService;
/**
* 提交订单
* @param orderRequest
... ... @@ -107,6 +117,142 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
}
/**
* 买家修改收货地址:
* 鉴定中心确定收货之前,都可以修改地址
*/
@Override
public void buyerModifyAddress(int uid, long orderCode,AddressInfo changedAddress){
//入参
if(uid <= 0){
throw new UfoServiceException(400,"参数错误:uid错误");
}
if(orderCode <= 0){
throw new UfoServiceException(400,"参数错误:订单号错误");
}
///// 检查隐藏的内容是否有变化,带*
if(StringUtils.isBlank(changedAddress.getAddress())||StringUtils.isBlank(changedAddress.getConsignee())
||StringUtils.isBlank(changedAddress.getMobile())
||StringUtils.isBlank(changedAddress.getArea())
||StringUtils.isBlank(changedAddress.getAreaCode())){
throw new UfoServiceException(400,"地址信息填写错误");
}
AddressInfo dbAddressInfo = buyerOrderMetaService.getAddressInfo(uid,orderCode);
if(dbAddressInfo==null){
logger.warn("dbAddressInfo is null ,uid {} ,orderCode {}",uid,orderCode);
throw new UfoServiceException(400,"找不到地址信息");
}
AddressInfo dbAddressInfo_hidden = buyerOrderMetaService.getHiddenAddressInfo(uid,orderCode);
if(dbAddressInfo_hidden==null){
logger.warn("dbAddressInfo_hidden is null ,uid {} ,orderCode {}",uid,orderCode);
throw new UfoServiceException(400,"找不到地址信息");
}
//详细地址没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getAddress(),changedAddress.getAddress())){
changedAddress.setAddress(dbAddressInfo.getAddress());
}
//收货人没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getConsignee(),changedAddress.getConsignee())){
changedAddress.setConsignee(dbAddressInfo.getConsignee());
}
//手机号没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getMobile(),changedAddress.getMobile())){
changedAddress.setMobile(dbAddressInfo.getMobile());
}
boolean changed = convertAddressInfoFrontRequest(dbAddressInfo,changedAddress);
//至少有一个要更新,否则直接返回
if(!changed){
throw new UfoServiceException(400,"地址信息无变化");
//return ;
}
//检查订单
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCodeUid(orderCode,uid);
if(buyerOrder==null){
logger.warn("buyerModifyAddress check orderCode exist, uid is {}, orderCode is {}",
uid, orderCode );
throw new ServiceException(ServiceError.ORDER_NULL);
}
if(buyerOrder.getStatus()==null){
logger.warn("buyerModifyAddress check orderCode status is null, uid is {}, orderCode is {} ,status is {}",
uid, orderCode,buyerOrder.getStatus() );
throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
}
//买家已付款,卖家已发货,只有这两种状态的情况下,才允许改地址
boolean allowChange = buyerOrder.getStatus().intValue() == OrderStatus.HAS_PAYED.getCode()
||buyerOrder.getStatus().intValue() == OrderStatus.SELLER_SEND_OUT.getCode() ;
if(!allowChange){
logger.warn("buyerModifyAddress check orderCode status not invalid, uid is {}, orderCode is {} ,status is {}",
uid, orderCode,buyerOrder.getStatus() );
throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
}
//更新收货地址:明文地址 . 隐藏地址
JSONObject jo_address = (JSONObject)JSON.toJSON(dbAddressInfo);
jo_address.remove("uid");
String jo_address_string=jo_address.toJSONString();
BuyerOrderMetaUpdateReq updateInfo = new BuyerOrderMetaUpdateReq();
updateInfo.setUid(uid);
updateInfo.setOrderCode(orderCode);
updateInfo.setAddress(jo_address_string);
logger.info("buyerModifyAddress begin update address , uid is {}, orderCode is {},update address info {}",
uid, orderCode ,jo_address_string);
buyerOrderMetaService.updateDeliveryAddress(updateInfo);
}
/**
* 把变的信息项更新
*/
private boolean convertAddressInfoFrontRequest(AddressInfo dbAddressInfo,AddressInfo req){
boolean changed =false;
if(!StringUtils.equals(req.getConsignee(),dbAddressInfo.getConsignee())){
changed = true;
dbAddressInfo.setConsignee(req.getConsignee());
}
if(!StringUtils.equals(req.getAddress(),dbAddressInfo.getAddress())){
changed = true;
dbAddressInfo.setAddress(req.getAddress());
}
if(!StringUtils.equals(req.getAreaCode(),dbAddressInfo.getAreaCode())){
changed = true;
dbAddressInfo.setAreaCode(req.getAreaCode());
}
if(!StringUtils.equals(req.getArea(),dbAddressInfo.getArea())){
changed = true;
dbAddressInfo.setArea(req.getArea());
}
if(!StringUtils.equals(req.getMobile(),dbAddressInfo.getMobile())){
changed = true;
dbAddressInfo.setMobile(req.getMobile());
}
//address_id 比较特殊,地址id根本不存在,所以如果前台不传,则把原来的置0
if(req.getAddress_id()!=null&&req.getAddress_id()>0){
//changed = true; //此项目不作为信息更改判断根据
dbAddressInfo.setAddress_id(req.getAddress_id());
}else{
dbAddressInfo.setAddress_id(0);
}
if(StringUtils.isNotBlank(req.getIsUpdate())){
//changed = true; //此项目不作为信息更改判断根据
dbAddressInfo.setIsUpdate(req.getIsUpdate());
}
return changed;
}
/**
* 取消订单
* @param orderRequest
... ...
... ... @@ -2,19 +2,21 @@ package com.yohoufo.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.yoho.core.rabbitmq.YhProducer;
import com.yoho.error.ServiceError;
import com.yoho.error.exception.ServiceException;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohobuy.ufo.model.order.common.TabType;
import com.yohobuy.ufo.model.order.resp.ExpressInfoDetail;
import com.yohobuy.ufo.model.order.resp.ExpressInfoRespBo;
import com.yohoufo.common.constant.EnumExpressSender;
import com.yohoufo.common.constant.ExpressInfoConstant;
import com.yohoufo.common.exception.UfoServiceException;
import com.yohoufo.common.utils.DateUtil;
import com.yohoufo.dal.order.*;
import com.yohoufo.dal.order.model.*;
import com.yohoufo.order.common.ExpressForMqSend;
import com.yohobuy.ufo.model.order.common.OrderStatus;
import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.model.AddressInfo;
import com.yohoufo.order.model.response.AppraiseAddressResp;
... ... @@ -34,6 +36,7 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* @author kun.wang
... ... @@ -242,19 +245,53 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
* @return
*/
@Override
public ExpressInfoRespBo queryExpressDetailInfo(Integer uid,Long orderCode) {
LOGGER.info("queryExpressDetailInfo uid={}, orderCode = {}",uid, orderCode);
public ExpressInfoRespBo queryExpressDetailInfo(Integer uid,Long orderCode,TabType actor) {
LOGGER.info("queryExpressDetailInfo uid={}, orderCode = {},actor = {} ",uid, orderCode,actor);
BuyerOrder buyerOrder = buyerOrderMapper.selectOnlyByOrderCode(orderCode);
if (buyerOrder == null){
LOGGER.warn("getOrderInfo order not exist, orderCode is {}", orderCode);
LOGGER.warn("queryExpressDetailInfo getOrderInfo order not exist, orderCode is {}", orderCode);
throw new ServiceException(ServiceError.ORDER_NULL);
}
//验证订单和tabType匹配
if(actor!=null){
switch (actor){
case BUY:
if(!uid.equals(buyerOrder.getUid())){
//验证是买家
LOGGER.warn("queryExpressDetailInfo check order not match buyer , uid = {} ,order is {} ", orderCode ,JSON.toJSONString(buyerOrder) );
throw new UfoServiceException(400,"订单物流不允许买家用户查询");
}
case SELL:
if(!uid.equals(buyerOrder.getSellerUid())){
//验证是卖家
LOGGER.warn("queryExpressDetailInfo check order not match seller , uid = {} ,order is {} ", orderCode ,JSON.toJSONString(buyerOrder) );
throw new UfoServiceException(400,"订单物流不允许卖家用户查询");
}
}
}
ExpressInfoRespBo expressInfoRespBo = new ExpressInfoRespBo();
Integer expressType = getExpressType(buyerOrder);
Integer expressType = getExpressType(buyerOrder,actor);
LOGGER.info("getExpressType result = {}", expressType);
List<ExpressInfo> expressInfoList = expressInfoMapper.selectAllExpressInfo(uid, orderCode, expressType);
processExpressInfo(expressInfoList, expressInfoRespBo);
//获取上一阶段的辅助物流信息
List<ExpressInfoDetail> supplementExpressInfoDetailList = Lists.newArrayList();
expressInfoRespBo.setSupplementExpressInfoDetailList(supplementExpressInfoDetailList);
if(expressType.intValue()!=0&&ExpressInfoConstant.EXPRESS_TYPE_1.intValue()!=expressType.intValue()){
if(ExpressInfoConstant.EXPRESS_TYPE_2.intValue()==expressType.intValue()){
//买家这个时候需要看买家的物流
List<ExpressInfo> previousExpressInfoList = expressInfoMapper.selectAllExpressInfo(buyerOrder.getSellerUid(), orderCode, ExpressInfoConstant.EXPRESS_TYPE_1);
constructExpressInfo(previousExpressInfoList, supplementExpressInfoDetailList);
}else if(ExpressInfoConstant.EXPRESS_TYPE_3.intValue()==expressType.intValue()
||ExpressInfoConstant.EXPRESS_TYPE_REBACK.intValue()==expressType.intValue()){
//卖家这个时候看自己上一阶段的物流
List<ExpressInfo> previousExpressInfoList = expressInfoMapper.selectAllExpressInfo(uid, orderCode, ExpressInfoConstant.EXPRESS_TYPE_1);
constructExpressInfo(previousExpressInfoList, supplementExpressInfoDetailList);
}
}
LOGGER.info("queryExpressDetailInfo result = {}", JSON.toJSONString(expressInfoRespBo));
return expressInfoRespBo;
}
... ... @@ -305,24 +342,69 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
}
}
private void constructExpressInfo(List<ExpressInfo> expressInfoList, List<ExpressInfoDetail> supplementExpressInfoDetailList) {
if (CollectionUtils.isNotEmpty(expressInfoList)) {
for (ExpressInfo expressInfo : expressInfoList) {
ExpressInfoDetail expressInfoDetail = new ExpressInfoDetail();
// 运单接收地
expressInfoDetail.setAcceptAddress(expressInfo.getAcceptAddress());
// 运单信息
expressInfoDetail.setAcceptRemark(expressInfo.getAcceptRemark());
expressInfoDetail.setCreateTimeStr(DateUtil.formatDate(expressInfo.getCreateTime(), DateUtil.yyyy_MM_dd_HH_mm_SS));
supplementExpressInfoDetailList.add(expressInfoDetail);
}
}
}
/**
* orderCode 一定是买家订单号
* @return
*/
private Integer getExpressType(BuyerOrder buyerOrder) {
if(OrderStatus.SELLER_SEND_OUT.getCode()==buyerOrder.getStatus()||OrderStatus.PLATFORM_CHECKING.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_1;
}else if(OrderStatus.CHECKING_FAKE.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_3;
}else if(OrderStatus.WAITING_RECEIVE.getCode()==buyerOrder.getStatus()||OrderStatus.DONE.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_2;
}else if(OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_REBACK;
private Integer getExpressType(BuyerOrder buyerOrder,TabType actor) {
if(null==actor){
if(OrderStatus.SELLER_SEND_OUT.getCode()==buyerOrder.getStatus()||OrderStatus.PLATFORM_CHECKING.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_1;
}else if(OrderStatus.WAITING_RECEIVE.getCode()==buyerOrder.getStatus()||OrderStatus.DONE.getCode()==buyerOrder.getStatus()){
//4 和 5 状态有问题 ,买家查看物流是没问题的,卖家查看物流有问题啊.
return ExpressInfoConstant.EXPRESS_TYPE_2;
}else if(OrderStatus.CHECKING_FAKE.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_3;
}else if(OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode()==buyerOrder.getStatus()){
return ExpressInfoConstant.EXPRESS_TYPE_REBACK;
}
}else {
switch (actor){
case BUY:
return getExpressTypeBuyer(buyerOrder);
case SELL:
return getExpressTypeSeller(buyerOrder);
default:
return 0;
}
}
return 0;
}
private Integer getExpressTypeSeller(BuyerOrder buyerOrder){
Integer status = buyerOrder.getStatus();
Integer type ;
if (Objects.equals(OrderStatus.CHECKING_FAKE.getCode(), status)){
type = ExpressInfoConstant.EXPRESS_TYPE_3;
}else if(Objects.equals(OrderStatus.BUYER_CANCEL_BEFORE_DEPOT_RECEIVE.getCode(), status)){
type = ExpressInfoConstant.EXPRESS_TYPE_REBACK;
}else{
type = ExpressInfoConstant.EXPRESS_TYPE_1;
}
return type;
}
private Integer getExpressTypeBuyer(BuyerOrder buyerOrder){
return ExpressInfoConstant.EXPRESS_TYPE_2;
}
/**
* 根据用户默认地址的省份定位到鉴定中心的地址返回
*
... ...
... ... @@ -18,7 +18,7 @@
<properties>
<qiniu.version>7.0.5</qiniu.version>
<project-name>yohoufo-fore</project-name>
<model.version>2.0-SNAPSHOT</model.version>
<model.version>3.0-SNAPSHOT</model.version>
</properties>
<dependencyManagement>
... ...
... ... @@ -11,6 +11,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
... ... @@ -23,6 +24,11 @@ public class HotSearchWordController {
private final Logger LOG = LoggerFactory.getLogger(HotSearchWordController.class);
private final Integer CLIENT_TYPE_APP = 0; // APP端
private final Integer CLIENT_TYPE_MINIAPP = 1; // 小程序端
private final Integer WORD_TYPE_HOT = 0; // 热搜词
@Autowired
private HotSearchWordService hotSearchWordService;
... ... @@ -31,9 +37,23 @@ public class HotSearchWordController {
@IgnoreSession
@RequestMapping(params = "method=ufo.product.searchWord")
@Cachable(expire = 180)
public ApiResponse querySearchWord() {
LOG.info("in method=ufo.product.searchWord");
List<SearchWordResp> resp = hotSearchWordService.querySearchWord();
public ApiResponse querySearchWord(@RequestParam(value = "client_type", required = false) String clientType,
@RequestParam(value = "word_type", required = false) Integer wordType) {
LOG.info("in method=ufo.product.searchWord clientType is {}, wordType is {}", clientType, wordType);
Integer dalClientType;
if (null == clientType) {
dalClientType = CLIENT_TYPE_APP;
} else if ("iphone".equals(clientType) || "android".equals(clientType)) {
dalClientType = CLIENT_TYPE_APP;
} else {
dalClientType = CLIENT_TYPE_MINIAPP;
}
if (null == wordType) {
wordType = WORD_TYPE_HOT;
}
List<SearchWordResp> resp = hotSearchWordService.querySearchWord(dalClientType, wordType);
return new ApiResponse.ApiResponseBuilder().data(resp).code(200).message("热搜词列表").build();
}
}
... ...
... ... @@ -60,13 +60,13 @@ public class ProductSearchController {
if (type == 0) {
productPool = String.valueOf(poolConfig.get(2));
order = "pools.order_by:desc";
}
if (type == 1) {
} else if (type == 1) {
productPool = String.valueOf(poolConfig.get(4));
order = "pools.order_by:desc";
}
if (type == 2) {
} else if (type == 2) {
isSoonSale = "Y";
} else {
}
}
SortIdLevel sortIdLevel = productSearchService.getSortLevelById(sort);
... ...
... ... @@ -34,6 +34,8 @@ public class SearchParam {
orderMap.put("p_asc", "price:asc");
orderMap.put("pools_id_asc", "pools.order_by:asc");
orderMap.put("pools_id_desc", "pools.order_by:desc");
orderMap.put("sale_asc", "salesNum:asc");
orderMap.put("sale_desc", "salesNum:desc");
}
/**
... ...
... ... @@ -17,8 +17,8 @@ public class HotSearchWordService {
@Autowired
private SearchWordMapper searchWordMapper;
public List<SearchWordResp> querySearchWord() {
List<SearchWord> searchWords = searchWordMapper.selectAll();
public List<SearchWordResp> querySearchWord(Integer clientType, Integer wordType) {
List<SearchWord> searchWords = searchWordMapper.selectAll(clientType, wordType);
List<SearchWordResp> result = new ArrayList<>();
... ...