Anima-No 发表于 2023-2-1 18:18

java的war包反编译修改求助

https://leiguoping.lanzoum.com/i6Cw40mcpabg
文件是这个,我给压缩了一下,里面的第623-625段有一行判断用户结束时间小于当前时间,那就吧setShortUrl设置为https://www.baidu.com
要吧这段代码给去掉,

Barnes 发表于 2023-2-1 18:18

本帖最后由 Barnes 于 2023-2-1 23:49 编辑

https://github.com/Col-E/Recaf
可以用这个工具直接修改字节码
可以先反编译整个类,然后查找所要修改的代码,例如直接搜www.baidu.com能搜到这个字符串在pageFreeTrialProduct方法里
然后到类的Table视图里找到对应的Method右键Edit with assembler
这里lambda表达式的语句会被编译为invokedynamic指令,找具体的invokeDynamic指令可以搜lambda表达式之外的一些方法调用之类的特征
例如搜getRecords,能搜到只有一处,下面不远就是invokeDynamic指令
它的handle是具体调用的方法
能看到这样的文本:handle
得知这个类中lambda$pageFreeTrialProduct$3方法是实际调用的方法,在methods中找到这个方法右键Edit with assembler

这里可以从标签D到标签F之间的代码全部删掉,建议保留标签
或者把IFEQ前POP,然后把IFEQ直接改为GOTO
改完Ctrl+s保存,然后导出
也可以用楼上说的插桩技术,动态修改字节码,不过我没用过阿里那个工具,可以自己写javaagent

Anima-No 发表于 2023-2-1 18:20

修改一个class文件。

0Ling0 发表于 2023-2-1 18:44

本帖最后由 0Ling0 于 2023-2-1 18:45 编辑

你的问题是修改源代码?
还是反编译遇到问题呢?
在线反编译网站:http://www.javadecompilers.com/
你想要的代码是这个?????
jdTrialProductPage.getRecords().stream().forEach(jdTrialProduct -> {
            vo = new JdFreeTrialProductVO();
            BeanUtils.copyProperties((Object)jdTrialProduct, (Object)vo);
            user = (User)this.userService.getById((Serializable)userId);
            // if (user.getEndTime().before(new Date())) {
            //   vo.setShortUrl("https://www.baidu.com");
            // }
            list.add(vo);
            return;
      });

Anima-No 发表于 2023-2-1 18:50

0Ling0 发表于 2023-2-1 18:44
你的问题是修改源代码?
还是反编译遇到问题呢?
在线反编译网站:http://www.javadecompilers.com/


对的,注释掉就好了,

Anima-No 发表于 2023-2-1 18:51

0Ling0 发表于 2023-2-1 18:44
你的问题是修改源代码?
还是反编译遇到问题呢?
在线反编译网站:http://www.javadecompilers.com/


这个class文件可以给我不

清风不语 发表于 2023-2-1 18:56

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xmyr.automaticscript.common.Constants;
import com.xmyr.automaticscript.dto.JdTrialProductDTO;
import com.xmyr.automaticscript.entity.User;
import com.xmyr.automaticscript.entity.jd.JdTrialProduct;
import com.xmyr.automaticscript.mapper.JdTrialProductMapper;
import com.xmyr.automaticscript.service.IUserService;
import com.xmyr.automaticscript.service.impl.jd.JdTrialProductServiceImpl;
import com.xmyr.automaticscript.service.jd.IJdMallService;
import com.xmyr.automaticscript.service.jd.IJdTrialProductService;
import com.xmyr.automaticscript.service.jpk.IJpkService;
import com.xmyr.automaticscript.utils.JdApplyTrialUtils;
import com.xmyr.automaticscript.vo.jd.JdFreeTrialProductVO;
import com.xmyr.automaticscript.vo.jd.JdTrialProductVO;
import java.io.IOException;
import java.lang.invoke.SerializedLambda;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

@Service
public class JdTrialProductServiceImpl extends ServiceImpl<JdTrialProductMapper, JdTrialProduct> implements IJdTrialProductService {
private static final Logger log = LoggerFactory.getLogger(JdTrialProductServiceImpl.class);

@Value("${spring.profiles.active}")
private String profilesActive;

@Autowired
private JdApplyTrialUtils jdApplyTrialUtils;

@Autowired
private IUserService userService;

@Autowired
private IJpkService jpkService;

@Autowired
@Lazy
private IJdMallService jdMallService;

public Boolean addProduct(JdTrialProductDTO dto) {
    if (!StringUtils.hasText(dto.getSku()))
      return Boolean.valueOf(false);
    LambdaQueryWrapper<JdTrialProduct> jdTrialProductLambdaQueryWrapper = new LambdaQueryWrapper();
    jdTrialProductLambdaQueryWrapper.eq(JdTrialProduct::getSku, dto.getSku());
    List<JdTrialProduct> dbJdTrialProductList = list((Wrapper)jdTrialProductLambdaQueryWrapper);
    if (dbJdTrialProductList.size() > 0) {
      log.info("{}, dto.getSku());
      return Boolean.valueOf(false);
    }
    JdTrialProduct jdTrialProduct = new JdTrialProduct();
    BeanUtils.copyProperties(dto, jdTrialProduct);
    LambdaQueryWrapper<JdTrialProduct> lqw = new LambdaQueryWrapper();
    ((LambdaQueryWrapper)lqw.eq(JdTrialProduct::getFindType, Integer.valueOf(2)))
      .lt(JdTrialProduct::getTrialActivityId, Integer.valueOf(10000));
    lqw.orderByDesc(JdTrialProduct::getTrialActivityId);
    lqw.last(" limit 0,1");
    JdTrialProduct maxJdTrialProduct = (JdTrialProduct)getOne((Wrapper)lqw);
    jdTrialProduct.setTrialActivityId(Long.valueOf(maxJdTrialProduct.getTrialActivityId().longValue() + 1L));
    if (dto.getActivityTimeArr() != null) {
      jdTrialProduct.setActivityStartTime(dto.getActivityTimeArr());
      jdTrialProduct.setActivityEndTime(dto.getActivityTimeArr());
    }
    JSONObject infoJSONObject = this.jdMallService.getInfoBySku(dto.getSku());
    Long shopId = null;
    if (infoJSONObject.containsKey("shopInfo")) {
      JSONObject shopInfoJSONObject = infoJSONObject.getJSONObject("shopInfo");
      if (shopInfoJSONObject.containsKey("shop")) {
      JSONObject shopJSONObject = shopInfoJSONObject.getJSONObject("shop");
      if (shopJSONObject.containsKey("shopId"))
          shopId = shopJSONObject.getLong("shopId");
      }
    }
    jdTrialProduct.setShopInfo("{\"shopId\":" + shopId + "}");
    String skuTitle = "";
    if (infoJSONObject.containsKey("wareInfo")) {
      JSONObject wareInfoJSONObject = infoJSONObject.getJSONObject("wareInfo");
      if (wareInfoJSONObject.containsKey("wname"))
      skuTitle = wareInfoJSONObject.getString("wname");
    }
    jdTrialProduct.setSkuTitle(skuTitle);
    BigDecimal jdPrice = BigDecimal.TEN;
    if (infoJSONObject.containsKey("price")) {
      JSONObject priceJSONObject = infoJSONObject.getJSONObject("price");
      if (priceJSONObject.containsKey("op"))
      jdPrice = priceJSONObject.getBigDecimal("op");
    }
    jdTrialProduct.setJdPrice(jdPrice);
    String skuImgUrl = "";
    if (infoJSONObject.containsKey("wareInfo")) {
      JSONObject wareInfoJSONObject = infoJSONObject.getJSONObject("wareInfo");
      if (wareInfoJSONObject.containsKey("imageurl"))
      skuImgUrl = wareInfoJSONObject.getString("imageurl");
    }
    jdTrialProduct.setSkuImg(skuImgUrl);
    jdTrialProduct.setType(Integer.valueOf(1));
    jdTrialProduct.setFindType(Integer.valueOf(2));
    jdTrialProduct.setActivityType(Integer.valueOf(21));
    jdTrialProduct.setTagList("[]");
    jdTrialProduct.setOrderPriceTip(");
    jdTrialProduct.setApplyState(Integer.valueOf(0));
    jdTrialProduct.setProbability(new BigDecimal(100));
    jdTrialProduct.setCreateTime(new Date());
    jdTrialProduct.setUpdateTime(new Date());
    String materialUrl = "https://item.jd.com/" + dto.getSku() + ".html";
    String goodsLink = this.jpkService.getGoodsLink(materialUrl);
    if (StringUtils.hasText(goodsLink)) {
      jdTrialProduct.setShortUrl(goodsLink);
    } else {
      jdTrialProduct.setShortUrl(materialUrl);
    }
    return Boolean.valueOf(save(jdTrialProduct));
}

public Boolean updateProduct(JdTrialProductDTO dto) {
    JdTrialProduct updateProduct = new JdTrialProduct();
    updateProduct.setId(dto.getId());
    updateProduct.setSkuTitle(dto.getSkuTitle());
    updateProduct.setActivityStartTime(dto.getActivityTimeArr());
    updateProduct.setTrialPrice(dto.getTrialPrice());
    updateProduct.setJdPrice(dto.getJdPrice());
    updateProduct.setSupplyNum(dto.getSupplyNum());
    updateProduct.setNotified(Integer.valueOf(0));
    return Boolean.valueOf(updateById(updateProduct));
}

public String applyFreeTrialProduct(Long userId) throws Exception {
    try {
      User user = (User)this.userService.getById(userId);
      List<JdTrialProduct> jdTrialProductList = listTodayFreeProduct(false);
      int applySuccessNum = 1;
      for (int i = 0; i < jdTrialProductList.size(); i++) {
      String nowDateStr = Constants.DATE_FORMAT.sdf1.format(new Date());
      if (nowDateStr.contains("23:59")) {
          log.info(");
          break;
      }
      Long trialActivityId = ((JdTrialProduct)jdTrialProductList.get(i)).getTrialActivityId();
      this.userService.update((Wrapper)((LambdaUpdateWrapper)(new LambdaUpdateWrapper()).set(User::getStartActivityId, trialActivityId))
            .eq(User::getId, userId));
      String resMsg = this.jdApplyTrialUtils.openBrowerTpApplyJD(trialActivityId, user);
      if (resMsg.contains(") || resMsg.contains("))
          break;
      if (resMsg.contains(")) {
          log.info(");
          break;
      }
      if (StringUtils.hasText(resMsg))
          if (".equals(resMsg)) {
            log.info("{}, Integer.valueOf(applySuccessNum));
            applySuccessNum++;
            if (applySuccessNum == user.getMaxAllowApplyNum().intValue())
            break;
          }
      }
    } catch (Exception e) {
      log.error(e.getMessage());
    }
    return ";
}

public Boolean removeNotActive() {
    LambdaQueryWrapper<JdTrialProduct> lambdaQueryWrapper = new LambdaQueryWrapper();
    ((LambdaQueryWrapper)lambdaQueryWrapper.le(JdTrialProduct::getActivityEndTime, new Date()))
      .eq(JdTrialProduct::getFindType, Integer.valueOf(2));
    return Boolean.valueOf(remove((Wrapper)lambdaQueryWrapper));
}

public List<JdTrialProduct> listJdTrialProductInfoVOByCategoryTabId(Long tabId, Integer maxPage, BigDecimal minJdPrice, BigDecimal maxJdPrice, Integer isOnlyFree) {
    List<JdTrialProduct> jdTrialProductList = new ArrayList<>();
    int page = 1;
    for (int i = 0; i < maxPage.intValue(); i++) {
      String url = "https://api.m.jd.com/client.action?ext=%7B%22prstate%22%3A%220%22%7D&appid=newtry&functionId=try_feedsList&uuid=fd482c4a0dc6a849846f151249441f9594fa7cf7&clientVersion=11.1.4&client=wh5&osVersion=15.0.1&area=12_988_3444_53580&networkType=4g&body=%7B%22tabId%22%3A%22" + tabId + "%22%2C%22page%22%3A" + page + "%2C%22version%22%3A2%2C%22source%22%3A%22default%22%2C%22client%22%3A%22app%22%7D&h5st=" + Constants.DATE_FORMAT.sdf1.format(new Date()) + "%3B0084765139430493%3B8f1e3%3Btk02w8a9b1b8418nVCrtEz5DF9sE88miGRls1IJzdDNTGChpWy3c01VAVnl2%2F1lQmJut3cMQ%2F8sIg%2BnjUaQkzOQ%2BZj3r%3B937d6b4176efb1db74e2fbae1fcb929c23eeb574ad947d4338ec2421dc5e6cf8%3B3.1%3B1659666111050%3B7414c4e56278580a133b60b72a30beb2764d2e61c66a5620e8e838e06644d1bf774833cd07ccf84ad345117cd09f284bd39b17eee6417aff7449c0de8c6d8c5bfff85fb69264c670d2fa3bbbd0a90a6d6e0887e874dffd13173367c8dba73cf8742af60de486571240a32d8db616d7bcd4b603c86e0e2dff44d9cc42883c70960ed81d054af84c477f6875d852891ff9";
      HttpPost httpPost = new HttpPost(url);
      String cookie = "warehistory=\"10042778271669,10046700206773,\"; __jda=122270672.1658218416888975560341.1658218416.1659598034.1659674803.8; __jdv=76161171|baidu|-|organic|notset|1659438126970; shshshfp=d72a89e790cf42f96ba0d98d06799af5; shshshfpa=e0f003bf-b36d-0b71-f734-19510e2caa83-1658218418; shshshfpb=hKtAtVjDZd0i9IEcWC-nk7Q; autoOpenApp_downCloseDate_autoOpenApp_autoPromptly=1658218443471_1; areaId=12; ipLoc-djd=12-988-993-58088; __jdu=1658218416888975560341; PCSYCityID=CN_320000_320500_0; jcap_dvzw_fp=U47RNmXI3XPi9YBsE9lR3E2auyPv9tubV5Tgo-orfdcRVcWnVfhBL2-isJKTutjOWq9lSA==; whwswswws=; TrackID=1lLsQ87UzI00lpQ_Wq-ms5Nig89wnyQxbjT2xeCEAegCu-LoNHcwoWCGSB7XQrdm5VEQkSYV6MXNuJ3DLnaE0ivPTHQ7wm3kDjFzuvlTDz0E3y8udSsUqrruFNpOCx0ys; pinId=HUsE7t77ZfkZXCyUu9WFkrV9-x-f3wj7; pin=jd_7f025329f289e; unick=jd_130834mgl; _tp=rOagJz4aVQr%2BGYo%2BQHOZfZCZTOcmtwKnJJMjKT3X7CM%3D; _pst=jd_7f025329f289e; user-key=33f68cbc-3814-4fc4-bc46-4281a9fb5aeb; unpl=JF8EAKBnNSttURxcUEtVExtES10AWwlaQ0cLaTNQBFxcGwYBTFFMRkN7XlVdXhRKHh9uZBRUVFNIVQ4aBisSEXteV19ZC0oVCmpXNWReWHtVNRsFHxsTS1RRXloBQh4LaWMBU1xaTlQ1KwUbGyB7bVddXAxLHgFsYTVVbVhMVQMZAh4XEEltHzBcRUsQB2ZkBV1YWExdDBIKHRYUTFxWW104SicA; __jdc=122270672; wlfstk_smdl=h2kp3tvfwulat7cfh3qm331zoj6mcu0t; __jdb=122270672.9.1658218416888975560341|8.1659674803; wxa_level=1; retina=1; cid=9; wqmnx1=MDEyNjM5NHMuL2RkczI2NzdwYS4yMmxpUCBsT2w2KGkpL28xaTcyYTNPTyZI; jxsid=16596748117627599547; appCode=ms0ca95114; webp=1; mba_muid=1658218416888975560341; mba_sid=16596748138636610750743361579.7; visitkey=54828158590626066; __wga=1659674861678.1659674818207.1659674818207.1659674818207.3.1; PPRD_P=UUID.1658218416888975560341; jxsid_s_t=1659674861714; jxsid_s_u=https%3A//trade.m.jd.com/order/orderlist_jdm.shtml; shshshsID=34c185e1e58a3176a9770e86854db263_4_1659674861858; sc_width=428; _gia_s_local_fingerprint=517d024fb5324d3fadebe43072b126d9; equipmentId=CSKASYYQKS2KYHOTNTQR6D7UQBB23CT4MUYGYYICYYUCX3S3CMY3REYHB2YZOCBPERI5R54G6RZODNHMGNS5BX3YA4; fingerprint=517d024fb5324d3fadebe43072b126d9; deviceVersion=604.1; deviceOS=ios; deviceOSVersion=14.6; deviceName=Safari; 3AB9D23F7A4B3C9B=CSKASYYQKS2KYHOTNTQR6D7UQBB23CT4MUYGYYICYYUCX3S3CMY3REYHB2YZOCBPERI5R54G6RZODNHMGNS5BX3YA4; TrackerID=iFCIIja6AGpYE6iKeo9ntJvAhucMCwd2Vk2ARVtmVYRQHlye_gCjb8EsZ-vl2OA9ibsNMyOzr4nWmyWEBAfmFks7YQQ80ZRa19nuhcXrWFVGfbp1UaXoMl0ll8bw4Li6vkJPi4cmtSUmJ_X3wqrV9w; pt_key=AAJi7KDmADAyaHotVF_rRzzUZ8fIRf-kywvdN7Td5sLF8gg6GTIDLixOhNj8bmxo3DhYJ4RQn0g; pt_pin=jd_7f025329f289e; pt_token=6ur3flxf; pwdt_id=jd_7f025329f289e; sfstoken=tk01md2081bfaa8sMSszZk1NY2krRuHI0GZbIlythlcamFf7LsAumWai1lHnHoK7JaVzgf+X6cN46F9oV4D8LLOlKA1C; __jd_ref_cls=MOdCenter_OrderList_Tab";
      httpPost.setHeader("Host", "api.m.jd.com");
      httpPost.setHeader("Origin", "https://prodev.m.jd.com");
      httpPost.setHeader("User-Agent", "JD4iPhone/168210%20(iPhone;%20iOS;%20Scale/3.00)");
      httpPost.setHeader("Cookie", cookie);
      try {
      Thread.sleep(1000L);
      CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
      try {
          CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute((HttpUriRequest)httpPost);
          String result = EntityUtils.toString(closeableHttpResponse.getEntity());
          log.info("{}{}{}", new Object[] { tabId, Integer.valueOf(page), result });
          if (StringUtils.hasText(result)) {
            JSONObject resJSONObject = JSONObject.parseObject(result);
            JSONObject dataJSONObject = resJSONObject.getJSONObject("data");
            JSONArray feedListJSONArray = dataJSONObject.getJSONArray("feedList");
            for (int j = 0; j < feedListJSONArray.size(); j++) {
            JSONObject jsonObject = feedListJSONArray.getJSONObject(j);
            log.info("{},{}", tabId, jsonObject.toJSONString());
            JdTrialProduct jdTrialProduct = (JdTrialProduct)jsonObject.toJavaObject(JdTrialProduct.class);
            jdTrialProduct.setCategoryId(tabId);
            if (jdTrialProduct.getType().intValue() == 1) {
                long count = count((Wrapper)(new LambdaUpdateWrapper()).eq(JdTrialProduct::getTrialActivityId, jdTrialProduct.getTrialActivityId()));
                if (count == 0L) {
                  if (jdTrialProduct.getJdPrice() == null)
                  jdTrialProduct.setJdPrice(BigDecimal.valueOf(19.99D));
                  BigDecimal probability = BigDecimal.ONE;
                  if (jdTrialProduct.getApplyNum() != null && jdTrialProduct.getSupplyNum() != null &&
                  jdTrialProduct.getApplyNum().compareTo(BigDecimal.ZERO) > 0) {
                  probability = jdTrialProduct.getSupplyNum().divide(jdTrialProduct.getApplyNum(), 8, RoundingMode.CEILING);
                  probability = (probability.compareTo(new BigDecimal(1)) > 0) ? BigDecimal.ONE : probability;
                  }
                  jdTrialProduct.setProbability(probability.multiply(new BigDecimal(100)));
                  jdTrialProduct.setFindType(Integer.valueOf(1));
                  jdTrialProduct.setCreateTime(new Date());
                  jdTrialProduct.setUpdateTime(jdTrialProduct.getCreateTime());
                  jdTrialProductList.add(jdTrialProduct);
                }
            }
            }
            page++;
          } else {
            break;
          }
      } catch (Exception e) {
          e.printStackTrace();
      }
      } catch (InterruptedException e) {
      throw new RuntimeException(e);
      }
    }
    log.info("{}{}", tabId, Integer.valueOf(jdTrialProductList.size()));
    saveBatch(jdTrialProductList);
    return jdTrialProductList;
}

public JdTrialProduct getByTrialActivityId(Long trialActivityId) {
    return list((Wrapper)(new LambdaUpdateWrapper()).eq(JdTrialProduct::getTrialActivityId, trialActivityId)).get(0);
}

public String getJdInfoByTrialActivityId(Long trialActivityId) {
    String url = "https://api.m.jd.com/client.action?appid=newtry&functionId=try_detail&uuid=16601241231411776677919&clientVersion=&client=wh5&osVersion=&area=&networkType=&body=%7B%22activityId%22%3A%22" + trialActivityId + "%22%7D&h5st=20220810173533280%3B0622150979884267%3Ba8ade%3Btk02wc2f51cd618nkBuXZnhTNlkUfEQWB1l8gCru90u2syCMRI03xppy5jhlPfb%2FBFXTxGaHrgDVzLgFjrezi0SALm8c%3Be6d9a34650d8fa4f96fe782aa087e8df0a2f57fec2f8e6ec33741d6b6cf3e1eb%3B3.1%3B1660124133280%3B24c9ee85e67cf80746dd82817ecbeafc7a829b35c7f446a4c7d476cc9faa1d8810201580cda7d22fa50eeda67865c7825021165847880be0c46815e4cc113b33a01ab28b2bd02fc3c22e1659d97a7cba0ed4567359c00fbed9079680af4bbe3c";
    String cookie = "joyya=1660185327.0.18.1kkfxhx; __jda=122270672.1660184549019537344540.1660184549.1660184549.1660184549.1; __jdb=122270672.4.1660184549019537344540|1.1660184549; __jdv=122270672%7Cdirect%7C-%7Cnone%7C-%7C1660184549019; __jdc=122270672; mba_muid=1660184549019537344540; mba_sid=16601845490192401979169985172.4; b_dw=293; b_dh=1057; b_dpr=1; b_webp=1; b_avif=1; cid=9; shshshfpb=xSK-OFdS0u03qmaLFl9IcJw; autoOpenApp_downCloseDate_auto=1660184549568_1800000";
    HttpGet httpGet = new HttpGet(url);
    try {
      httpGet.setHeader("Accept", "application/json, text/plain, */*");
      httpGet.setHeader("Accept-Encoding", "gzip, deflate, br");
      httpGet.setHeader("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
      httpGet.setHeader("Connection", "keep-alive");
      httpGet.setHeader("Cookie", cookie);
      httpGet.setHeader("Host", "api.m.jd.com");
      httpGet.setHeader("Origin", "https://prodev.m.jd.com");
      httpGet.setHeader("Referer", "https://prodev.m.jd.com/");
      httpGet.setHeader("Sec-Fetch-Dest", "empty");
      httpGet.setHeader("Sec-Fetch-Mode", "cors");
      httpGet.setHeader("Sec-Fetch-Site", "same-site");
      httpGet.setHeader("TE", "trailers");
      httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0");
      HttpEntity httpEntity = HttpClients.createDefault().execute((HttpUriRequest)httpGet).getEntity();
      String result = EntityUtils.toString(httpEntity);
      if (!StringUtils.hasText(result))
      result = getJdInfoByTrialActivityId(trialActivityId);
      return result;
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
}

public String applyByTrialActivityId(Long trialActivityId, Long userId) throws Exception {
    User user = (User)this.userService.getById(userId);
    String msg = this.jdApplyTrialUtils.openBrowerTpApplyJD(trialActivityId, user);
    return msg;
}

public String saveOrUpdateByActivityId(Long trialActivityId) {
    String url = "https://api.m.jd.com/client.action?appid=newtry&functionId=try_detail&uuid=16601241231411776677919&clientVersion=&client=wh5&osVersion=&area=&networkType=&body=%7B%22activityId%22%3A%22" + trialActivityId + "%22%7D&h5st=20220810173533280%3B0622150979884267%3Ba8ade%3Btk02wc2f51cd618nkBuXZnhTNlkUfEQWB1l8gCru90u2syCMRI03xppy5jhlPfb%2FBFXTxGaHrgDVzLgFjrezi0SALm8c%3Be6d9a34650d8fa4f96fe782aa087e8df0a2f57fec2f8e6ec33741d6b6cf3e1eb%3B3.1%3B1660124133280%3B24c9ee85e67cf80746dd82817ecbeafc7a829b35c7f446a4c7d476cc9faa1d8810201580cda7d22fa50eeda67865c7825021165847880be0c46815e4cc113b33a01ab28b2bd02fc3c22e1659d97a7cba0ed4567359c00fbed9079680af4bbe3c";
    String cookie = "joyya=1660185327.0.18.1kkfxhx; __jda=122270672.1660184549019537344540.1660184549.1660184549.1660184549.1; __jdb=122270672.4.1660184549019537344540|1.1660184549; __jdv=122270672%7Cdirect%7C-%7Cnone%7C-%7C1660184549019; __jdc=122270672; mba_muid=1660184549019537344540; mba_sid=16601845490192401979169985172.4; b_dw=293; b_dh=1057; b_dpr=1; b_webp=1; b_avif=1; cid=9; shshshfpb=xSK-OFdS0u03qmaLFl9IcJw; autoOpenApp_downCloseDate_auto=1660184549568_1800000";
    HttpGet httpGet = new HttpGet(url);
    try {
      httpGet.setHeader("Accept", "application/json, text/plain, */*");
      httpGet.setHeader("Accept-Encoding", "gzip, deflate, br");
      httpGet.setHeader("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
      httpGet.setHeader("Connection", "keep-alive");
      httpGet.setHeader("Cookie", cookie);
      httpGet.setHeader("Host", "api.m.jd.com");
      httpGet.setHeader("Origin", "https://prodev.m.jd.com");
      httpGet.setHeader("Referer", "https://prodev.m.jd.com/");
      httpGet.setHeader("Sec-Fetch-Dest", "empty");
      httpGet.setHeader("Sec-Fetch-Mode", "cors");
      httpGet.setHeader("Sec-Fetch-Site", "same-site");
      httpGet.setHeader("TE", "trailers");
      httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0");
      HttpEntity httpEntity = HttpClients.createDefault().execute((HttpUriRequest)httpGet).getEntity();
      String result = EntityUtils.toString(httpEntity);
      if (!StringUtils.hasText(result))
      result = getJdInfoByTrialActivityId(trialActivityId);
      JSONObject resJSONObject = JSONObject.parseObject(result);
      JSONObject dataJSONObject = resJSONObject.getJSONObject("data");
      JdTrialProduct jdTrialProduct = (JdTrialProduct)dataJSONObject.toJavaObject(JdTrialProduct.class);
      jdTrialProduct.setTrialActivityId(dataJSONObject.getLong("activityId"));
      jdTrialProduct.setSkuTitle(dataJSONObject.getString("trialName"));
      jdTrialProduct.setJdPrice(dataJSONObject.getBigDecimal("price"));
      jdTrialProduct.setSku(dataJSONObject.getString("trialSkuId"));
      jdTrialProduct.setActivityType(dataJSONObject.getInteger("activityType"));
      String skuImg = dataJSONObject.getString("largeImage");
      if (StringUtils.hasText(skuImg))
      jdTrialProduct.setSkuImg(skuImg.contains("http") ? skuImg : ("https:" + skuImg));
      jdTrialProduct.setTrialPrice(dataJSONObject.getBigDecimal("orderPrice"));
      jdTrialProduct.setSupplyNum(dataJSONObject.getBigDecimal("supplyCount"));
      jdTrialProduct.setApplyNum(dataJSONObject.getBigDecimal("applyCount"));
      BigDecimal probability = BigDecimal.ONE;
      if (jdTrialProduct.getApplyNum() != null && jdTrialProduct.getSupplyNum() != null &&
      jdTrialProduct.getApplyNum().compareTo(BigDecimal.ZERO) > 0) {
      probability = jdTrialProduct.getSupplyNum().divide(jdTrialProduct.getApplyNum(), 8, RoundingMode.CEILING);
      probability = (probability.compareTo(new BigDecimal(1)) > 0) ? BigDecimal.ONE : probability;
      }
      jdTrialProduct.setProbability(probability.multiply(new BigDecimal(100)));
      jdTrialProduct.setType(Integer.valueOf(1));
      jdTrialProduct.setFindType(Integer.valueOf(2));
      jdTrialProduct.setCreateTime(new Date());
      jdTrialProduct.setUpdateTime(jdTrialProduct.getCreateTime());
      String materialUrl = "https://prodev.m.jd.com/mall/active/3mpGVQDhvLsMvKfZZumWPQyWt83L/index.html?activityId=" + jdTrialProduct.getTrialActivityId() + "&tttparams=JZJoC1eyJncHNfYXJlYSI6IjEyXzk4OF8zNDQ0XzQ4MDE0IiwicHJzdGF0ZSI6IjAiLCJ1bl9hcmVhIjoiMTJfOTg4XzM0NDRfNTM1ODAiLCJkTGF0IjoiIiwiZ0xhdCI6IjMxLjMzODgiLCJnTG5nIjoiMTIwLjc1OSIsImxuZyI6IjEyMC43NTg2MjYiLCJsYXQiOiIzMS4zMzg2MTEiLCJkTG5nIjoiIiwibW9kZWwiOiJpUGhvbmUxMCwzIn60%3D&sid=132f6a3ea9e08790526254be3c59609w&un_area=12_988_3444_53580&_ts=1662251730704&utm_source=iosapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=Wxfriends&ad_od=share&utm_user=plusmember";
      String goodsLink = this.jpkService.getGoodsLink(materialUrl);
      if (StringUtils.hasText(goodsLink)) {
      jdTrialProduct.setShortUrl(goodsLink);
      } else {
      jdTrialProduct.setShortUrl(materialUrl);
      }
      if (jdTrialProduct.getTrialActivityId() != null) {
      JdTrialProduct dbTrialProduct = getByTrialActivityId(trialActivityId);
      if (dbTrialProduct == null) {
          save(jdTrialProduct);
      } else {
          jdTrialProduct.setId(dbTrialProduct.getId());
          updateById(jdTrialProduct);
      }
      }
      return result;
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
}

public String batchApplyOnlyShowByUserId(Long userId) throws Exception {
    int applySuccessNum = 1;
    List<JdTrialProduct> forEachList = new ArrayList<>();
    User user = (User)this.userService.getById(userId);
    if (user == null)
      return ";
    if (user.getNeedLogin().intValue() == 1)
      return ";
    List<JdTrialProduct> allList = list((Wrapper)((LambdaUpdateWrapper)(new LambdaUpdateWrapper()).eq(JdTrialProduct::getFindType, Integer.valueOf(1)))
      .eq(JdTrialProduct::getTrialPrice, BigDecimal.ZERO));
    if (user.getIsSort().intValue() == 0) {
      forEachList = allList;
    } else if (user.getIsSort().intValue() == 1) {
      log.info("{},+ allList.size());
      List<JdTrialProduct> afterSortWaitApplyList = (List<JdTrialProduct>)allList.stream().sorted(Comparator.comparing(JdTrialProduct::getJdPrice).reversed()).collect(Collectors.toList());
      forEachList = afterSortWaitApplyList;
      log.info(");
    }
    for (JdTrialProduct jdTrialProduct : forEachList) {
      if (user.getMaxAllowApplyNum().intValue() <= applySuccessNum)
      break;
      log.info("{}==={}=={}=={},=={}==,{}", new Object[] { jdTrialProduct.getCategoryId(), jdTrialProduct.getSkuTitle(), jdTrialProduct.getJdPrice(), jdTrialProduct.getApplyNum(), jdTrialProduct.getSupplyNum(), jdTrialProduct.getProbability() });
      String resMsg = applyByTrialActivityId(jdTrialProduct.getTrialActivityId(), userId);
      if (resMsg.contains(") || resMsg.contains("))
      break;
      if (resMsg.contains(")) {
      log.info(");
      break;
      }
      if (!StringUtils.hasText(resMsg))
      continue;
      if (".equals(resMsg)) {
      log.info("{}, Integer.valueOf(applySuccessNum));
      applySuccessNum++;
      }
    }
    return "+ applySuccessNum + ";
}

public int syncNewData() {
    int syncNum = 0;
    QueryWrapper<JdTrialProduct> qw = new QueryWrapper();
    qw.select(new String[] { "Max(trial_activity_id) as maxTrialActivityId" });
    Map<String, Object> map = getMap((Wrapper)qw);
    Long maxTrialActivityId = Long.valueOf(Long.valueOf((new StringBuilder()).append(map.get("maxTrialActivityId")).append("").toString()).longValue() + 1L);
    for (int i = 1; i < 150; i++) {
      String info = getJdInfoByTrialActivityId(maxTrialActivityId);
      if (!".equals(info)) {
      JSONObject resJSONObject = JSONObject.parseObject(info);
      JSONObject dataJSONObject = resJSONObject.getJSONObject("data");
      JdTrialProduct jdTrialProduct = (JdTrialProduct)dataJSONObject.toJavaObject(JdTrialProduct.class);
      jdTrialProduct.setTrialActivityId(dataJSONObject.getLong("activityId"));
      jdTrialProduct.setSkuTitle(dataJSONObject.getString("trialName"));
      jdTrialProduct.setJdPrice(dataJSONObject.getBigDecimal("price"));
      jdTrialProduct.setSku(dataJSONObject.getString("trialSkuId"));
      jdTrialProduct.setActivityType(dataJSONObject.getInteger("activityType"));
      String skuImg = dataJSONObject.getString("largeImage");
      if (StringUtils.hasText(skuImg))
          jdTrialProduct.setSkuImg(skuImg.contains("http") ? skuImg : ("https:" + skuImg));
      jdTrialProduct.setTrialPrice(dataJSONObject.getBigDecimal("orderPrice"));
      jdTrialProduct.setSupplyNum(dataJSONObject.getBigDecimal("supplyCount"));
      jdTrialProduct.setApplyNum(dataJSONObject.getBigDecimal("applyCount"));
      BigDecimal probability = BigDecimal.ONE;
      if (jdTrialProduct.getApplyNum() != null && jdTrialProduct.getSupplyNum() != null &&
          jdTrialProduct.getApplyNum().compareTo(BigDecimal.ZERO) > 0) {
          probability = jdTrialProduct.getSupplyNum().divide(jdTrialProduct.getApplyNum(), 8, RoundingMode.CEILING);
          probability = (probability.compareTo(new BigDecimal(1)) > 0) ? BigDecimal.ONE : probability;
      }
      jdTrialProduct.setProbability(probability.multiply(new BigDecimal(100)));
      jdTrialProduct.setType(Integer.valueOf(1));
      jdTrialProduct.setFindType(Integer.valueOf(2));
      jdTrialProduct.setCreateTime(new Date());
      jdTrialProduct.setUpdateTime(jdTrialProduct.getCreateTime());
      String url = "https://prodev.m.jd.com/mall/active/3mpGVQDhvLsMvKfZZumWPQyWt83L/index.html?activityId=" + jdTrialProduct.getTrialActivityId() + "&tttparams=JZJoC1eyJncHNfYXJlYSI6IjEyXzk4OF8zNDQ0XzQ4MDE0IiwicHJzdGF0ZSI6IjAiLCJ1bl9hcmVhIjoiMTJfOTg4XzM0NDRfNTM1ODAiLCJkTGF0IjoiIiwiZ0xhdCI6IjMxLjMzODgiLCJnTG5nIjoiMTIwLjc1OSIsImxuZyI6IjEyMC43NTg2MjYiLCJsYXQiOiIzMS4zMzg2MTEiLCJkTG5nIjoiIiwibW9kZWwiOiJpUGhvbmUxMCwzIn60%3D&sid=132f6a3ea9e08790526254be3c59609w&un_area=12_988_3444_53580&_ts=1662251730704&utm_source=iosapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=Wxfriends&ad_od=share&utm_user=plusmember";
      String goodsLink = this.jpkService.getGoodsLink(url);
      if (StringUtils.hasText(goodsLink)) {
          jdTrialProduct.setShortUrl(goodsLink);
      } else {
          jdTrialProduct.setShortUrl(url);
      }
      if (jdTrialProduct.getTrialActivityId() != null) {
          if (save(jdTrialProduct))
            Long long_1 = maxTrialActivityId, long_2 = maxTrialActivityId = Long.valueOf(maxTrialActivityId.longValue() + 1L);
      } else {
          break;
      }
      }
      syncNum++;
    }
    return syncNum;
}

public Page<JdTrialProductVO> listNotFreeTrialProduct(Page<JdTrialProduct> page, JdTrialProductVO queryVo) {
    Page<JdTrialProductVO> jdTrialProductVOPage = new Page();
    List<JdTrialProductVO> trialProductVOList = new ArrayList<>();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String activityStartTimeStr = queryVo.getActivityStartTimeStr();
    if (!StringUtils.hasText(activityStartTimeStr))
      activityStartTimeStr = sdf.format(new Date());
    try {
      Date date = sdf.parse(activityStartTimeStr);
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      calendar.add(5, 1);
      Date tomDate = calendar.getTime();
      String tomDateStr = sdf.format(tomDate);
      calendar.setTime(new Date());
      calendar.add(12, -5);
      Date beforeTenMinuteDate = calendar.getTime();
      String[] activityStartTimeStrArr = activityStartTimeStr.split("-");
      String[] tomDateStrArr = tomDateStr.split("-");
      LambdaQueryWrapper<JdTrialProduct> lqw = new LambdaQueryWrapper();
      if (StringUtils.hasText(queryVo.getSecretOrder())) {
      lqw.eq(JdTrialProduct::getSecretOrder, queryVo.getSecretOrder());
      } else {
      if (queryVo.getOnlyOne().booleanValue())
          queryVo.setTrialPrice(BigDecimal.ONE);
      List<Integer> activeTypeNotInList = new ArrayList<>();
      activeTypeNotInList.add(Integer.valueOf(1));
      activeTypeNotInList.add(Integer.valueOf(22));
      ((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)lqw.like(StringUtils.hasText(queryVo.getSkuTitle()), JdTrialProduct::getSkuTitle, queryVo.getSkuTitle()))
          .gt(JdTrialProduct::getTrialPrice, BigDecimal.ZERO))
         
          .le((queryVo.getTrialPrice() != null), JdTrialProduct::getTrialPrice, queryVo.getTrialPrice()))
          .le((queryVo.getSupplyNum() != null), JdTrialProduct::getSupplyNum, queryVo.getSupplyNum()))
          .ge((queryVo.getJdPrice() != null), JdTrialProduct::getJdPrice, queryVo.getJdPrice()))
          .ge(JdTrialProduct::getActivityStartTime, beforeTenMinuteDate);
      if ("dev".equals(this.profilesActive)) {
          lqw.notIn(JdTrialProduct::getActivityType, activeTypeNotInList);
      } else {
          lqw.notIn(JdTrialProduct::getActivityType, activeTypeNotInList);
      }
      lqw.eq((queryVo.getNotified() != null), JdTrialProduct::getNotified, queryVo.getNotified());
      lqw.and(q -> (LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)q.likeRight(JdTrialProduct::getActivityStartTime, activityStartTimeStrArr + "-" + activityStartTimeStrArr + "-" + activityStartTimeStrArr)).or()).eq(JdTrialProduct::getActivityStartTime, tomDateStrArr + "-" + tomDateStrArr + "-" + tomDateStrArr + " 00:00:00"));
      ((LambdaQueryWrapper)lqw.orderByAsc(JdTrialProduct::getActivityStartTime))
          .orderByDesc(JdTrialProduct::getJdPrice);
      }
      Page<JdTrialProduct> jdTrialProductPage = (Page<JdTrialProduct>)page((IPage)page, (Wrapper)lqw);
      jdTrialProductPage.getRecords().stream().forEach(jdTrialProduct -> {
            JdTrialProductVO vo = new JdTrialProductVO();
            BeanUtils.copyProperties(jdTrialProduct, vo);
            trialProductVOList.add(vo);
          });
      jdTrialProductVOPage.setRecords(trialProductVOList);
      jdTrialProductVOPage.setTotal(jdTrialProductPage.getTotal());
      jdTrialProductVOPage.setCurrent(jdTrialProductPage.getCurrent());
      jdTrialProductVOPage.setPages(jdTrialProductPage.getPages());
    } catch (ParseException e) {
      throw new RuntimeException(e);
    }
    return jdTrialProductVOPage;
}

public JdTrialProductVO getNewest() throws Exception {
    JdTrialProductVO jdTrialProductVO = new JdTrialProductVO();
    LambdaQueryWrapper<JdTrialProduct> lwq = new LambdaQueryWrapper();
    lwq.orderByDesc(JdTrialProduct::getTrialActivityId);
    lwq.last(" LIMIT 0,1");
    JdTrialProduct jdTrialProduct = (JdTrialProduct)getOne((Wrapper)lwq);
    BeanUtils.copyProperties(jdTrialProduct, jdTrialProductVO);
    return jdTrialProductVO;
}

public void updateDbData() {
    LambdaQueryWrapper<JdTrialProduct> lqw = new LambdaQueryWrapper();
    lqw.isNull(JdTrialProduct::getActivityType);
    list((Wrapper)lqw).stream().forEach(jdTrialProduct -> {
          JdTrialProduct update = new JdTrialProduct();
          String info = getJdInfoByTrialActivityId(jdTrialProduct.getTrialActivityId());
          JSONObject resJSONObject = JSONObject.parseObject(info);
          JSONObject dataJSONObject = resJSONObject.getJSONObject("data");
          update.setId(jdTrialProduct.getId());
          update.setActivityType(dataJSONObject.getInteger("activityType"));
          updateById(update);
      });
}

public Page<JdFreeTrialProductVO> pageFreeTrialProduct(Page<JdTrialProduct> page, Long userId, JdFreeTrialProductVO queryVO) {
    Page<JdFreeTrialProductVO> jdFreeTrialProductVOPage = new Page();
    List<JdFreeTrialProductVO> jdFreeTrialProductVOList = new ArrayList<>();
    Calendar calendar = Calendar.getInstance();
    calendar.add(5, 1);
    String addOneDateStr = Constants.DATE_FORMAT.sdf0.format(calendar.getTime());
    String[] addOneDateStrArr = addOneDateStr.split(" ");
    LambdaQueryWrapper<JdTrialProduct> lqw = new LambdaQueryWrapper();
    ((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)lqw.like(StringUtils.hasText(queryVO.getSkuTitle()), JdTrialProduct::getSkuTitle, queryVO.getSkuTitle()))
      .le((queryVO.getApplyNum() != null), JdTrialProduct::getApplyNum, queryVO.getApplyNum()))
      .eq(JdTrialProduct::getActivityType, Integer.valueOf(1)))
      
      .le(JdTrialProduct::getActivityStartTime, new Date()))
      .gt(JdTrialProduct::getActivityEndTime, new Date()))
      .lt(JdTrialProduct::getActivityEndTime, addOneDateStrArr + " 00:40:00");
    if (queryVO.getIsApplyNumAsc().booleanValue()) {
      lqw.orderByAsc(JdTrialProduct::getApplyNum);
    } else if (queryVO.getIsProbabilityDesc().booleanValue()) {
      lqw.orderByDesc(JdTrialProduct::getProbability);
    } else {
      ((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)lqw.orderByAsc(JdTrialProduct::getApplyState))
      .orderByAsc(JdTrialProduct::getActivityEndTime))
      .orderByDesc(JdTrialProduct::getJdPrice))
      .orderByAsc(JdTrialProduct::getTrialPrice);
    }
    Page<JdTrialProduct> jdTrialProductPage = (Page<JdTrialProduct>)page((IPage)page, (Wrapper)lqw);
    jdTrialProductPage.getRecords().stream().forEach(jdTrialProduct -> {
          JdFreeTrialProductVO vo = new JdFreeTrialProductVO();
          BeanUtils.copyProperties(jdTrialProduct, vo);
          User user = (User)this.userService.getById(userId);
         // if (user.getEndTime().before(new Date()))
          //vo.setShortUrl("https://www.baidu.com");
          jdFreeTrialProductVOList.add(vo);
      });
    jdFreeTrialProductVOPage.setRecords(jdFreeTrialProductVOList);
    jdFreeTrialProductVOPage.setTotal(jdTrialProductPage.getTotal());
    jdFreeTrialProductVOPage.setCurrent(jdTrialProductPage.getCurrent());
    jdFreeTrialProductVOPage.setPages(jdTrialProductPage.getPages());
    return jdFreeTrialProductVOPage;
}

public Long getDelayTime(Long trialActivityId) {
    String url = "https://api.m.jd.com/client.action?appid=newtry&functionId=try_detail&uuid=16601241231411776677919&clientVersion=&client=wh5&osVersion=&area=&networkType=&body=%7B%22activityId%22%3A%22" + trialActivityId + "%22%7D&h5st=20220810173533280%3B0622150979884267%3Ba8ade%3Btk02wc2f51cd618nkBuXZnhTNlkUfEQWB1l8gCru90u2syCMRI03xppy5jhlPfb%2FBFXTxGaHrgDVzLgFjrezi0SALm8c%3Be6d9a34650d8fa4f96fe782aa087e8df0a2f57fec2f8e6ec33741d6b6cf3e1eb%3B3.1%3B1660124133280%3B24c9ee85e67cf80746dd82817ecbeafc7a829b35c7f446a4c7d476cc9faa1d8810201580cda7d22fa50eeda67865c7825021165847880be0c46815e4cc113b33a01ab28b2bd02fc3c22e1659d97a7cba0ed4567359c00fbed9079680af4bbe3c";
    String cookie = "joyya=1660185327.0.18.1kkfxhx; __jda=122270672.1660184549019537344540.1660184549.1660184549.1660184549.1; __jdb=122270672.4.1660184549019537344540|1.1660184549; __jdv=122270672%7Cdirect%7C-%7Cnone%7C-%7C1660184549019; __jdc=122270672; mba_muid=1660184549019537344540; mba_sid=16601845490192401979169985172.4; b_dw=293; b_dh=1057; b_dpr=1; b_webp=1; b_avif=1; cid=9; shshshfpb=xSK-OFdS0u03qmaLFl9IcJw; autoOpenApp_downCloseDate_auto=1660184549568_1800000";
    HttpGet httpGet = new HttpGet(url);
    try {
      httpGet.setHeader("Accept", "application/json, text/plain, */*");
      httpGet.setHeader("Accept-Encoding", "gzip, deflate, br");
      httpGet.setHeader("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
      httpGet.setHeader("Connection", "keep-alive");
      httpGet.setHeader("Cookie", cookie);
      httpGet.setHeader("Host", "api.m.jd.com");
      httpGet.setHeader("Origin", "https://prodev.m.jd.com");
      httpGet.setHeader("Referer", "https://prodev.m.jd.com/");
      httpGet.setHeader("Sec-Fetch-Dest", "empty");
      httpGet.setHeader("Sec-Fetch-Mode", "cors");
      httpGet.setHeader("Sec-Fetch-Site", "same-site");
      httpGet.setHeader("TE", "trailers");
      httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0");
      HttpEntity httpEntity = HttpClients.createDefault().execute((HttpUriRequest)httpGet).getEntity();
      String result = EntityUtils.toString(httpEntity);
      if (!StringUtils.hasText(result))
      result = getJdInfoByTrialActivityId(trialActivityId);
      JSONObject resJSONObject = JSONObject.parseObject(result);
      JSONObject dataJSONObject = resJSONObject.getJSONObject("data");
      if (dataJSONObject == null || !dataJSONObject.containsKey("nowTime")) {
      log.info(");
      return Long.valueOf(0L);
      }
      Long jdNowTime = dataJSONObject.getLong("nowTime");
      return Long.valueOf((new Date()).getTime() - jdNowTime.longValue());
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
}

public List<JdTrialProduct> listTodayFreeProduct(boolean isUpdate) {
    Calendar calendar = Calendar.getInstance();
    calendar.add(5, 1);
    String addOneDateStr = Constants.DATE_FORMAT.sdf0.format(calendar.getTime());
    String[] addOneDateStrArr = addOneDateStr.split(" ");
    LambdaQueryWrapper<JdTrialProduct> lqw = new LambdaQueryWrapper();
    if (isUpdate)
      lqw.and(q -> (LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)q.isNull(JdTrialProduct::getApplyNum)).or()).le(JdTrialProduct::getApplyNum, Integer.valueOf(100)));
    ((LambdaQueryWrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)lqw.eq(JdTrialProduct::getActivityType, Integer.valueOf(1)))
      .le(JdTrialProduct::getActivityStartTime, new Date()))
      .gt(JdTrialProduct::getActivityEndTime, new Date()))
      
      .lt(JdTrialProduct::getActivityEndTime, addOneDateStrArr + " 00:40:00");
    ((LambdaQueryWrapper)((LambdaQueryWrapper)lqw.orderByAsc(JdTrialProduct::getApplyState))
      .orderByDesc(JdTrialProduct::getJdPrice))
      .orderByAsc(JdTrialProduct::getTrialPrice);
    List<JdTrialProduct> jdTrialProductList = list((Wrapper)lqw);
    log.info("{}", Integer.valueOf(jdTrialProductList.size()));
    return jdTrialProductList;
}

public void updateTodayFreeProduct() {
    listTodayFreeProduct(true).stream().forEach(jdTrialProduct -> saveOrUpdateByActivityId(jdTrialProduct.getTrialActivityId()));
}

public List<JdTrialProductVO> listZDYProduct(JdTrialProductVO queryVo) {
    List<JdTrialProductVO> jdTrialProductVOList = new ArrayList<>();
    List<JdTrialProduct> jdTrialProductList = list((Wrapper)((LambdaQueryWrapper)((LambdaQueryWrapper)(new LambdaQueryWrapper())
      .eq(JdTrialProduct::getOrderPriceTip, "))
      .like(StringUtils.hasText(queryVo.getSku()), JdTrialProduct::getSku, queryVo.getSku()))
      .like(StringUtils.hasText(queryVo.getSkuTitle()), JdTrialProduct::getSkuTitle, queryVo.getSkuTitle()));
    jdTrialProductList.stream().forEach(jdTrialProduct -> {
          JdTrialProductVO jdTrialProductVO = new JdTrialProductVO();
          BeanUtils.copyProperties(jdTrialProduct, jdTrialProductVO);
          jdTrialProductVO.setActivityTimeArr(new Date[] { jdTrialProduct.getActivityStartTime(), jdTrialProduct.getActivityEndTime() });
          jdTrialProductVOList.add(jdTrialProductVO);
      });
    return jdTrialProductVOList;
}
}


这样?

0Ling0 发表于 2023-2-1 18:56

Anima-No 发表于 2023-2-1 18:51
这个class文件可以给我不

给不了啊,你这调用了其他包类,编译通不过,既然你都有整个项目再编译一遍就行了

Anima-No 发表于 2023-2-1 18:59

清风不语 发表于 2023-2-1 18:56
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject ...

要编译成一个class文件,老哥

Anima-No 发表于 2023-2-1 19:04

清风不语 发表于 2023-2-1 18:56
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject ...

可以给class文件不。不然我在idea可以看到代码,就是不能修改
页: [1] 2
查看完整版本: java的war包反编译修改求助