From be67478cae6bf9308f15949a21e7d0a57a3f0ecb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 16 七月 2020 15:37:31 +0800
Subject: [PATCH] dubbo集成修改
---
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java | 460 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 318 insertions(+), 142 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
index edca3b6..1c274fc 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
@@ -3,9 +3,12 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
+import java.math.BigDecimal;
import java.security.SignatureException;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -14,192 +17,365 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.yeshi.fanli.entity.SystemEnum;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.taobao.TbImgUtil;
import org.yeshi.utils.wx.WXUtil;
import com.aliyun.openservices.ons.api.Message;
-import com.aliyun.openservices.ons.api.Producer;
-import com.google.gson.Gson;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
-import com.yeshi.fanli.dto.push.PushContentDTO;
+import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser;
+import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
-import com.yeshi.fanli.entity.config.push.PushMsgFactory;
+import com.yeshi.fanli.entity.dynamic.ImgInfo;
+import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
+import com.yeshi.fanli.entity.dynamic.SimpleGoods;
+import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.shop.BanLiShopOrder;
-import com.yeshi.fanli.exception.push.PushException;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.activity.ActivityUserService;
import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
+import com.yeshi.fanli.service.manger.msg.RocketMQManager;
+import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import com.yeshi.fanli.util.shop.BanLiShopOrderUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil;
+import com.yeshi.fanli.vo.goods.CouponInfoVO;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
- *
- *
* @author Administrator
- *
*/
@Controller
@RequestMapping("client/v1/callback")
public class CallBackController {
- @Resource
- private ConfigService configService;
+ @Resource
+ private ConfigService configService;
- @Resource
- private PushService pushService;
+ @Resource
+ private PushService pushService;
- @Resource
- private MsgDeviceReadStateService msgDeviceReadStateService;
+ @Resource
+ private MsgDeviceReadStateService msgDeviceReadStateService;
- @Resource(name = "producer")
- private Producer producer;
+ @Resource
+ private RocketMQManager rocketMQManager;
- @Resource
- private BanLiShopOrderService banLiShopOrderService;
+ @Resource
+ private BanLiShopOrderService banLiShopOrderService;
- /**
- * 瀹㈡湇娑堟伅鍥炶皟
- *
- * @param response
- */
- @RequestMapping(value = "kefuMsg")
- public void kefuMsg(HttpServletResponse response) {
+ @Resource
+ private GoodsEvaluateService goodsEvaluateService;
- }
+ @Resource
+ private HongBaoManageService hongBaoManageService;
- /**
- * 缇庢唇娑堟伅鍥炶皟
- *
- * @param response
- */
+ @Resource
+ private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
- @RequestMapping(value = "meiQia")
- public void meiQia(HttpServletRequest request, HttpServletResponse response) {
- String auth = request.getHeader("Authorization");
- String queryString = request.getQueryString();
- LogHelper.test("缇庢唇:queryString-" + queryString + "-auth:" + auth);
+ @Resource
+ private ActivityUserService activityUserService;
- BufferedReader br = null;
- StringBuilder sb = new StringBuilder("");
- try {
- br = request.getReader();
- String str;
- while ((str = br.readLine()) != null) {
- sb.append(str);
- }
- br.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
+ @Resource
+ private UserCloudService userCloudService;
- LogHelper.test("缇庢唇:body----" + sb.toString());
+ /**
+ * 瀹㈡湇娑堟伅鍥炶皟
+ *
+ * @param response
+ */
+ @RequestMapping(value = "kefuMsg")
+ public void kefuMsg(HttpServletResponse response) {
- String sign = "";
- try {
- sign = sign(sb.toString());
- } catch (SignatureException e) {
- e.printStackTrace();
- }
+ }
- if (!auth.equalsIgnoreCase(sign)) {
- LogHelper.test("缇庢唇鍥炶皟绛惧悕閿欒");
- return;
- }
- JSONObject json = JSONObject.fromObject(sb.toString());
- String msg = "";
- if (json != null) {
- String deviceOS = json.optString("deviceOS");
- String contentType = json.optString("contentType");
- if (contentType.equalsIgnoreCase("text"))
- msg = json.optString("content");
- else if (contentType.equalsIgnoreCase("photo"))
- msg = "[鍥剧墖]";
- else if (contentType.equalsIgnoreCase("audio"))
- msg = "[璇煶]";
- String customizedId = json.optJSONObject("customizedData").optString("璁惧鏍囪瘑");
- String uid = json.optJSONObject("customizedData").optString("鐢ㄦ埛ID");
- msgDeviceReadStateService.addUnreadDeviceMsg(MsgDeviceReadState.TYPE_KEFU, customizedId,
- "android".equalsIgnoreCase(deviceOS) ? 1 : 2, 1, msg, new Date());
- if (!StringUtil.isNullOrEmpty(uid))// 鎺ㄩ�佸鏈嶆秷鎭�
- {
- PushContentDTO dto = PushMsgFactory.createMsgKefu();
- try {
- pushService.pushZNX(Long.parseLong(uid), dto.getTitle(), dto.getContent(), null, null);
- } catch (NumberFormatException e) {
- e.printStackTrace();
- } catch (PushException e) {
- e.printStackTrace();
- }
- }
- }
+ /**
+ * 缇庢唇娑堟伅鍥炶皟
+ *
+ * @param response
+ */
- }
+ @RequestMapping(value = "meiQia")
+ public void meiQia(HttpServletRequest request, HttpServletResponse response) {
+ String auth = request.getHeader("Authorization");
+ String queryString = request.getQueryString();
+ LogHelper.test("缇庢唇:queryString-" + queryString + "-auth:" + auth);
- public String sign(String raw_body) throws java.security.SignatureException {
- String key = "$2a$12$uC3EG/zSaSI37KKOgt1IgetDRHJY6Q2zEVDBr0DeWcwQbGNU7pewy";
- String result = "";
- try {
- SecretKeySpec signingKey = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA1");
- Mac mac = Mac.getInstance("HmacSHA1");
- mac.init(signingKey);
- byte[] rawHmac = mac.doFinal(raw_body.getBytes("UTF-8"));
- byte[] hexBytes = new org.apache.commons.codec.binary.Hex().encode(rawHmac);
- result = org.apache.commons.codec.binary.Base64.encodeBase64String(hexBytes).trim();
- } catch (Exception e) {
- throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
- }
- return "meiqia_sign:" + result;
- }
+ BufferedReader br = null;
+ StringBuilder sb = new StringBuilder("");
+ try {
+ br = request.getReader();
+ String str;
+ while ((str = br.readLine()) != null) {
+ sb.append(str);
+ }
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
- @RequestMapping(value = "test")
- public void test(PrintWriter out) {
- configService.getConfig(1L);
- out.print("success");
- }
+ LogHelper.test("缇庢唇:body----" + sb.toString());
- @RequestMapping(value = "vip")
- public void VIP(PrintWriter out) {
- out.print("success");
- }
+ String sign = "";
+ try {
+ sign = sign(sb.toString());
+ } catch (SignatureException e) {
+ e.printStackTrace();
+ }
- @RequestMapping(value = "banlishop/pay")
- public void banLiShopPay(HttpServletRequest request, PrintWriter out) {
+ if (!auth.equalsIgnoreCase(sign)) {
+ LogHelper.test("缇庢唇鍥炶皟绛惧悕閿欒");
+ return;
+ }
+ JSONObject json = JSONObject.fromObject(sb.toString());
+ String msg = "";
+ if (json != null) {
+ String deviceOS = json.optString("deviceOS");
+ String contentType = json.optString("contentType");
+ if (contentType.equalsIgnoreCase("text"))
+ msg = json.optString("content");
+ else if (contentType.equalsIgnoreCase("photo"))
+ msg = "[鍥剧墖]";
+ else if (contentType.equalsIgnoreCase("audio"))
+ msg = "[璇煶]";
+ String customizedId = json.optJSONObject("customizedData").optString("璁惧鏍囪瘑");
+ String uid = json.optJSONObject("customizedData").optString("鐢ㄦ埛ID");
+ msgDeviceReadStateService.addUnreadDeviceMsg(MsgDeviceReadState.TYPE_KEFU, customizedId,
+ "android".equalsIgnoreCase(deviceOS) ? 1 : 2, 1, msg, new Date());
+ }
- Map<String, String> map = WXUtil.parseXML(request);
- JSONObject json = JSONObject.fromObject(map);
- LogHelper.test("鍟嗗煄寰俊鏀粯鍥炶皟:" + json.toString());
- String sign = map.get("sign");
- map.remove("sign");
- boolean isSuccess = BanLiShopWXPayUtil.signIsRight(map, sign);
- if (isSuccess)
- if (map.get("return_code").equalsIgnoreCase("SUCCESS")
- && map.get("result_code").equalsIgnoreCase("SUCCESS")) {
- // 鍟嗘埛璁㈠崟鍙�
- String wxPayOrderNo = map.get("out_trade_no");
- // 璁㈠崟鍙�
- String orderNo = BanLiShopOrderUtil.getOrderNoFromWXPayOrderNo(wxPayOrderNo);
- if (!StringUtil.isNullOrEmpty(orderNo)) {
- BanLiShopOrder order = banLiShopOrderService.selectByOrderNo(orderNo);
- if (order != null) {// 鏀粯鎴愬姛娑堟伅鎺ㄩ��
- BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid());
- Message message = new Message(MQTopicName.TOPIC_ORDER.name(),
- OrderTopicTagEnum.banLiShopOrderPaid.name(), new Gson().toJson(msg).getBytes());
- producer.send(message);
- Map<String, String> returnMap = new HashMap<>();
- returnMap.put("return_code", "SUCCESS");
- returnMap.put("return_msg", "OK");
- out.print(WXUtil.loadWXMessage(returnMap));
- out.close();
- }
- }
- }
- }
+ }
+
+ public String sign(String raw_body) throws java.security.SignatureException {
+ String key = "$2a$12$uC3EG/zSaSI37KKOgt1IgetDRHJY6Q2zEVDBr0DeWcwQbGNU7pewy";
+ String result = "";
+ try {
+ SecretKeySpec signingKey = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA1");
+ Mac mac = Mac.getInstance("HmacSHA1");
+ mac.init(signingKey);
+ byte[] rawHmac = mac.doFinal(raw_body.getBytes("UTF-8"));
+ byte[] hexBytes = new org.apache.commons.codec.binary.Hex().encode(rawHmac);
+ result = org.apache.commons.codec.binary.Base64.encodeBase64String(hexBytes).trim();
+ } catch (Exception e) {
+ throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
+ }
+ return "meiqia_sign:" + result;
+ }
+
+ @RequestMapping(value = "test")
+ public void test(PrintWriter out) {
+ configService.getConfig(1L);
+ out.print("success");
+ }
+
+ @RequestMapping(value = "vip")
+ public void VIP(PrintWriter out) {
+ out.print("success");
+ }
+
+ /**
+ * 鏀粯瀹濇敮浠樺洖璋�
+ *
+ * @param out void 杩斿洖绫诲瀷
+ * @throws
+ * @Title: alipay
+ * @Description:
+ */
+ @RequestMapping(value = "alipay")
+ public void alipay(PrintWriter out) {
+ out.print("success");
+ }
+
+ @RequestMapping(value = "banlishop/pay")
+ public void banLiShopPay(HttpServletRequest request, PrintWriter out) {
+
+ Map<String, String> map = WXUtil.parseXML(request);
+ JSONObject json = JSONObject.fromObject(map);
+ LogHelper.test("鍟嗗煄寰俊鏀粯鍥炶皟:" + json.toString());
+ String sign = map.get("sign");
+ map.remove("sign");
+ boolean isSuccess = BanLiShopWXPayUtil.signIsRight(map, sign);
+ if (isSuccess)
+ if (map.get("return_code").equalsIgnoreCase("SUCCESS")
+ && map.get("result_code").equalsIgnoreCase("SUCCESS")) {
+ // 鍟嗘埛璁㈠崟鍙�
+ String wxPayOrderNo = map.get("out_trade_no");
+ // 璁㈠崟鍙�
+ String orderNo = BanLiShopOrderUtil.getOrderNoFromWXPayOrderNo(wxPayOrderNo);
+ if (!StringUtil.isNullOrEmpty(orderNo)) {
+ BanLiShopOrder order = banLiShopOrderService.selectByOrderNo(orderNo);
+ if (order != null) {// 鏀粯鎴愬姛娑堟伅鎺ㄩ��
+ BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid(),
+ new BigDecimal(map.get("total_fee")).multiply(new BigDecimal("0.01")));
+ Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER,
+ OrderTopicTagEnum.banLiShopOrderPaid, msg);
+ rocketMQManager.sendNormalMsg(message, null, null);
+ Map<String, String> returnMap = new HashMap<>();
+ returnMap.put("return_code", "SUCCESS");
+ returnMap.put("return_msg", "OK");
+ out.print(WXUtil.loadWXMessage(returnMap));
+ out.close();
+ }
+ }
+ }
+ }
+
+ /**
+ * 鑱旂洘濂界墿鍦�
+ *
+ * @param request
+ * @param out void 杩斿洖绫诲瀷
+ * @throws
+ * @Title: haoWuQuan
+ * @Description:
+ */
+ @RequestMapping(value = "faquan/haowuquan")
+ public void haoWuQuan(HttpServletRequest request, String content, PrintWriter out) {
+ // if (!sign.equalsIgnoreCase(StringUtil.Md5(content + "banliapp"))) {
+ // out.print(JsonUtil.loadFalseResult("绛惧悕閿欒"));
+ // return;
+ // }
+ String contentDecode = "";
+
+ contentDecode = content.substring(content.indexOf("(") + 1, content.length()).trim();
+ if (contentDecode.endsWith(")"))
+ contentDecode = contentDecode.substring(0, contentDecode.length() - 1);
+
+ System.out.println(contentDecode);
+
+ JSONObject data = JSONObject.fromObject(contentDecode).optJSONObject("data");
+
+ JSONArray array = data.optJSONObject("recommend").optJSONArray("resultList");
+
+ long startTime = System.currentTimeMillis();
+ for (SystemEnum system : SystemEnum.values())
+ for (int i = array.size() - 1; i >= 0; i--) {
+ JSONObject item = array.optJSONObject(i);
+ String title = item.optString("itemName");
+ String doc = item.optString("cusShareText");
+ long itemId = item.optLong("itemId");
+ String publishTime = item.optString("cusPublishTime");
+ JSONArray imageArray = item.optJSONArray("imageList");
+ List<String> imgList = new ArrayList<>();
+ for (int j = 0; j < imageArray.size(); j++) {
+ imgList.add(imageArray.optString(j));
+ }
+
+ TaoBaoGoodsBrief goodsBrief = null;
+ try {
+ goodsBrief = TaoKeApiUtil.searchGoodsDetail(itemId);
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+ if (goodsBrief == null)
+ continue;
+ // 鍟嗗搧VO
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55",system);
+ paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(SystemEnum.blks));
+ GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
+
+ if (imgList.size() > 3)
+ imgList = imgList.subList(0, 3);
+
+ List<ImgInfo> imageList = new ArrayList<>();
+ for (int j = 0; j < imgList.size(); j++) {
+ ImgInfo imgInfo = new ImgInfo();
+ imgInfo.setH(1);
+ imgInfo.setW(1);
+ imgInfo.setLarge(false);
+ imgInfo.setUrl(imgList.get(j));
+ String sourceImg = imgList.get(j);
+ if (!imgInfo.getUrl().startsWith("http")) {
+ sourceImg = "https:" + imgInfo.getUrl();
+ }
+ imgInfo.setUrl(TbImgUtil.getTBSizeImg(sourceImg, 500));
+ imgInfo.setUrlHD(sourceImg);
+ if (j != 0) {
+ imgInfo.setType(ImgEnum.img);
+ } else {
+ imgInfo.setType(ImgEnum.goods);
+ SimpleGoods simpleGoods = new SimpleGoods();
+ simpleGoods.setGoodsId(itemId + "");
+ simpleGoods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
+ simpleGoods.setState(CommonGoods.STATE_NORMAL);
+ CouponInfoVO couponInfo = goodsVO.getCouponInfo();
+ if (couponInfo == null) {
+ simpleGoods.setPrice(goodsVO.getZkPrice());
+ } else {
+ simpleGoods.setPrice(goodsVO.getCouponPrice());
+ simpleGoods.setAmount(couponInfo.getAmount());
+ }
+ imgInfo.setGoods(simpleGoods);
+ imgInfo.setGoodsVO(goodsVO);
+ }
+ imageList.add(imgInfo);
+ }
+
+ List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HAOHUO, 1, 20);
+
+ ActivityUser user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
+ try {
+
+ goodsEvaluateService.addGoodsEvaluate(itemId + "", imageList, user, doc, null,
+ new Date(startTime - 1000 * 60 * 20L * i), system);
+ } catch (GoodsEvaluateException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ @RequestMapping(value = "yhg/groupmsg")
+ public void groupMsg(HttpServletRequest request, PrintWriter out) {
+ StringBuilder stringBuilder = new StringBuilder();
+ try {
+ byte[] buffer = new byte[2048];
+ int readBytes = 0;
+ while ((readBytes = request.getInputStream().read(buffer)) > 0) {
+ stringBuilder.append(new String(buffer, 0, readBytes));
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ JSONObject root = JSONObject.fromObject(stringBuilder.toString());
+ if (root.optInt("messageType") == 9) {
+ String content = root.optJSONObject("data").optString("content");
+ LogHelper.test("浜戝彂鍗曠兢鍐呭:" + content);
+ if (content.trim().equalsIgnoreCase(Constant.YHG_CLOUD_GROUP_AWAKEN_KEY)) {
+ LogHelper.test("浜戝彂鍗曠兢鍖归厤:" + root.optString("wcId") + "-"
+ + root.optJSONObject("data").optString("fromGroup"));
+ userCloudService.cacheMatchGroup(root.optString("wcId"),
+ root.optJSONObject("data").optString("fromGroup"));
+ }
+ }
+ } catch (Exception e) {
+
+ }
+
+ }
}
--
Gitblit v1.8.0