From 2147d023563a7c9d05d97547c00d6b0162c0644c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 09 十一月 2020 18:37:24 +0800 Subject: [PATCH] 刷单风险规则优化 --- fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java | 231 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 154 insertions(+), 77 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java index 8db309c..50e9730 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java @@ -12,6 +12,10 @@ import javax.annotation.Resource; +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.util.*; +import org.apache.commons.beanutils.PropertyUtils; +import org.omg.PortableInterceptor.SYSTEM_EXCEPTION; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +29,8 @@ import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl; import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType; +import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo; +import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum; import com.yeshi.fanli.entity.bus.homemodule.Special; import com.yeshi.fanli.entity.common.JumpDetailV2; import com.yeshi.fanli.entity.system.ConfigKeyEnum; @@ -34,13 +40,12 @@ import com.yeshi.fanli.service.inter.config.AppVersionService; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService; +import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService; import com.yeshi.fanli.service.inter.homemodule.SpecialCardService; import com.yeshi.fanli.service.inter.homemodule.SpecialPlaceService; import com.yeshi.fanli.service.inter.homemodule.SpecialService; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.FilePathEnum; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; +import com.yeshi.fanli.vo.homemodule.SpecialVO; import net.sf.json.JSONObject; @@ -51,11 +56,8 @@ private SpecialMapper specialMapper; @Resource - private SpecialPlaceService specialPlaceService; - - @Resource - private SpecialCardService specialCardService; - + private CommonShareInfoService commonShareInfoService; + @Resource private JumpDetailV2Service jumpDetailV2Service; @@ -64,6 +66,9 @@ @Resource private AppVersionService appVersionService; + + @Resource + private ConvertLinkManager convertLinkManager; @Resource private AdActivityVersionControlService adActivityVersionControlService; @@ -75,7 +80,7 @@ @Override public void saveObject(MultipartFile file, MultipartFile file2, MultipartFile file3, Special record, - String jumpType) throws SpecialException, Exception { + String jumpType, CommonShareInfo shareInfo) throws SpecialException, Exception { Long cardId = record.getCardId(); if (cardId == null) { @@ -149,6 +154,8 @@ record.setUpdatetime(new Date()); specialMapper.insert(record); + shareInfo.setPid(record.getId()); + Special s = new Special(); s.setId(record.getId()); s.setOrderby(Integer.parseInt(s.getId() + "")); @@ -213,7 +220,13 @@ record.setUpdatetime(new Date()); specialMapper.updateByPrimaryKey(record); + + shareInfo.setPid(record.getId()); } + + // 娣诲姞琛ュ厖淇℃伅 + shareInfo.setType(CommonShareInfoEnum.special); + commonShareInfoService.save(shareInfo); } /** @@ -266,8 +279,7 @@ /** * 鍒犻櫎鍥剧墖-涓嶆洿鏂版暟鎹簱 - * - * @param record + * @param picture * @throws Exception */ public void removePicture(String picture) throws Exception { @@ -342,6 +354,8 @@ if (!StringUtil.isNullOrEmpty(subPicture)) { COSManager.getInstance().deleteFile(subPicture); } + + commonShareInfoService.deleteByPidAndType(special.getId(), CommonShareInfoEnum.special.name()); } if (listSpecial != null) @@ -368,67 +382,92 @@ if (!StringUtil.isNullOrEmpty(subPicture)) { COSManager.getInstance().deleteFile(subPicture); } + + commonShareInfoService.deleteByPidAndType(special.getId(), CommonShareInfoEnum.special.name()); } return specialMapper.deleteBatchByCardID(list); } @Override - public List<Special> listQueryByCard(long start, int count, Long card, String key, Integer sex) { - + public List<SpecialVO> listQueryByCard(long start, int count, Long card, String key, Integer sex) { List<Special> list = specialMapper.listQueryByCard(start, count, card, key, sex); - if (list == null || list.size() == 0) { - return list; + if (list == null) { + return null; } - // 璺宠浆閾炬帴 + List<SpecialVO> listvo = new ArrayList<SpecialVO>(); for (Special special : list) { - if (special.getState() != null && special.getState().longValue() == 0) { - special.setState(1L); - } else { - special.setState(0L); + SpecialVO specialVO = new SpecialVO(); + try { + PropertyUtils.copyProperties(specialVO, special); + } catch (Exception e) { + e.printStackTrace(); + continue; } - Date startTime = special.getStartTime(); - Date endTime = special.getEndTime(); + if (specialVO.getState() != null && specialVO.getState().longValue() == 0) { + specialVO.setState(1L); + } else { + specialVO.setState(0L); + } + + Date startTime = specialVO.getStartTime(); + Date endTime = specialVO.getEndTime(); if (startTime == null && endTime == null) { - special.setStartTime_str(""); - special.setEndTime_str(""); + specialVO.setStartTime_str(""); + specialVO.setEndTime_str(""); } else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm"); if (startTime == null) { - special.setStartTime_str(""); + specialVO.setStartTime_str(""); } else { - special.setStartTime_str(sdf.format(startTime)); + specialVO.setStartTime_str(sdf.format(startTime)); } if (endTime == null) { - special.setEndTime_str(""); + specialVO.setEndTime_str(""); } else { - special.setEndTime_str(sdf.format(endTime)); + specialVO.setEndTime_str(sdf.format(endTime)); } } - String params = special.getParams(); + String params = specialVO.getParams(); if (StringUtil.isNullOrEmpty(params)) { - special.setParams(""); + specialVO.setParams(""); } - String remark = special.getRemark(); + String remark = specialVO.getRemark(); if (StringUtil.isNullOrEmpty(remark)) { - special.setRemark(""); + specialVO.setRemark(""); } - JumpDetailV2 jumpDetail = special.getJumpDetail(); + JumpDetailV2 jumpDetail = specialVO.getJumpDetail(); if (jumpDetail == null) { // 榛樿鏈�夋嫨 JumpDetailV2 jumpDetailV2 = new JumpDetailV2(); jumpDetailV2.setName("-鏈�夋嫨-"); jumpDetailV2.setType("default"); - special.setJumpDetail(jumpDetailV2); + specialVO.setJumpDetail(jumpDetailV2); } + + // 鍒嗕韩琛ュ厖淇℃伅 + CommonShareInfo info = commonShareInfoService.getByPidAndType(specialVO.getId(), + CommonShareInfoEnum.special.name()); + if (info == null) { + specialVO.setNeedSpin(false); + specialVO.setComment(""); + } else { + specialVO.setNeedSpin(info.getNeedSpin()); + if (StringUtil.isNullOrEmpty(info.getComment())) { + specialVO.setComment(""); + } else { + specialVO.setComment(info.getComment()); + } + } + listvo.add(specialVO); } - return list; + return listvo; } @Override @@ -437,23 +476,11 @@ } @Override - @Cacheable(value = "specialCache", key = "'listBySystemAndCard-'+#card+'-'+#systemId") - public List<Special> listBySystemAndCard(String card, Long systemId) { - return specialMapper.listBySystemAndCard(card, systemId); - } - - @Override - @Cacheable(value = "specialCache", key = "'listPageBySystemAndCard-'+#start+'-'+#count+'-'+#card+'-'+#systemId") - public List<Special> listPageBySystemAndCard(long start, int count, String card, Long systemId) { - return specialMapper.listPageBySystemAndCard(start, count, card, systemId); - } - - @Override - @Cacheable(value = "specialCache", key = "'listByVersion-'+#start+'-'+#count+'-'+#card+'-'+#platform+'-'+#versionCode") - public List<Special> listByVersion(long start, int count, String card, String platform, Integer versionCode) { - List<Special> specialList = specialMapper.listByPlaceKey(card, null, null, null); - filterSpecial(specialList, platform, versionCode); - return specialList; + @Cacheable(value = "specialCache", key = "'listByVersion-'+#start+'-'+#count+'-'+#card+'-'+#platform+'-'+#versionCode+'-'+#system") + public List<SpecialVO> listByVersion(long start, int count, String card, String platform, Integer versionCode,SystemEnum system) { + List<Special> specialList = specialMapper.listByPlaceKey(card, null, null, null, system); + filterSpecial(specialList, platform, versionCode,system); + return transformVO(specialList,system); } /** @@ -463,10 +490,10 @@ * @param platform * @param versionCode */ - private void filterSpecial(List<Special> list, String platform, int versionCode) { + private void filterSpecial(List<Special> list, String platform, int versionCode,SystemEnum system) { if (list == null || list.size() == 0) return; - AppVersionInfo app = appVersionService.getClientVersion(platform, versionCode); + AppVersionInfo app = appVersionService.getClientVersion(platform, versionCode,system); if (app == null) { list.clear(); return; @@ -488,8 +515,8 @@ } @Override - @Cacheable(value = "specialCache", key = "'listCacheSpecialToIndex'+#acceptData.platform+'-'+#acceptData.version+'-'+#sex") - public JSONObject listCacheSpecialToIndex(AcceptData acceptData, Integer sex) throws Exception { + @Cacheable(value = "specialCache", key = "'listCacheSpecialToIndex'+#acceptData.platform+'-'+#acceptData.version+'-'+#sex+'-'+#system") + public JSONObject listCacheSpecialToIndex(AcceptData acceptData, Integer sex,SystemEnum system) throws Exception { // 棣栭〉-5鍦嗗舰2鎺掑尯鍩� JSONObject arcMap = new JSONObject(); @@ -508,8 +535,8 @@ int platformCode = Constant.getPlatformCode(platform); int version = Integer.parseInt(acceptData.getVersion()); - List<Special> listArc = specialMapper.listByPlaceKey(indexArc, sex, platformCode, version); - filterSpecial(listArc, platform, version); + List<Special> listArc = specialMapper.listByPlaceKey(indexArc, sex, platformCode, version,system); + filterSpecial(listArc, platform, version,system); if (listArc == null) { listArc = new ArrayList<Special>(); } else if (listArc.size() > 0) { @@ -535,7 +562,7 @@ if (hour < 6) {// 0-6鐐逛箣闂翠笉杩涘叆鑷喘绔嬪噺鐨勯〉闈� s.setJumpDetail(jumpDetailV2Service.getByTypeCache("web")); JSONObject params = new JSONObject(); - params.put("url", configService.get(ConfigKeyEnum.tljOwnBuyNogoods.getKey())); + params.put("url", configService.getValue(ConfigKeyEnum.tljOwnBuyNogoods.getKey(), SystemInfoUtil.getSystem(acceptData))); s.setParams(params.toString()); } else { // 鏌ヨ涓撻璇︽儏 @@ -554,19 +581,19 @@ // 鏁版嵁澶勭悊 // handlelist(listArc); - arcMap.put("list", JsonUtil.getApiCommonGson().toJson(listArc)); + arcMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listArc,SystemInfoUtil.getSystem(acceptData)))); // 棣栭〉-娲诲姩鍖哄煙锛堝コ鐜嬭妭锛� JSONObject activityMap = new JSONObject(); List<Special> listActivity = null; if ("ios".equalsIgnoreCase(acceptData.getPlatform()) - && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) { + && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()), SystemInfoUtil.getSystem(acceptData))) { // 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥� } else { - listActivity = specialMapper.listByPlaceKey("index_activity", null, platformCode, version); + listActivity = specialMapper.listByPlaceKey("index_activity", null, platformCode, version,system); } - filterSpecial(listActivity, platform, version); + filterSpecial(listActivity, platform, version,system); if (listActivity == null) { listActivity = new ArrayList<Special>(); @@ -580,7 +607,7 @@ handlelist(listActivity); - activityMap.put("list", JsonUtil.getApiCommonGson().toJson(listActivity)); + activityMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listActivity,system))); // 棣栭〉-鏂瑰舰涓撻锛堝搧鐗屽埜銆佹瘝濠�...锛� String indexBlock = "index_block"; @@ -588,8 +615,8 @@ indexBlock = "index_block_1.5.6"; JSONObject blockJsonMap = new JSONObject(); - List<Special> listBlock = specialMapper.listByPlaceKey(indexBlock, sex, platformCode, version); - filterSpecial(listBlock, platform, version); + List<Special> listBlock = specialMapper.listByPlaceKey(indexBlock, sex, platformCode, version,system); + filterSpecial(listBlock, platform, version,system); if (listBlock == null) { listBlock = new ArrayList<Special>(); } else if (listBlock.size() > 0) { @@ -613,7 +640,7 @@ // 鏁版嵁澶勭悊 handlelist(listBlock); - blockJsonMap.put("list", JsonUtil.getApiCommonGson().toJson(listBlock)); + blockJsonMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listBlock,system))); JSONObject root = new JSONObject(); root.put("arcArea", arcMap); @@ -623,27 +650,77 @@ } @Override - public List<Special> listByPlaceKey(String placeKey, Integer platform, Integer versionCode) { - return specialMapper.listByPlaceKey(placeKey, null, platform, versionCode); + public List<Special> listByPlaceKey(String placeKey, Integer platform, Integer versionCode,SystemEnum system) { + return specialMapper.listByPlaceKey(placeKey, null, platform, versionCode,system); } @Override public List<Special> listByPlaceKeyList(long start, int count, List<String> list, Integer platform, - Integer versionCode) { - return specialMapper.listByPlaceKeyList(start, count, list, null, platform, versionCode); + Integer versionCode,SystemEnum system) { + return specialMapper.listByPlaceKeyList(start, count, list, null, platform, versionCode,system); } @Override - public long countByPlaceKeyList(List<String> list, Integer platform, Integer versionCode) { - return specialMapper.countByPlaceKeyList(list, null, platform, versionCode); + public long countByPlaceKeyList(List<String> list, Integer platform, Integer versionCode,SystemEnum system) { + return specialMapper.countByPlaceKeyList(list, null, platform, versionCode,system); } @Override @Cacheable(value = "specialCache", key = "'listByPlaceKeyHasLabel'+#start+'-'+#platform+'-'+#versionCode+'-'+#list") - public List<Special> listByPlaceKeyHasLabel(long start, int count, List<String> list, Integer platform, - Integer versionCode) { - return specialMapper.listByPlaceKeyHasLabel(start, count, list, null, platform, versionCode); + public List<SpecialVO> listByPlaceKeyHasLabel(long start, int count, List<String> list, Integer platform, + Integer versionCode,SystemEnum system) { + List<Special> listSpecial = specialMapper.listByPlaceKeyHasLabel(start, count, list, null, + platform, versionCode,system); + return transformVO(listSpecial,system); } + + + /** + * 杞崲VO + * @param list + * @return + */ + private List<SpecialVO> transformVO(List<Special> list, SystemEnum system) { + List<SpecialVO> listVo = new ArrayList<SpecialVO>(); + if (list != null && list.size() > 0) { + for (Special special: list) { + SpecialVO specialVO = new SpecialVO(); + try { + PropertyUtils.copyProperties(specialVO, special); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + + // 璺宠浆娲诲姩杩囨浮椤� + CommonShareInfo info = commonShareInfoService.getByPidAndType(specialVO.getId(), + CommonShareInfoEnum.special.name()); + if (info != null && !StringUtil.isNullOrEmpty(info.getComment())) { + String link = configService.getValue(ConfigKeyEnum.activityDetailLink.getKey(),system) + "?type=%s&id=%s"; + link = String.format(link, CommonShareInfoEnum.special.name(),specialVO.getId()); + + // 璺宠浆閾炬帴 + JSONObject params = new JSONObject(); + params.put("url", link); + + // 鏇挎崲娣樺疂瀹樻柟娲诲姩 + String comment = info.getComment(); + List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment); + for (String st : activityIdList) + comment = comment.replace(st, ""); + + specialVO.setComment(comment); + specialVO.setParams(params.toString()); + specialVO.setJumpDetail(jumpDetailV2Service.getByTypeCache("web")); + } + listVo.add(specialVO); + } + } + return listVo; + } + + + /** * 澶勭悊 鏁版嵁 -- Gitblit v1.8.0