Authored by Lixiaodi

Merge branch 'test6.8.9' of http://git.yoho.cn/ufo/yohoufo-fore into test6.8.9

# Conflicts:
#	dal/src/main/resources/META-INF/mybatis/order/StoredSellerMapper.xml
package com.yohoufo.dal.order;
import com.yohoufo.dal.order.model.SellerWalletDetail;
import com.yohoufo.dal.order.model.StoredSeller;
import org.apache.ibatis.annotations.Param;
... ... @@ -25,4 +26,5 @@ public interface StoredSellerMapper {
int clearUserData(@Param("uid") Integer uid);
int insertBak(StoredSeller storedSeller);
}
... ...
... ... @@ -3,6 +3,8 @@ package com.yohoufo.dal.user;
import com.yohoufo.dal.user.model.ZhiMaCert;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IZhiMaCertDao {
//int insert(ZhiMaCert zhiMaCert);
... ... @@ -26,5 +28,7 @@ public interface IZhiMaCertDao {
int deleteByUid(int id);
int insertbak(ZhiMaCert zhiMaCert);
List<ZhiMaCert> selectByUid(int uid);
}
... ...
... ... @@ -206,5 +206,14 @@
update stored_seller set valid_status=9
where uid = #{uid}
</update>
<insert id="insertBak" parameterType="com.yohoufo.dal.order.model.StoredSeller" >
insert into stored_seller_bak (uid, valid_status,cert_no,cert_name,operator_uid,operator_name,
enter_time,quit_time, create_time, update_time,break_zhi_ma_cert,entry_type,level_func_id, level_func_list)
values (#{uid},#{validStatus},
#{certNo},#{certName},#{operatorUid},#{operatorName},
#{enterTime},#{quitTime},
#{createTime},#{updateTime},#{breakZhiMaCert},#{entryType},
#{levelFuncId,jdbcType=INTEGER}, #{levelFuncList,jdbcType=VARCHAR})
</insert>
</mapper>
\ No newline at end of file
... ...
... ... @@ -77,4 +77,18 @@
<delete id="deleteByUid" parameterType="java.lang.Integer">
delete from zhima_cert where uid=#{uid}
</delete>
<insert id="insertbak" parameterType="com.yohoufo.dal.user.model.ZhiMaCert" >
insert into zhima_cert_bak (uid, valid_status, cert_no, cert_name, biz_no,create_time, update_time)
values (#{uid},#{validStatus},
#{certNo},#{certName},#{bizNo},
#{createTime},#{updateTime})
</insert>
<select id="selectByUid" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from zhima_cert
where uid = #{uid}
</select>
</mapper>
\ No newline at end of file
... ...
... ... @@ -13,6 +13,7 @@ import com.yohoufo.order.model.request.SellerGoodsListRequest;
import com.yohoufo.order.model.response.OrderSubmitResp;
import com.yohoufo.order.service.impl.SellerOrderService;
import com.yohoufo.order.service.impl.SkupListService;
import com.yohoufo.order.service.seller.changePrice.NotEntrySellerChangePriceService;
import com.yohoufo.order.utils.LoggerUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -37,6 +38,9 @@ public class SellerGoodsController {
@Autowired
private SellerOrderService sellerOrderService;
@Autowired
private NotEntrySellerChangePriceService notEntrySellerChangePriceService;
@RequestMapping(params = "method=ufo.seller.entryPrdList")
@ResponseBody
public ApiResponse getEntryGoodsList(@RequestParam("type") int type,
... ... @@ -122,7 +126,7 @@ public class SellerGoodsController {
.price(price).build();
logger.info("in ufo.notEntrySeller.computeChangePricece, req {}", req);
try {
SoldPrdComputeBo computeBo = sellerOrderService.computeChangePrice4NES(req);
SoldPrdComputeBo computeBo = notEntrySellerChangePriceService.computeChangePrice(req);
return new ApiResponse.ApiResponseBuilder().code(200).data(computeBo).message("算费成功").build();
} catch (Exception ex) {
logger.error("exception happened in ufo.notEntrySeller.computeChangePrice, req {}", req, ex);
... ... @@ -140,7 +144,7 @@ public class SellerGoodsController {
.uid(uid).skup(skup).price(price).build();
logger.info("in ufo.notEntrySeller.changePrice, req {}", req);
try {
OrderSubmitResp result = sellerOrderService.changePrice4NES(req);
OrderSubmitResp result = notEntrySellerChangePriceService.changePrice(req);
return new ApiResponse.ApiResponseBuilder()
.data(result).code(200)
.message(result.getTips()).build();
... ...
... ... @@ -67,16 +67,20 @@ public class SellerOrderPriceChangeHandler implements IEventHandler<SellerOrderP
}
int changedSellerUid = sog.getUid();
BigDecimal changedPrice = sog.getGoodsPrice();
Integer storageId = sog.getStorageId();
//根据storageId获取所有在售的卖家的订单
List<SellerOrderGoods> list= sellerOrderGoodsViewMapper.selectCanSellByStorageId(sog.getStorageId());
List<SellerOrderGoods> list= sellerOrderGoodsViewMapper.selectCanSellByStorageId(storageId);
//把自己过滤掉,只保留价格高于当前价格
list = list.stream().filter(r->r.getGoodsPrice().compareTo(changedPrice)>0&&changedSellerUid!=r.getUid().intValue()).collect(Collectors.toList());
if(CollectionUtils.isEmpty(list)){
return ;
}
//从redis过滤uid+storgeid+date
Date currentTime = new Date();
String dateString = formatter.format(currentTime);//2019-03-20
//发送,并记录到redis
RedisKeyBuilder redisKey = getRedisKeyBuilder(dateString);
RedisKeyBuilder redisKey = getRedisKeyBuilder(dateString, storageId);
Set<String> members = yhSetOperations.members(redisKey);
if(CollectionUtils.isNotEmpty(members)){
list = list.stream().filter(r->!members.contains(getValueForSet(r))).collect(Collectors.toList());
... ... @@ -98,10 +102,10 @@ public class SellerOrderPriceChangeHandler implements IEventHandler<SellerOrderP
}
public String getValueForSet(SellerOrderGoods r){
return r.getUid()+"-"+r.getStorageId();
return String.valueOf(r.getUid());
}
public static RedisKeyBuilder getRedisKeyBuilder(String dateString){
return RedisKeyBuilder.newInstance().appendFixed("ufo:order:price:change:").appendVar(dateString);
public static RedisKeyBuilder getRedisKeyBuilder(String dateString,Integer storageId){
return RedisKeyBuilder.newInstance().appendFixed("ufo:order:price:change:").appendVar(dateString+"-"+storageId);
}
}
... ...
... ... @@ -167,8 +167,7 @@ public class SellerOrderService implements IOrderListService, IOrderDetailServic
@Autowired
private SellerBatchCancelPrepareProcessor sellerBatchCancelPrepareProcessor;
@Autowired
private NESChangePricePrepareProcessor nesChangePricePrepareProcessor;
private static final int MAX_DEAL = 10;
... ... @@ -915,24 +914,6 @@ public class SellerOrderService implements IOrderListService, IOrderDetailServic
/**
* compute Change Price4 NES(Not Entry Seller)
* @param req
* @return
*/
public SoldPrdComputeBo computeChangePrice4NES(NESChangePriceReq req){
log.info("in computeChangePrice4NES, req {}", req);
ChangePricePrepareDTO cppDto = nesChangePricePrepareProcessor.checkAndAcquire(req);
SoldPrdComputeBo computeBo = SellerOrderConvertor.computeResult2SoldPrdComputeBo(cppDto.getComputeResult());
return computeBo;
}
/**
* change Price 4 Not Entry Seller
* @param req
* @return
*/
public OrderSubmitResp changePrice4NES(NESChangePriceReq req){
return null;
}
}
... ...
... ... @@ -156,8 +156,17 @@ public class StoreSellerServiceImpl implements IStoredSellerService {
@Override
public int removeStoredSeller(Integer uid) {
int rows = storedSellerMapper.clearUserData(uid);
StoredSeller storedSeller = storedSellerMapper.selectByUid(uid);
int rows = storedSellerMapper.clearUserData(uid);
storedSellerCacheService.removeStoredSeller(uid);
try {
storedSellerMapper.insertBak(storedSeller);
} catch (Exception e) {
logger.error("storedSellerMapper.insertBak find error storedSeller : " + storedSeller, e);
}
return rows;
}
... ...
package com.yohoufo.order.service.seller.changePrice;
import com.yohobuy.ufo.model.order.bo.SoldPrdComputeBo;
import com.yohobuy.ufo.model.order.req.NESChangePriceReq;
import com.yohoufo.order.convert.SellerOrderConvertor;
import com.yohoufo.order.model.dto.ChangePricePrepareDTO;
import com.yohoufo.order.model.response.OrderSubmitResp;
import com.yohoufo.order.service.impl.processor.NESChangePricePrepareProcessor;
import com.yohoufo.order.utils.LoggerUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Created by chao.chen on 2019/3/21.
*/
@Service
public class NotEntrySellerChangePriceService {
private final Logger logger = LoggerUtils.getSellerOrderLogger();
@Autowired
private NESChangePricePrepareProcessor nesChangePricePrepareProcessor;
/**
* compute Change Price4 NES(Not Entry Seller)
* @param req
* @return
*/
public SoldPrdComputeBo computeChangePrice(NESChangePriceReq req){
logger.info("in computeChangePrice4NES, req {}", req);
ChangePricePrepareDTO cppDto = nesChangePricePrepareProcessor.checkAndAcquire(req);
SoldPrdComputeBo computeBo = SellerOrderConvertor.computeResult2SoldPrdComputeBo(cppDto.getComputeResult());
return computeBo;
}
/**
* change Price 4 Not Entry Seller
* @param req
* @return
*/
public OrderSubmitResp changePrice(NESChangePriceReq req){
//TODO
/*1. 屏蔽待变价skup
* 1.1 何时恢复
*
* 生成待支付订单,将订单号返回给客户端
*/
return null;
}
/**
*
*/
public void processAfterChangePriceOrderPaid(long orderCode){
//TODO
//1. 待支付订单 待上架商品
//2. 待变价skup进行下架
}
}
... ...
... ... @@ -36,6 +36,7 @@ import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.List;
/**
... ... @@ -299,6 +300,14 @@ public class RealNameAuthorizeServiceImpl implements IRealNameAuthorizeService {
logger.info("RealNameAuthorizeServiceImpl clearCacheZhiMaCertInfo uid is {} ", uid);
int result = 0;
if (uid!=null && uid > 0 ){
List<ZhiMaCert> zhiMaCerts = zhiMaCertDao.selectByUid(uid);
try {
zhiMaCerts.stream().forEach(item -> zhiMaCertDao.insertbak(item));
} catch (Exception e) {
logger.info("zhiMaCertDao.insertbak find error zhiMaCerts is : " + zhiMaCerts, e);
}
result = zhiMaCertDao.deleteByUid(uid);
logger.info("RealNameAuthorizeServiceImpl clearCacheZhiMaCertInfo delete uid{} ,delete result is {}", uid, result);
... ...