Authored by chenchao

add product proxy hidden or cancel hidden

@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 <result column="status" jdbcType="SMALLINT" property="status" /> 12 <result column="status" jdbcType="SMALLINT" property="status" />
13 </resultMap> 13 </resultMap>
14 <sql id="Base_Column_List"> 14 <sql id="Base_Column_List">
15 - id, uid, order_code, pre_enter_type, enter_type, create_time, update_time, status 15 + id, uid, order_code, pre_enter_type, enter_type, create_time, update_time, `status`
16 </sql> 16 </sql>
17 <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> 17 <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
18 select 18 select
@@ -10,10 +10,12 @@ import com.yohobuy.ufo.model.order.resp.EntryThreshold; @@ -10,10 +10,12 @@ import com.yohobuy.ufo.model.order.resp.EntryThreshold;
10 import com.yohoufo.common.exception.UfoServiceException; 10 import com.yohoufo.common.exception.UfoServiceException;
11 import com.yohoufo.common.utils.DateUtil; 11 import com.yohoufo.common.utils.DateUtil;
12 import com.yohoufo.dal.order.SellerEnterApplyMapper; 12 import com.yohoufo.dal.order.SellerEnterApplyMapper;
  13 +import com.yohoufo.dal.order.StoredSellerMapper;
13 import com.yohoufo.dal.order.model.SellerEnterApply; 14 import com.yohoufo.dal.order.model.SellerEnterApply;
14 import com.yohoufo.dal.order.model.StoredSeller; 15 import com.yohoufo.dal.order.model.StoredSeller;
15 import com.yohoufo.order.constants.SellerConfig; 16 import com.yohoufo.order.constants.SellerConfig;
16 import com.yohoufo.order.service.IStoredSellerService; 17 import com.yohoufo.order.service.IStoredSellerService;
  18 +import com.yohoufo.order.service.proxy.ProductProxyService;
17 import com.yohoufo.order.utils.LoggerUtils; 19 import com.yohoufo.order.utils.LoggerUtils;
18 import org.apache.commons.collections.CollectionUtils; 20 import org.apache.commons.collections.CollectionUtils;
19 import org.slf4j.Logger; 21 import org.slf4j.Logger;
@@ -45,6 +47,9 @@ public class SellerEnterApplyService { @@ -45,6 +47,9 @@ public class SellerEnterApplyService {
45 @Autowired 47 @Autowired
46 private SellerFuncService sellerFuncService; 48 private SellerFuncService sellerFuncService;
47 49
  50 + @Autowired
  51 + private StoredSellerMapper storedSellerMapper;
  52 +
48 /** 53 /**
49 * 申请成为超级卖家 54 * 申请成为超级卖家
50 * 对于未支付的某一种身份申请做订单号替换 55 * 对于未支付的某一种身份申请做订单号替换
@@ -61,7 +66,7 @@ public class SellerEnterApplyService { @@ -61,7 +66,7 @@ public class SellerEnterApplyService {
61 logger.warn("in applySuperEntry uid {} orderCode {} targetEST is null", uid, orderCode); 66 logger.warn("in applySuperEntry uid {} orderCode {} targetEST is null", uid, orderCode);
62 throw new UfoServiceException(400, "EntrySellerType is null"); 67 throw new UfoServiceException(400, "EntrySellerType is null");
63 } 68 }
64 - SellerService.SellerWrapper sellerWrapper = new SellerService().new SellerWrapper(uid).buildBase(); 69 + SellerService.SellerWrapper sellerWrapper = new SellerService().new SellerWrapper(uid).storedSellerDataSource(storedSellerMapper::selectByUid).buildBase();
65 SellerBo sellerBo = sellerWrapper.build(); 70 SellerBo sellerBo = sellerWrapper.build();
66 71
67 EntrySellerType currentEST = sellerBo.getEntrySellerType(); 72 EntrySellerType currentEST = sellerBo.getEntrySellerType();
@@ -174,7 +179,8 @@ public class SellerEnterApplyService { @@ -174,7 +179,8 @@ public class SellerEnterApplyService {
174 logger.warn("in upgradeLevel one orderCode mapped multiple apply,uid {} orderCode {}", uid, orderCode); 179 logger.warn("in upgradeLevel one orderCode mapped multiple apply,uid {} orderCode {}", uid, orderCode);
175 } 180 }
176 //卖家包装类 181 //卖家包装类
177 - SellerService.SellerWrapper sellerWrapper = new SellerService().new SellerWrapper(uid).buildBase(); 182 + SellerService.SellerWrapper sellerWrapper = new SellerService().new SellerWrapper(uid)
  183 + .storedSellerDataSource(storedSellerMapper::selectByUid).buildBase();
178 upgradeLevel(sellerWrapper, orderCode, left, seaList); 184 upgradeLevel(sellerWrapper, orderCode, left, seaList);
179 } 185 }
180 186
@@ -248,6 +254,27 @@ public class SellerEnterApplyService { @@ -248,6 +254,27 @@ public class SellerEnterApplyService {
248 if (!noStoredSeller && isMatchedET && levelNeedUpgrade) { 254 if (!noStoredSeller && isMatchedET && levelNeedUpgrade) {
249 SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level); 255 SellerLevelFuncBo slfb = sellerFuncService.getSellerLevelFunc(targetEst.getCode(), level);
250 storedSellerService.updateEnterSeller(uid, targetEst, slfb); 256 storedSellerService.updateEnterSeller(uid, targetEst, slfb);
  257 + processWithLevel(currentLevel, level, uid);
  258 + }
  259 + }
  260 + }
  261 +
  262 + @Autowired
  263 + private ProductProxyService productProxyService;
  264 +
  265 + public void processWithLevel(Integer currentLevel, Integer targetLevel, Integer uid){
  266 + logger.info("processWithLevel currentLevel {} targetLevel {} uid {}",currentLevel, targetLevel, uid);
  267 + if (SellerConfig.ENTER_TYPE_DEFAULT_LEVEL == currentLevel){
  268 + if(targetLevel == SuperEnterStageLevel.FULL.getCode()
  269 + ||targetLevel == SuperEnterStageLevel.PARTITION.getCode()){
  270 + productProxyService.cancelHiddenGoods(uid);
  271 + }
  272 + }
  273 +
  274 + if (SellerConfig.ENTER_TYPE_DEFAULT_LEVEL == targetLevel) {
  275 + if (currentLevel == SuperEnterStageLevel.FULL.getCode()
  276 + || currentLevel == SuperEnterStageLevel.PARTITION.getCode()) {
  277 + productProxyService.hiddenGoods(uid);
251 } 278 }
252 } 279 }
253 } 280 }
@@ -33,6 +33,8 @@ import java.util.HashMap; @@ -33,6 +33,8 @@ import java.util.HashMap;
33 import java.util.List; 33 import java.util.List;
34 import java.util.Map; 34 import java.util.Map;
35 import java.util.Objects; 35 import java.util.Objects;
  36 +import java.util.function.Consumer;
  37 +import java.util.function.Function;
36 import java.util.stream.Collectors; 38 import java.util.stream.Collectors;
37 39
38 /** 40 /**
@@ -142,12 +144,19 @@ public class SellerService { @@ -142,12 +144,19 @@ public class SellerService {
142 StoredSeller storedSeller; 144 StoredSeller storedSeller;
143 @Getter 145 @Getter
144 Integer uid; 146 Integer uid;
  147 +
  148 + Function<Integer,StoredSeller> storedSellerFunc;
  149 +
145 SellerBo sellerBo = new SellerBo(); 150 SellerBo sellerBo = new SellerBo();
146 151
147 SellerWrapper(int uid){ 152 SellerWrapper(int uid){
148 this.uid = uid; 153 this.uid = uid;
149 this.sellerBo.setUid(uid); 154 this.sellerBo.setUid(uid);
150 } 155 }
  156 + SellerWrapper storedSellerDataSource(Function<Integer,StoredSeller> storedSellerFunc){
  157 + this.storedSellerFunc = storedSellerFunc;
  158 + return this;
  159 + }
151 160
152 SellerWrapper buildBase(){ 161 SellerWrapper buildBase(){
153 logger.info("buildBase uid {}", uid); 162 logger.info("buildBase uid {}", uid);
@@ -158,7 +167,7 @@ public class SellerService { @@ -158,7 +167,7 @@ public class SellerService {
158 167
159 EntrySellerType est = null; 168 EntrySellerType est = null;
160 //case 1 : not entry 169 //case 1 : not entry
161 - this.storedSeller = storedSellerMapper.selectByUid(uid); 170 + this.storedSeller = storedSellerFunc.apply(uid);//storedSellerMapper.selectByUid(uid);
162 if (Objects.isNull(storedSeller)){ 171 if (Objects.isNull(storedSeller)){
163 est = EntrySellerType.NOT_ENTRY; 172 est = EntrySellerType.NOT_ENTRY;
164 logger.info("buildBase storedSeller is null uid {} entryType {}", 173 logger.info("buildBase storedSeller is null uid {} entryType {}",
@@ -227,7 +236,7 @@ public class SellerService { @@ -227,7 +236,7 @@ public class SellerService {
227 */ 236 */
228 public EntrySellerType getEntrySellerType(int uid){ 237 public EntrySellerType getEntrySellerType(int uid){
229 logger.info("getEntrySellerType uid {}", uid); 238 logger.info("getEntrySellerType uid {}", uid);
230 - SellerBo sellerBo = new SellerWrapper(uid).buildBase().build(); 239 + SellerBo sellerBo = new SellerWrapper(uid).storedSellerDataSource(storedSellerMapper::selectByUid).buildBase().build();
231 EntrySellerType est = sellerBo.getEntrySellerType(); 240 EntrySellerType est = sellerBo.getEntrySellerType();
232 logger.info("getEntrySellerType uid {} EntrySellerType {}", uid, est); 241 logger.info("getEntrySellerType uid {} EntrySellerType {}", uid, est);
233 return est; 242 return est;
@@ -263,7 +272,7 @@ public class SellerService { @@ -263,7 +272,7 @@ public class SellerService {
263 272
264 public Boolean applySuperEnter(Integer uid){ 273 public Boolean applySuperEnter(Integer uid){
265 SellerService.SellerWrapper sellerWrapper = new SellerService() 274 SellerService.SellerWrapper sellerWrapper = new SellerService()
266 - .new SellerWrapper(uid).buildBase(); 275 + .new SellerWrapper(uid).storedSellerDataSource(storedSellerMapper::selectByUid).buildBase();
267 SellerBo sellerBo = sellerWrapper.build(); 276 SellerBo sellerBo = sellerWrapper.build();
268 EntrySellerType currentEST = sellerBo.getEntrySellerType(); 277 EntrySellerType currentEST = sellerBo.getEntrySellerType();
269 EntrySellerType targetEST = EntrySellerType.SUPER_ENTRY; 278 EntrySellerType targetEST = EntrySellerType.SUPER_ENTRY;
@@ -22,8 +22,6 @@ import org.springframework.stereotype.Service; @@ -22,8 +22,6 @@ import org.springframework.stereotype.Service;
22 22
23 import java.time.LocalDateTime; 23 import java.time.LocalDateTime;
24 import java.time.ZoneOffset; 24 import java.time.ZoneOffset;
25 -import java.util.HashMap;  
26 -import java.util.Map;  
27 import java.util.Objects; 25 import java.util.Objects;
28 26
29 @Service 27 @Service
@@ -321,5 +321,31 @@ public class ProductProxyService { @@ -321,5 +321,31 @@ public class ProductProxyService {
321 return (null == resp || null == resp.getData())? false : (boolean)resp.getData(); 321 return (null == resp || null == resp.getData())? false : (boolean)resp.getData();
322 } 322 }
323 323
  324 + private final static String hideSellerAllSkup = "ufo.product.hideSellerAllSkup",
  325 + showSellerAllSkup = "ufo.product.showSellerAllSkup";
  326 +
  327 + public boolean hiddenGoods(Integer uid){
  328 + logger.info("begin in {} uid {}", hideSellerAllSkup, uid);
  329 + ApiResponse resp = null;
  330 + try {
  331 + resp = ufoServiceCaller.call(hideSellerAllSkup, uid);
  332 + } catch (Exception e) {
  333 + logger.warn("in {} call fail uid {}", hideSellerAllSkup, uid, e);
  334 + }
  335 + logger.info("finish {} -> uid {}", hideSellerAllSkup, uid);
  336 + return (null == resp || null == resp.getData())? false : (boolean)resp.getData();
  337 + }
  338 +
  339 + public boolean cancelHiddenGoods(Integer uid){
  340 + logger.info("begin in {} uid {}", showSellerAllSkup, uid);
  341 + ApiResponse resp = null;
  342 + try {
  343 + resp = ufoServiceCaller.call(showSellerAllSkup, uid);
  344 + }catch (Exception ex){
  345 + logger.warn("in {} call fail uid {}", showSellerAllSkup, uid, ex);
  346 + }
  347 + logger.info("finish {} -> uid {}", showSellerAllSkup, uid);
  348 + return (null == resp || null == resp.getData())? false : (boolean)resp.getData();
  349 + }
324 350
325 } 351 }