1 文件已重命名
36个文件已修改
3个文件已添加
| | |
| | | <orderEntry type="library" name="Maven: com.opencsv:opencsv:4.3.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: ch.ethz.ganymed:ganymed-ssh2:build210" level="project" /> |
| | | <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-web:2.0.4" level="project" /> |
| | |
| | | <orderEntry type="library" name="Maven: com.opencsv:opencsv:4.3.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: ch.ethz.ganymed:ganymed-ssh2:build210" level="project" /> |
| | | <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-web:2.0.4" level="project" /> |
| | |
| | | <orderEntry type="library" name="Maven: com.opencsv:opencsv:4.3.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: ch.ethz.ganymed:ganymed-ssh2:build210" level="project" /> |
| | | <orderEntry type="module" module-name="facade-goods" /> |
| | | <orderEntry type="module" module-name="facede-common" /> |
| | | <orderEntry type="module-library"> |
| | |
| | | <!-- 任务执行 -->
|
| | | <id>env-pro-job</id>
|
| | | <properties>
|
| | |
|
| | | <profiles.active>env-pro-job</profiles.active>
|
| | | </properties>
|
| | | </profile>
|
| | |
| | |
|
| | | String result = null;
|
| | | try {
|
| | | result = convertLinkManager.convertLinkFromText(content, Long.parseLong(uid), share);
|
| | | result = convertLinkManager.convertLinkFromText(content, Long.parseLong(uid), share,true);
|
| | | } catch (NumberFormatException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户ID转换出错"));
|
| | | }catch (Exception e) {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | @RequestMapping(value = "listTaoBaoOrderNoUpdate")
|
| | | public void listTaoBaoOrderUnUpdate(AdminAcceptData acceptData, String callback, String key, Integer pageIndex, PrintWriter out) {
|
| | |
|
| | | try {
|
| | | if (pageIndex == null || pageIndex < 0) {
|
| | | pageIndex = 1;
|
| | | }
|
| | |
|
| | | List<TaoBaoOrder> orderList = null;
|
| | | Long count = null;
|
| | |
|
| | | if (!StringUtil.isNullOrEmpty(key)) {
|
| | | orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(key);
|
| | | count = (long) orderList.size();
|
| | | } else {
|
| | | orderList = taoBaoOrderService.listAllOrder(pageIndex, Constant.PAGE_SIZE);
|
| | | count = taoBaoOrderService.countAllOrder();
|
| | | }
|
| | |
|
| | | int pageSize = Constant.PAGE_SIZE;
|
| | |
|
| | | int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
| | |
|
| | | Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
|
| | | @Override
|
| | | public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
|
| | | if (value == null) {
|
| | | return new JsonPrimitive("");
|
| | | } else {
|
| | | return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
| | | }
|
| | | }
|
| | | }).create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("result_list", gson.toJson(orderList));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | @RequestMapping(value = "updateTaoBaoOrder")
|
| | | public void updateTaoBaoOrder(AdminAcceptData acceptData, String callback, String ids, PrintWriter out) {
|
| | | try {
|
| | |
| | | Set<String> orderIds = new HashSet<>();
|
| | |
|
| | | for (int i = 0; i < idsArray.size(); i++) {
|
| | | TaoBaoOrder taoBaoOrder = taoBaoOrderService.selectByPrimaryKey(idsArray.optLong(i));
|
| | | orderIds.add(taoBaoOrder.getOrderId());
|
| | | orderIds.add(idsArray.optString(i));
|
| | | }
|
| | |
|
| | | Long[] startTimes = new Long[orderIds.size()];
|
| | |
| | | out.print(JsonUtil.loadFalseResult(1, "没有绑定电话号码"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (!Constant.IS_TEST) {
|
| | | String code = redisManager.getSMSVCode(user.getPhone(), SMSHistory.TYPE_LOGIN);
|
| | | if (code == null || !code.equalsIgnoreCase(vcode)) {
|
| | | out.print(JsonUtil.loadFalseResult(90001, "验证码错误"));
|
| | | return;
|
| | | }
|
| | | }
|
| | | redisManager.clearSMSFrequencyLimit(user.getPhone(), SMSHistory.TYPE_LOGIN);
|
| | | redisManager.saveBindAlipayAccountSMSState(user.getPhone());
|
| | | out.print(JsonUtil.loadTrueResult(""));
|
| | |
| | | try {
|
| | | String key = RedisKeyEnum.convertLinkDocResultTemp.getKey() + uid + "-"
|
| | | + StringUtil.Md5(UUID.randomUUID().toString());
|
| | | String result = convertLinkManager.convertLinkFromText(text, uid, true);
|
| | | String result = convertLinkManager.convertLinkFromText(text, uid, true,true);
|
| | | redisManager.cacheCommonString(key, result, 60);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("id", key);
|
| | |
| | | } |
| | | |
| | | if (list.size() == 0) { |
| | | out.print(JsonUtil.loadFalseResult("该信息已下架")); |
| | | out.print(JsonUtil.loadFalseResult("操作失败")); |
| | | return; |
| | | } |
| | | |
| | |
| | | String newText = text; // 非通用券需要验证 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true,true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true,true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | out.print(JsonUtil.loadFalseResult("评论生成失败")); |
| | |
| | | String newText = text; |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true,true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | |
| | | if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) { |
| | | try { |
| | | String erCodeContent = ""; |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true,true); |
| | | // 获取口令 |
| | | List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText); |
| | | if (tokenList != null && tokenList.size() > 0) { |
| | |
| | | String newText = text; // 非通用券需要验证 |
| | | if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) { |
| | | try { |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true); |
| | | newText = convertLinkManager.convertLinkFromText(text, uid, true,true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) { |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("评论生成失败")); |
| | |
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import com.yeshi.fanli.entity.SystemFunction;
|
| | | import com.yeshi.fanli.exception.user.UserExtraTaoBaoInfoException;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.util.*;
|
| | | import com.yeshi.fanli.vo.taobao.TaoBaoUser;
|
| | | import org.springframework.stereotype.Controller;
|
| | |
| | |
|
| | | @Resource
|
| | | private OrderMoneyDailyCountService orderMoneyDailyCountService;
|
| | | @Resource
|
| | | private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
|
| | |
|
| | |
|
| | | /**
|
| | |
| | | }
|
| | | return money;
|
| | | }
|
| | |
|
| | |
|
| | | @RequestMapping("getTaoBaoShareParams")
|
| | | public void getTaoBaoShareParams(AcceptData acceptData, Long uid, PrintWriter out) {
|
| | | if (uid == null) {
|
| | | out.print(JsonUtil.loadFalseResult("用户未登录"));
|
| | | return;
|
| | | }
|
| | | String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(uid);
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("relationId", relationId);
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|
| | |
| | | // VIP数据预览
|
| | | MoneyStatisticVO vo = null;
|
| | | String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.moneyInfo);
|
| | | //数据预览,填的假数据
|
| | | if (!StringUtil.isNullOrEmpty(redisContent)) {
|
| | | vo = new Gson().fromJson(redisContent, MoneyStatisticVO.class);
|
| | | if (vo != null) {
|
| | |
| | | }
|
| | |
|
| | | if (vo == null) {
|
| | | vo = createMoneyStatistic(uid, acceptData);
|
| | | vo = getMoneyStatisticInfo(uid, acceptData);
|
| | | }
|
| | |
|
| | | Gson gson = getGson();
|
| | | out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
|
| | | }
|
| | |
|
| | | private MoneyStatisticVO createMoneyStatistic(Long uid, AcceptData acceptData) {
|
| | | private MoneyStatisticVO getMoneyStatisticInfo(Long uid, AcceptData acceptData) {
|
| | | UserInfo user = userInfoService.getUserById(uid);
|
| | |
|
| | | MoneyStatisticVO vo = new MoneyStatisticVO();
|
New file |
| | |
| | | package com.yeshi.fanli.dto.taobao; |
| | | |
| | | import java.util.Date; |
| | | |
| | | public class TaoBaoOrderSearchFilter { |
| | | private String orderId;//订单号 |
| | | private String state;//状态 |
| | | private Date minCreateTime; |
| | | private Date maxCreateTime; |
| | | |
| | | private Date minSettleTime; |
| | | private Date maxSettleTime; |
| | | } |
| | |
| | |
|
| | | import java.math.BigDecimal;
|
| | |
|
| | | import org.springframework.data.annotation.Transient;
|
| | | import org.yeshi.utils.mybatis.Column;
|
| | | import org.yeshi.utils.mybatis.Table;
|
| | |
|
| | |
| | | @Column(name = "extraInfo")
|
| | | private String extraInfoStr;//附加信息JSON格式
|
| | |
|
| | | @Transient
|
| | | @Expose
|
| | | private String system;//系统名称
|
| | |
|
| | | public String getSystem() {
|
| | | return system;
|
| | | }
|
| | |
|
| | | public void setSystem(String system) {
|
| | | this.system = system;
|
| | | }
|
| | |
|
| | | public ExtractOrderStatisticDTO getExtraInfo() {
|
| | | return extraInfo;
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum; |
| | | import com.yeshi.fanli.service.inter.config.AppVersionService; |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | | import com.yeshi.fanli.util.AppMarketUtil; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import org.springframework.stereotype.Component; |
| | | import org.yeshi.utils.AppMarketUtil; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | |
| | | desc = desc.replaceFirst("\\[链接\\]", link);
|
| | | }
|
| | |
|
| | | desc = convertLinkManager.convertJDLinkFromText(desc, 0L, true);
|
| | | desc = convertLinkManager.convertJDLinkFromText(desc, 0L, true,false);
|
| | | info.setContent(desc);
|
| | |
|
| | | List<JDGoods> goodsList = JDApiUtil.queryGoodsDetail(goods.getSkuList());
|
| | |
| | | } |
| | | } else if (i == 0 && kind == 1) { |
| | | try { |
| | | convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); |
| | | convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true,false); |
| | | } catch (Exception e) { |
| | | throw new GoodsEvaluateException(1, "不包含可转链的口令与链接"); |
| | | } |
| | |
| | | String content = commentInfo.getContent(); |
| | | if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) { |
| | | try { |
| | | convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); |
| | | convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true,false); |
| | | } catch (ConvertLinkExceptionException e) { |
| | | if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { |
| | | throw new GoodsEvaluateException(1, "包含不可转链的口令与链接"); |
| | |
| | | List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); |
| | | for (String st : activityIdList) |
| | | content = content.replace(st, ""); |
| | | |
| | | content=content.replace("{relationId}",""); |
| | | commentInfoNew.setContent(content); |
| | | } |
| | | } |
| | |
| | | List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); |
| | | for (String st : activityIdList) |
| | | content = content.replace(st, ""); |
| | | content=content.replace("{relationId}",""); |
| | | |
| | | commentInfoNew.setContent(content); |
| | | } |
| | | |
| | |
| | | // 转链
|
| | | String convertContent = null;
|
| | | try {
|
| | | convertContent = convertLinkManager.convertLinkFromText(info.getContent(), uid, true);
|
| | | convertContent = convertLinkManager.convertLinkFromText(info.getContent(), uid, true,false);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | LogHelper.errorDetailInfo(e);
|
| | |
| | | String quanToken = "";
|
| | | if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {// 通过立即推广方式获取淘口令成功
|
| | | quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
|
| | | goods.getCouponLink());
|
| | | goods.getCouponLink(),false);
|
| | | } else if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl())) {
|
| | | quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
|
| | | goods.getAuctionUrl());
|
| | | goods.getAuctionUrl(),false);
|
| | | }
|
| | | return quanToken;
|
| | | }
|
| | |
| | |
|
| | | if (record.getNeedSpin()) {
|
| | | try {
|
| | | convertLinkManager.convertLinkFromText(record.getComment(), Constant.LINK_TOKEN_VERIFY_UID, true);
|
| | | convertLinkManager.convertLinkFromText(record.getComment(), Constant.LINK_TOKEN_VERIFY_UID, true,false);
|
| | | } catch (ConvertLinkExceptionException e) {
|
| | | if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) {
|
| | | throw new SpecialException(1, "包含不可转链的口令与链接");
|
| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | |
| | | throw new AlipayAccountException(AlipayAccountException.CODE_NO_PARAMS, "账号不能为空");
|
| | | if (StringUtil.isNullOrEmpty(name))
|
| | | throw new AlipayAccountException(AlipayAccountException.CODE_NO_PARAMS, "真实姓名不能为空");
|
| | | //
|
| | |
|
| | | List<BindingAccount> bindingAccountList = bindingAccountMapper.selectByAccount(account);
|
| | |
|
| | | if (bindingAccountList != null && bindingAccountList.size() > 0) {
|
| | | if (bindingAccountList.get(0).getUserInfo().getId().longValue() != uid)
|
| | | UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
|
| | | SystemEnum systemEnum = user.getSystem();
|
| | |
|
| | | for (int i = 0; i < bindingAccountList.size(); i++) {
|
| | | UserInfo u = userInfoMapper.selectByPrimaryKey(bindingAccountList.get(i).getUserInfo().getId());
|
| | | //同一系统下绑定账号不能重复
|
| | | if (u.getSystem() == systemEnum && bindingAccountList.get(i).getUserInfo().getId().longValue() != uid) {
|
| | | throw new AlipayAccountException(AlipayAccountException.CODE_ALREADY_BIND,
|
| | | "该支付宝账号已被其他账号绑定,请更换其他的支付宝账号来绑定");
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | AlipayAccountValidNormalHistory latest = alipayAccountValidNormalHistoryMapper.selectLatestByUid(uid);
|
| | | if (latest != null) {
|
| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | |
| | | private ExtractAuditRecordMapper extractAuditRecordMapper;
|
| | |
|
| | | @Resource
|
| | | private CountUserInfoDao countUserInfoDao;
|
| | | private UserInfoService userInfoService;
|
| | |
|
| | | @Override
|
| | | public List<ExtractAuditRecord> getList(int pageIndex, int pageSize, String key, String startTime, String endTime) {
|
| | |
| | | for (ExtractAuditRecord record : list) {
|
| | | if (!StringUtil.isNullOrEmpty(record.getExtraInfoStr())) {
|
| | | record.setExtraInfo(gson.fromJson(record.getExtraInfoStr(), ExtractOrderStatisticDTO.class));
|
| | | SystemEnum system = userInfoService.getUserSystem(record.getExtract().getUserInfo().getId());
|
| | | record.setSystem(system.getName());
|
| | | }
|
| | | }
|
| | | return list;
|
| | |
| | | String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, StringUtil.Md5("sms-login-tencent-latest-" + phone));
|
| | |
|
| | | String msgCode = StringUtil.getVerifyCode(codeLength);
|
| | |
|
| | | // 验证码模板
|
| | | String msg = Constant.smsConfig.getSmsLogin().replace("[签名]", system.getSmsAlias()).replace("[验证码]",
|
| | | msgCode);
|
| | | if (Constant.IS_TEST)
|
| | | System.out.println(msg);
|
| | | // 发送短信
|
| | | // 发送间隔2分钟内的采用阿里云短信发送
|
| | | String cacheString = redisManager.getCommonString(key);
|
| | |
| | | for (CommentInfo commentInfo : comments) {
|
| | | String comment = null;
|
| | | try {
|
| | | comment = convertLinkManager.convertLinkFromText(commentInfo.getContent(), uid, true);
|
| | | comment = convertLinkManager.convertLinkFromText(commentInfo.getContent(), uid, true,false);
|
| | | hasToken = true;
|
| | | } catch (ConvertLinkExceptionException e) {
|
| | | if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
|
| | |
| | | */
|
| | | public List<TaoBaoOrder> getTaoBaoOrderByOrderId(String orderId);
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计当日预估收益
|
| | | *
|
| | |
| | | import com.yeshi.goods.facade.utils.taobao.HaoDanKuApiUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | | import org.yeshi.utils.UrlUtils;
|
| | |
|
| | | /**
|
| | | * 转链组件
|
| | | *
|
| | | * @author Administrator
|
| | | *
|
| | | */
|
| | | @Component
|
| | | public class ConvertLinkManager {
|
| | |
| | | private TaoBaoTokenAuctionIdMapManager taoBaoTokenAuctionIdMapManager;
|
| | |
|
| | | /**
|
| | | * |
| | | * @Title: convertJDLinkFromText @Description:转链文本中的京东短链 @param text @param
|
| | | * uid @param share @return @throws Exception String 返回类型 @throws
|
| | | */
|
| | |
|
| | | public String convertJDLinkFromText(String text, Long uid, boolean share) throws Exception {
|
| | | public String convertJDLinkFromText(String text, Long uid, boolean share, boolean simpleTKToken) throws Exception {
|
| | |
|
| | | StringBuilder builder = new StringBuilder(text);
|
| | | String newText = builder.toString();
|
| | |
| | | * @Title: convertTBLinkFromText @Description: 转链文本中的淘口令 @param text @param
|
| | | * uid @param share @return @throws Exception String 返回类型 @throws
|
| | | */
|
| | | private String convertTBLinkFromText(String text, Long uid, boolean share) throws Exception {
|
| | | /**
|
| | | * @param text
|
| | | * @param uid
|
| | | * @param share
|
| | | * @param simpleToken -是否采用简版淘口令
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | private String convertTBLinkFromText(String text, Long uid, boolean share, boolean simpleToken) throws Exception {
|
| | |
|
| | | StringBuilder builder = new StringBuilder(text);
|
| | | String newText = builder.toString();
|
| | |
| | | throw new Exception("商品转链失败");
|
| | | }
|
| | |
|
| | | String newToken = TaoKeApiUtil.getTKToken(simpleGoods.getPictUrl(), simpleGoods.getTitle(), link);
|
| | | String newToken = TaoKeApiUtil.getTKToken(simpleGoods.getPictUrl(), simpleGoods.getTitle(), link, simpleToken);
|
| | | if (StringUtil.isNullOrEmpty(newToken)) {
|
| | | throw new Exception("口令转链失败");
|
| | | }
|
| | |
| | | link = dto.getClick_url();
|
| | | }
|
| | |
|
| | | String token = TaoKeApiUtil.getTKToken("http://", "淘宝官方活动", link);
|
| | | String token = TaoKeApiUtil.getTKToken("http://", "淘宝官方活动", link, simpleToken);
|
| | | newText = newText.replace(st, TaoBaoUtil.filterTaoToken(token));
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * |
| | | * @Title: convertLinkFromText @Description: 从文本转链 @param text @return
|
| | | * String 返回类型 @throws
|
| | | */
|
| | | public String convertLinkFromText(String text, Long uid, boolean share)
|
| | | public String convertLinkFromText(String text, Long uid, boolean share, boolean simpleToken)
|
| | | throws ConvertLinkExceptionException, Exception {
|
| | | String newText = convertJDLinkFromText(text, uid, share);
|
| | | String newText = convertJDLinkFromText(text, uid, share, simpleToken);
|
| | | newText = convertPDDLinkFromText(newText, uid, share);
|
| | | newText = convertTBLinkFromText(newText, uid, share);
|
| | | newText = convertTBLinkFromText(newText, uid, share, simpleToken);
|
| | |
|
| | | List<String> urls = UrlUtils.parseUrlsFromText(text);
|
| | | if (urls != null)
|
| | | for (String url : urls) {
|
| | | if (url.contains("{relationId}")) {
|
| | | String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(uid);
|
| | | if (StringUtil.isNullOrEmpty(relationId)) {
|
| | | throw new Exception("淘宝未授权");
|
| | | }
|
| | | newText = newText.replace(url, url.replace("{relationId}", relationId));
|
| | | }
|
| | | }
|
| | | if (text.equalsIgnoreCase(newText))
|
| | | throw new ConvertLinkExceptionException(ConvertLinkExceptionException.CODE_NONE, "不包含可转链的口令与链接");
|
| | | return newText;
|
| | |
| | | * 创建口令 @Title: createTaoBaoToken @Description: @param uid 用户ID @param
|
| | | * picturl @param title @param link @return String 返回类型 @throws
|
| | | */
|
| | | public String createTaoBaoToken(Long uid, String picturl, String title, String link) {
|
| | |
|
| | | String token = TaoKeApiUtil.getTKToken(picturl, title, link);
|
| | | public String createTaoBaoToken(Long uid, String picturl, String title, String link, boolean simpleToken) {
|
| | | String token = TaoKeApiUtil.getTKToken(picturl, title, link, simpleToken);
|
| | | if (!StringUtil.isNullOrEmpty(token)) {
|
| | | // 缓存30分钟
|
| | | redisManager.cacheCommonString(
|
| | |
| | | |
| | | if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 通过立即推广方式获取淘口令成功 |
| | | String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), |
| | | tbLink.getCouponLink()); |
| | | tbLink.getCouponLink(),false); |
| | | if (!StringUtil.isNullOrEmpty(quanToken)) { |
| | | tbLink.setTaoToken(quanToken); |
| | | } |
| | | } else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) { |
| | | String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), |
| | | tbLink.getClickUrl()); |
| | | tbLink.getClickUrl(),false); |
| | | if (!StringUtil.isNullOrEmpty(quanToken)) { |
| | | tbLink.setTaoToken(quanToken); |
| | | } |
| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
| | | import com.yeshi.fanli.service.inter.order.OrderProcessService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
|
| | | import org.springframework.stereotype.Component;
|
| | |
|
| | | import com.aliyun.openservices.ons.api.Action;
|
| | |
| | | * 订单到账消费
|
| | | *
|
| | | * @author Administrator
|
| | | *
|
| | | */
|
| | | @Component
|
| | | public class OrderMessageListener implements MessageListener {
|
| | |
|
| | | @Resource
|
| | | private HongBaoV2SettleTempService hongBaoV2SettleTempService;
|
| | | private OrderProcessService orderProcessService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoV2Service hongBaoV2Service;
|
| | |
|
| | | @Resource
|
| | | private HongBaoOrderService hongBaoOrderService;
|
| | |
|
| | | @Resource
|
| | | private Producer producer;
|
| | |
|
| | | private int getHongBaoType(int type) {
|
| | | switch (type) {
|
| | | case HongBaoV2.TYPE_YIJI:
|
| | | case HongBaoV2.TYPE_ERJI:
|
| | | case HongBaoV2.TYPE_SHARE_YIJI:
|
| | | case HongBaoV2.TYPE_SHARE_ERJI:
|
| | | return OrderMoneyRecievedMQMsg.TYPE_INVITE;
|
| | | case HongBaoV2.TYPE_SHARE_GOODS:
|
| | | return OrderMoneyRecievedMQMsg.TYPE_SHARE;
|
| | | case HongBaoV2.TYPE_ZIGOU:
|
| | | return OrderMoneyRecievedMQMsg.TYPE_ZIGOU;
|
| | | }
|
| | | return 0;
|
| | | }
|
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
| | |
|
| | | @Override
|
| | | public Action consume(Message message, ConsumeContext context) {
|
| | |
| | | new String(message.getBody()));
|
| | | if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) {
|
| | | if (OrderTopicTagEnum.taoBaoOrderWeiQuan.name().equalsIgnoreCase(message.getTag())) {
|
| | | String key = message.getKey();
|
| | | // 订单维权
|
| | | //TODO 维权增加
|
| | | |
| | | OrderWeiQuanMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderWeiQuanMQMsg.class);
|
| | | if (dto != null) {
|
| | | TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderService.selectByTradeId(dto.getTradeId());
|
| | | orderProcessService.weiQuanOrder(taoBaoWeiQuanOrder);
|
| | | }
|
| | | return Action.CommitMessage;
|
| | | }
|
| | | }
|
| | |
| | | JSONObject data = JSONObject.fromObject(resultStr);
|
| | | if (data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data") != null)
|
| | | return data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data").optString("model");
|
| | | return null;
|
| | | }
|
| | |
|
| | | public static String getTKToken(String logo, String text, String url, boolean simpleToken) {
|
| | | if (simpleToken) {
|
| | | return getSimpleTKToken(logo, text, url);
|
| | | } else {
|
| | | return getTKToken(logo, text, url);
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | public static String getSimpleTKToken(String logo, String text, String url) {
|
| | | if (text == null)
|
| | | return null;
|
| | | if (text.length() < 5)
|
| | | text = "好货:" + text;
|
| | |
|
| | | Map<String, String> map = new HashMap<>();
|
| | | map.put("method", "taobao.tbk.tpwd.create");
|
| | | map.put("url", url);
|
| | | map.put("text", text);
|
| | | map.put("logo", logo);
|
| | | String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true);
|
| | |
|
| | | JSONObject data = JSONObject.fromObject(resultStr);
|
| | | if (data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data") != null)
|
| | | return data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data").optString("password_simple");
|
| | | return null;
|
| | | }
|
| | |
|
| | |
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.yeshi.fanli.dto.order.OrderQuery;
|
| | | import com.yeshi.fanli.dto.taobao.TaoBaoOrderResultDTO;
|
| | | import com.yeshi.fanli.dto.taobao.WeiQuanOrderResult;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
|
| | |
| | | }
|
| | | return null;
|
| | | }
|
| | |
|
| | |
|
| | | @Deprecated
|
| | | public static List<TaoBaoOrder> queryTaoBaoOrder(OrderQuery orderQuery, String appKey, String appSecret) {
|
| | |
|
| | | Map<String, String> map = new HashMap<>();
|
| | | map.put("method", "taobao.tbk.order.get");
|
| | | map.put("fields",
|
| | | "tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk_status,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,relation_id,tb_trade_parent_id,tb_trade_id,num_iid,item_title,item_num,price,pay_price,seller_nick,seller_shop_title,commission,commission_rate,unid,create_time,earning_time,tk3rd_pub_id,tk3rd_site_id,tk3rd_adzone_id,special_id,click_time,relation_id,special_id");
|
| | | if (orderQuery.startTime != null)
|
| | | map.put("start_time", orderQuery.startTime);
|
| | | if (orderQuery.span != null)
|
| | | map.put("span", orderQuery.span + "");
|
| | | map.put("page_no", orderQuery.pageNo + "");
|
| | | map.put("page_size", orderQuery.pageSize + "");
|
| | |
|
| | | if (orderQuery.tkStatus != null)
|
| | | map.put("tk_status", orderQuery.tkStatus + "");
|
| | | if (orderQuery.orderQueryType != null)
|
| | | map.put("order_query_type", orderQuery.orderQueryType);
|
| | | if (orderQuery.orderScene != null)
|
| | | map.put("order_scene", orderQuery.orderScene + "");
|
| | |
|
| | | if (orderQuery.orderCountType != null)
|
| | | map.put("order_count_type", orderQuery.orderCountType + "");
|
| | |
|
| | | TaoKeAppInfo app = new TaoKeAppInfo();
|
| | | app.setAppKey(appKey);
|
| | | app.setAppSecret(appSecret);
|
| | | try {
|
| | | JSONObject json = TaoKeBaseUtil.baseRequest(map, app);
|
| | | System.out.println(json);
|
| | | } catch (TaoKeApiException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | try {
|
| | | Thread.sleep(1000);
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | return null;
|
| | | }
|
| | | }
|
| | |
| | | mongo.dbname=flq
|
| | | mongo.port=27017
|
| | | mongo.port=27016
|
| | | #开发环境
|
| | | mongo.host=192.168.1.253
|
| | | mongo.username=admin
|
| | | mongo.password=123456
|
| | | #mongo.host=192.168.1.253
|
| | | #mongo.username=admin
|
| | | #mongo.password=123456
|
| | |
|
| | | #mongo.host=193.112.35.168
|
| | | #mongo.username=yeshi
|
| | | #mongo.password=Yeshi2016@
|
| | | mongo.host=193.112.35.168
|
| | | mongo.username=yeshi
|
| | | mongo.password=Yeshi2016@
|
| | |
|
| | | mongo.connectionsPerHost=8
|
| | | mongo.threadsAllowedToBlockForConnectionMultiplier=4
|
| | |
| | | redis.addr=192.168.1.253
|
| | | redis.addr=192.168.3.253
|
| | | redis.port=6379
|
| | | redis.auth=123456
|
| | | #redis.addr=193.112.34.40
|
| | |
| | | AND co.`co_third_create_time`>#{minTime} AND |
| | | <![CDATA[ (co.`co_estimate`>= ${money} OR co.`co_eIncome`> ${money})]]> |
| | | </if> |
| | | |
| | | <if test="payment != null">AND |
| | | co.co_payment <![CDATA[<]]> |
| | | #{payment} |
| | | </if> |
| | | |
| | | ORDER BY co.co_third_create_time DESC LIMIT ${start},${count} ) A LEFT |
| | | JOIN yeshi_ec_user u ON u.id = A.hb_uid |
| | | </select> |
| | |
| | | </property>
|
| | | </bean>
|
| | |
|
| | | <!-- 红包消息订阅 -->
|
| | | <bean id="orderMessageListener"
|
| | | class="com.yeshi.fanli.util.rocketmq.consumer.order.OrderMessageListener"></bean>
|
| | | <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean -->
|
| | | <bean id="orderConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean"
|
| | | init-method="start" destroy-method="shutdown">
|
| | | <property name="properties"> <!--消费者配置信息 -->
|
| | | <props>
|
| | | <prop key="AccessKey">${rocketmq.AccessKey}</prop>
|
| | | <prop key="SecretKey">${rocketmq.SecretKey}</prop>
|
| | | <prop key="GROUP_ID">GID_ORDER</prop>
|
| | | <prop key="NAMESRV_ADDR">${rocketmq.NAMESRV_ADDR}</prop>
|
| | | <prop key="ConsumeThreadNums">50</prop>
|
| | | </props>
|
| | | </property>
|
| | | <property name="subscriptionTable">
|
| | | <map>
|
| | | <entry value-ref="orderMessageListener">
|
| | | <key>
|
| | | <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
|
| | | <property name="topic" value="TOPIC_ORDER" />
|
| | | <property name="expression" value="taoBaoOrderWeiQuan" />
|
| | | </bean>
|
| | | </key>
|
| | | </entry>
|
| | | </map>
|
| | | </property>
|
| | | </bean>
|
| | |
|
| | |
|
| | | <!-- 测试消息订阅 -->
|
| | | <bean id="testRocketMQCosumerListener"
|
| | |
| | |
|
| | | import com.yeshi.fanli.entity.brand.BrandClassSystemMap;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoManage;
|
| | | import com.yeshi.fanli.entity.bus.user.Order;
|
| | | import com.yeshi.fanli.entity.common.Config;
|
| | | import com.yeshi.fanli.entity.config.CommonConfig;
|
| | | import com.yeshi.fanli.entity.pdd.PDDOrder;
|
| | | import com.yeshi.fanli.entity.push.PushGoods;
|
| | | import com.yeshi.fanli.entity.system.BusinessSystem;
|
| | | import org.junit.Test;
|
| | |
| | |
|
| | | @Test
|
| | | public void test1() {
|
| | | ColumnParseUtil.parseColumn(HongBaoManage.class,
|
| | | "D:\\workspace\\fanli\\fanli-server\\fanli\\src\\main\\resource\\mapping\\HongBaoManageMapper.xml");
|
| | | ColumnParseUtil.parseColumn(Order.class,
|
| | | "D:\\workspace\\fanli\\fanli-server\\fanli\\src\\main\\resource\\mapping\\order\\OrderMapper.xml");
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.yeshi.fanli.dto.order.OrderQuery;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
|
| | | import org.junit.Test;
|
| | | import org.yeshi.utils.HttpUtil;
|
| | |
|
| | |
| | | + "https://u.jd.com/d9fcGr\n" + "⚡京东秒杀\n" + "https://u.jd.com/WSIi1z\n" + "【记得与更多好友分享[愉快]】";
|
| | | ConvertLinkManager convertLinkManager = BeanUtil.getBean(ConvertLinkManager.class);
|
| | | try {
|
| | | System.out.println(convertLinkManager.convertLinkFromText(text, 437032L, true));
|
| | | System.out.println(convertLinkManager.convertLinkFromText(text, 437032L, true,false));
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
| | |
|
| | | @Test
|
| | | public void test12() {
|
| | |
|
| | | try {
|
| | |
|
| | | BufferedReader br = new BufferedReader(new InputStreamReader(
|
| | | new FileInputStream(new File("C:/Users/Administrator/Desktop/新建文本文档 (2).txt"))));
|
| | | String text = "";
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | @Test
|
| | | public void test18(){
|
| | |
|
| | | OrderQuery q=new OrderQuery();
|
| | | q.startTime="2020-01-01";
|
| | | q.pageNo=1;
|
| | | q.pageSize=20;
|
| | | TaoKeOrderApiUtil.queryTaoBaoOrder(q,TaoBaoConstant.TAOBAO_AUTH_APPKEY,TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | <version>4.3.2</version>
|
| | | </dependency>
|
| | |
|
| | | <!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
|
| | | <dependency>
|
| | | <groupId>ch.ethz.ganymed</groupId>
|
| | | <artifactId>ganymed-ssh2</artifactId>
|
| | | <version>build210</version>
|
| | | </dependency>
|
| | |
|
| | |
|
| | | </dependencies>
|
| | | </project>
|
File was renamed from fanli/src/main/java/com/yeshi/fanli/util/AppMarketUtil.java |
| | |
| | | package com.yeshi.fanli.util; |
| | | package org.yeshi.utils; |
| | | |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.yeshi.utils.HttpUtil; |
| | | |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | |
| | | /** |
New file |
| | |
| | | package org.yeshi.utils; |
| | | |
| | | import ch.ethz.ssh2.Connection; |
| | | import ch.ethz.ssh2.Session; |
| | | import ch.ethz.ssh2.StreamGobbler; |
| | | |
| | | import java.io.*; |
| | | |
| | | /** |
| | | * 远程Linux系统命令执行 |
| | | */ |
| | | public class LinuxRemoteCommandUtil { |
| | | |
| | | private static String DEFAULTCHART = "UTF-8"; |
| | | |
| | | /** |
| | | * 登录主机 |
| | | * |
| | | * @return 登录成功返回true,否则返回false |
| | | */ |
| | | public static Connection login(String ip, |
| | | String userName, |
| | | String userPwd) { |
| | | boolean flg = false; |
| | | Connection conn = null; |
| | | try { |
| | | conn = new Connection(ip); |
| | | conn.connect();//连接 |
| | | flg = conn.authenticateWithPassword(userName, userPwd);//认证 |
| | | if (flg) { |
| | | return conn; |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return conn; |
| | | } |
| | | |
| | | /** |
| | | * 远程执行shll脚本或者命令 |
| | | * |
| | | * @param cmd 即将执行的命令 |
| | | * @return 命令执行完后返回的结果值 |
| | | */ |
| | | public static String execute(Connection conn, String cmd) { |
| | | String result = ""; |
| | | try { |
| | | if (conn != null) { |
| | | Session session = conn.openSession();//打开一个会话 |
| | | session.execCommand(cmd);//执行命令 |
| | | result = processStdout(session.getStdout(), DEFAULTCHART); |
| | | //如果为得到标准输出为空,说明脚本执行出错了 |
| | | if (StringUtil.isNullOrEmpty(result)) { |
| | | result = processStdout(session.getStderr(), DEFAULTCHART); |
| | | } |
| | | conn.close(); |
| | | session.close(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 解析脚本执行返回的结果集 |
| | | * |
| | | * @param in 输入流对象 |
| | | * @param charset 编码 |
| | | * @return 以纯文本的格式返回 |
| | | */ |
| | | private static String processStdout(InputStream in, String charset) { |
| | | InputStream stdout = new StreamGobbler(in); |
| | | StringBuffer buffer = new StringBuffer(); |
| | | try { |
| | | BufferedReader br = new BufferedReader(new InputStreamReader(stdout, charset)); |
| | | String line = null; |
| | | while ((line = br.readLine()) != null) { |
| | | buffer.append(line + "\n"); |
| | | } |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return buffer.toString(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param ip |
| | | * @param userName |
| | | * @param pwd |
| | | * @param cmd |
| | | * @throws Exception |
| | | */ |
| | | public static void execute(String ip, String userName, String pwd, String cmd) throws Exception { |
| | | Connection connection = login(ip, userName, pwd); |
| | | if (connection == null) |
| | | throw new Exception("登录失败"); |
| | | execute(connection, cmd); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package org.yeshi.utils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | public class UrlUtils { |
| | | |
| | | /** |
| | | * 解析文本中的链接 |
| | | * |
| | | * @param text |
| | | * @return |
| | | */ |
| | | public static List<String> parseUrlsFromText(String text) { |
| | | List<String> urlList = new ArrayList<>(); |
| | | String URL_REGEX = "(((http|https)://)|(www\\.))[a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6}(:[0-9]{1,4})?(/[a-zA-Z0-9\\&%_\\./-~-]*)?"; |
| | | Pattern p = Pattern.compile(URL_REGEX); |
| | | Matcher matcher = p.matcher(text); |
| | | while (matcher.find()) { |
| | | String url = matcher.group(); |
| | | if (!StringUtil.isNullOrEmpty(url)) { |
| | | urlList.add(url); |
| | | } |
| | | } |
| | | return urlList; |
| | | } |
| | | } |
| | |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" /> |
| | | <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" /> |
| | | <orderEntry type="library" name="Maven: ch.ethz.ganymed:ganymed-ssh2:build210" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" /> |
| | | <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-web:2.0.4" level="project" /> |
| | | <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.0.RELEASE" level="project" /> |