facade-goods/src/main/java/com/yeshi/goods/facade/utils/taobao/DaTaoKeApiUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5S11Controller.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
utils/src/main/java/org/yeshi/utils/CMQUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
utils/src/main/java/org/yeshi/utils/mybatis/ColumnParseUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
utils/src/test/java/com/yeshi/utils/MyBatisTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
facade-goods/src/main/java/com/yeshi/goods/facade/utils/taobao/DaTaoKeApiUtil.java
@@ -109,6 +109,25 @@ } } private static InputStream baseGetForStream(String url, Map<String, String> params) { HttpClient client = new HttpClient(); try { Iterator<String> keys = params.keySet().iterator(); String key; for (url = url + "?"; keys.hasNext(); url = url + String.format("%s=%s&", key, URLEncoder.encode((String) params.get(key), "UTF-8"))) { key = keys.next(); } GetMethod method = new GetMethod(url); client.executeMethod(method); InputStream inputStream = method.getResponseBodyAsStream(); return inputStream; } catch (Exception var7) { var7.printStackTrace(); return null; } } private static String request(String url) { String result = null; @@ -625,7 +644,7 @@ TaoKeAppInfo app = getRandomApp(); DaTaoKeGoodsResult daTaoKeGoodsResult = new DaTaoKeGoodsResult(); Map<String, String> params = new TreeMap<>(); params.put("version", "v1.1.0"); params.put("version", "v1.3.0"); params.put("appKey", app.getAppKey()); params.put("rankType", type + ""); if (cid != null) @@ -637,17 +656,6 @@ result = baseGet("https://openapi.dataoke.com/api/goods/get-ranking-list", params); } catch (Exception e) { result = baseGet("https://openapi.dataoke.com/api/goods/get-ranking-list", params); } try { // System.out.println("GBK:"+new String(result.getBytes("GBK"),"UTF-8")); // System.out.println("ISO-8859-1:"+new String(result.getBytes("ISO-8859-1"),"UTF-8")); // System.out.println("GB2312:"+new String(result.getBytes("GB2312"),"UTF-8")); result = new String(result.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } JSONObject json = JSONObject.fromObject(result); @@ -836,4 +844,30 @@ } return daTaoKeGoodsResult; } /** * 解析淘口令 * * @param content * @return */ public static Long parseTaoBaoToken(String content) { TaoKeAppInfo app = getRandomApp(); Map<String, String> params = new TreeMap<>(); params.put("version", "v1.0.0"); params.put("appKey", app.getAppKey()); params.put("content", content); params.put("sign", getSign(params, app.getAppSecret())); String result = baseGet("https://openapi.dataoke.com/api/tb-service/parse-taokouling", params); System.out.println(result); JSONObject resultObj = JSONObject.fromObject(result); if (resultObj.optInt("code") == 0) { String goodsId = resultObj.optJSONObject("data").optString("goodsId"); if (!StringUtil.isNullOrEmpty(goodsId)) { return Long.parseLong(goodsId); } } return null; } } fanli/src/main/java/com/yeshi/fanli/controller/h5/H5S11Controller.java
@@ -41,9 +41,9 @@ /** * 获取超级红包分享口令 * * @param acceptData * @param sign * @param uid * @param callback * @param out */ @RequestMapping(value = "getSuperHongBaoToken") @@ -70,7 +70,7 @@ if (StringUtil.isNullOrEmpty(token)) { try { TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert("19507100253", "20150318020001156", info.getRelationId()); "20150318020002508", info.getRelationId()); String link = dto.getClick_url(); if (!StringUtil.isNullOrEmpty(link)) { @@ -125,7 +125,7 @@ if (StringUtil.isNullOrEmpty(token)) { try { TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert("19507100253", "20150318020001158", info.getRelationId()); "20150318020002508", info.getRelationId()); String link = dto.getClick_url(); if (!StringUtil.isNullOrEmpty(link)) { token = TaoKeApiUtil.getTKToken("http://img.flqapp.com/resource/s11/banner.jpg", "预售商品付定金,得奖金!", fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -11,6 +11,7 @@ import javax.annotation.Resource; import com.yeshi.goods.facade.utils.taobao.DaTaoKeApiUtil; import org.springframework.stereotype.Component; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.NumberUtil; @@ -54,7 +55,6 @@ * 粘贴板解析 * * @author Administrator * */ @Component public class ClipboardAnalysisManager { @@ -119,7 +119,6 @@ } /** * * @Title: parse @Description: 解析 @param text @param typeSet void * 返回类型 @throws */ @@ -144,6 +143,18 @@ } return; } //优先解析淘口令 Long goodsId = DaTaoKeApiUtil.parseTaoBaoToken(text); if (goodsId != null) { CommonGoods commonGoods = getTaoBaoGoods(goodsId); if (commonGoods != null) resultListener.onResult(commonGoods); else resultListener.onResult(text); return; } // 只有链接 淘宝链接/京东链接/拼多多链接 if (typeSet.size() == 1) { @@ -335,7 +346,6 @@ } /** * * @Title: parseLink @Description: 解析单链接 @param link @return CommonGoods * 返回类型 @throws */ @@ -537,6 +547,13 @@ private CommonGoods parseTaoBaoToken(String token) throws TaoBaoTokenParseException { Long auctionId = taoBaoTokenAuctionIdMapManager.getAuctionIdByToken(token); if (auctionId != null) {// return getTaoBaoGoods(auctionId); } else { return null; } } private CommonGoods getTaoBaoGoods(Long auctionId) { TaoBaoGoodsBrief goods = TaoBaoUtil.isAlimama(auctionId + ""); if (goods == null) { goods = TaoBaoUtil.getTaoBaoGoodsBriefNotInPub(auctionId); @@ -546,13 +563,9 @@ return commonGoods; } else return null; } else { return null; } } /** * * @Title: analysisDouYin @Description: 抖音解析 @param link @return CommonGoods * 返回类型 @throws */ @@ -622,5 +635,4 @@ * 粘贴板解析结果 * * @author Administrator * */ fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -2021,6 +2021,8 @@ try { JSONObject json = TaoKeBaseUtil.baseRequest(map, app); System.out.println(json.toString()); try { return json.optJSONObject("tbk_tpwd_convert_response").optJSONObject("data").optLong("num_iid"); } catch (Exception e) { utils/src/main/java/org/yeshi/utils/CMQUtil.java
@@ -8,6 +8,7 @@ import com.qcloud.cmq.Queue; import com.qcloud.cmq.QueueMeta; import com.qcloud.cmq.Topic; import org.springframework.data.annotation.Transient; //腾讯CMQ消息 public class CMQUtil { utils/src/main/java/org/yeshi/utils/mongo/MongoDaoUtil.java
@@ -1,6 +1,8 @@ package org.yeshi.utils.mongo; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.yeshi.utils.entity.wx.WXAPPInfo; @@ -41,19 +43,31 @@ List<Field> fields = getValidField(clz); StringBuilder builder = new StringBuilder(); builder.append(String.format("void updateSelective(%s bean){\r\n", clz.getSimpleName())); builder.append(String.format("public void updateSelective(%s bean) {\r\n", clz.getSimpleName())); builder.append(" Query query = new Query();\r\n"); builder.append(" query.addCriteria(Criteria.where(\"id\").is(bean.getId()));\r\n"); builder.append(" Update update=new Update();\r\n"); for (Field f : fields) { if ("id".equalsIgnoreCase(f.getName()) || "createTime".equalsIgnoreCase(f.getName())) continue; if (f.getModifiers() == 25) {//public final static修饰 continue; } String getMethod = String.format("bean.get%s()", f.getName().substring(0, 1).toUpperCase() + f.getName().substring(1)); if (f.getName().equalsIgnoreCase("updateTime")) { builder.append(String.format(" update.set(\"%s\", %s);\r\n", f.getName(), "new Date()")); } else { builder.append(String.format(" if(%s!=null){\r\n", getMethod)); builder.append(String.format(" update.set(\"%s\",%s)\r\n", f.getName(), getMethod)); builder.append(String.format(" update.set(\"%s\", %s);\r\n", f.getName(), f.getName().equalsIgnoreCase("updateTime") ? "new Date()" : getMethod)); builder.append(" }\r\n"); } } builder.append(" update(query, update);\r\n"); builder.append("}"); System.out.println(builder.toString()); return builder.toString(); } utils/src/main/java/org/yeshi/utils/mybatis/ColumnParseUtil.java
@@ -1,21 +1,69 @@ package org.yeshi.utils.mybatis; import org.springframework.data.annotation.Transient; import java.lang.annotation.Annotation; import java.lang.reflect.Field; public class ColumnParseUtil { /** * 将属性转为数据库字段 * * @param fieldName * @return */ private static String convertFieldToColumn(String fieldName) { String column = ""; for (int i = 0; i < fieldName.length(); i++) { //大写字母 if (fieldName.charAt(i) >= 65 && fieldName.charAt(i) <= 90) { //前面一个为非大写 if (i > 0 && (fieldName.charAt(i - 1) < 65 || fieldName.charAt(i - 1) > 90)) { column += "_" + fieldName.charAt(i); } else { column += fieldName.charAt(i); } } else { column += fieldName.charAt(i); } } return column.toLowerCase(); } public static void parseColumn(Class<?> clz, String path) { Field[] fields = clz.getDeclaredFields(); for (Field fd : fields) { //private/public 非final,static属性才会参与解析 if (fd.getModifiers() != 1 && fd.getModifiers() != 2) { continue; } String columName = convertFieldToColumn(fd.getName()); Annotation[] as = fd.getAnnotations(); for (Annotation a : as) { //不参与解析 if (a instanceof Column) { Column c = (Column) a; System.out.println(c.name()); ColumnUtil.addColumnToMapper(path, c.name(), fd.getName(), getJDBCType(fd.getType().getName())); columName = c.name(); } } for (Annotation a : as) { //不参与解析 if (a instanceof Transient || a instanceof java.beans.Transient) { columName = null; break; } } if (columName != null) { ColumnUtil.addColumnToMapper(path, columName, fd.getName(), getJDBCType(fd.getType().getName())); } } } utils/src/test/java/com/yeshi/utils/MyBatisTest.java
New file @@ -0,0 +1,305 @@ package com.yeshi.utils; import org.springframework.data.annotation.Transient; import org.yeshi.utils.mybatis.Column; import org.yeshi.utils.mybatis.MyBatisMapperUtil; import org.yeshi.utils.mybatis.Table; import java.util.Date; public class MyBatisTest { public static void main(String[] args) { MyBatisMapperUtil.createMapper(TestBean.class); } @Table("test") class TestBean { //未提交审核 public final static int STATE_NOT_SUBMIT_VERIFY = -2; //审核被拒绝 public final static int STATE_VERIFY_REJECT = -1; //等待审核 public final static int STATE_WAITING_VERIFY = 0; //审核通过,未发布 public final static int STATE_NOT_PUBLISH = 1; //已经开始,强制结束 public final static int STATE_FOUCE_FINISH = 2; //已发布,未开始 public final static int STATE_NOT_STARTED = 10; //已经开始 public final static int STATE_STARTED = 20; //已经结束,等待预开奖 public final static int STATE_FINISH = 30; //已开奖,等待显示 public final static int STATE_PRE_OPENED = 40; //已开奖,已经显示 public final static int STATE_OPENED = 41; private Long id; private Long appId; private Long sponsorId; private String name; private String materialPoster; private String materialTagImage; private String material; private String desc; /** * 最大人数 */ private Integer maxPersonCount; /** * 现有人数 */ @Column(name = "current_person_count") private Integer currentPersonCount; @Column(name = "`state`") private Integer state; @Column(name = "state_remarks") private String stateRemarks; @Column(name = "pre_start_time") private Date preStartTime; @Column(name = "actual_start_time") private Date actualStartTime; @Column(name = "pre_finish_time") private Date preFinishTime; @Column(name = "actual_finish_time") private Date actualFinishTime; @Column(name = "pre_open_time") private Date preOpenTime; @Column(name = "actual_open_time") private Date actualOpenTime; @Column(name = "create_time") private Date createTime; @Column(name = "update_time") private Date updateTime; @Transient //奖项列表 private String awardsList; @Transient //赞助信息 private String sponsorInfo; @Transient //开奖信息 private String openInfo; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getAppId() { return appId; } public void setAppId(Long appId) { this.appId = appId; } public Long getSponsorId() { return sponsorId; } public void setSponsorId(Long sponsorId) { this.sponsorId = sponsorId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMaterialPoster() { return materialPoster; } public void setMaterialPoster(String materialPoster) { this.materialPoster = materialPoster; } public String getMaterialTagImage() { return materialTagImage; } public void setMaterialTagImage(String materialTagImage) { this.materialTagImage = materialTagImage; } public String getMaterial() { return material; } public void setMaterial(String material) { this.material = material; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public Integer getMaxPersonCount() { return maxPersonCount; } public void setMaxPersonCount(Integer maxPersonCount) { this.maxPersonCount = maxPersonCount; } public Integer getCurrentPersonCount() { return currentPersonCount; } public void setCurrentPersonCount(Integer currentPersonCount) { this.currentPersonCount = currentPersonCount; } public Integer getState() { return state; } public void setState(Integer state) { this.state = state; } public String getStateRemarks() { return stateRemarks; } public void setStateRemarks(String stateRemarks) { this.stateRemarks = stateRemarks; } public Date getPreStartTime() { return preStartTime; } public void setPreStartTime(Date preStartTime) { this.preStartTime = preStartTime; } public Date getActualStartTime() { return actualStartTime; } public void setActualStartTime(Date actualStartTime) { this.actualStartTime = actualStartTime; } public Date getPreFinishTime() { return preFinishTime; } public void setPreFinishTime(Date preFinishTime) { this.preFinishTime = preFinishTime; } public Date getActualFinishTime() { return actualFinishTime; } public void setActualFinishTime(Date actualFinishTime) { this.actualFinishTime = actualFinishTime; } public Date getPreOpenTime() { return preOpenTime; } public void setPreOpenTime(Date preOpenTime) { this.preOpenTime = preOpenTime; } public Date getActualOpenTime() { return actualOpenTime; } public void setActualOpenTime(Date actualOpenTime) { this.actualOpenTime = actualOpenTime; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public String getAwardsList() { return awardsList; } public void setAwardsList(String awardsList) { this.awardsList = awardsList; } public String getSponsorInfo() { return sponsorInfo; } public void setSponsorInfo(String sponsorInfo) { this.sponsorInfo = sponsorInfo; } public String getOpenInfo() { return openInfo; } public void setOpenInfo(String openInfo) { this.openInfo = openInfo; } } }