diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java index 5356b8b3..7b9f1f26 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java @@ -14,6 +14,8 @@ import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfig import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigGetEntity; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogEntity; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogService; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductMasterQueryEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.service.GoodService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService; import net.lab1024.smartadmin.module.system.royalcanin.member.*; @@ -25,6 +27,8 @@ import net.lab1024.smartadmin.module.system.royalcanin.memberAddress.MemberAddre import net.lab1024.smartadmin.module.system.royalcanin.memberAddress.MemberAddressUpdateEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.AddOrSaveEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; +import net.lab1024.smartadmin.util.MapRemoveNullUtil; +import net.lab1024.smartadmin.util.SmartHttpUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -32,6 +36,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; +import java.util.Map; @Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API}) @@ -253,4 +258,7 @@ public class TransitionController { royalcaninOperateLogService.add(royalcaninOperateLogEntity); return ResponseDTO.succ(); } + + + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/GoodController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/GoodController.java index c414b6d3..ddf13acb 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/GoodController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/GoodController.java @@ -2,6 +2,7 @@ package net.lab1024.smartadmin.module.system.royalcanin.good; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.common.anno.OperateLog; @@ -12,15 +13,13 @@ import net.lab1024.smartadmin.constant.SwaggerTagConst; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogEntity; import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogService; import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst; -import net.lab1024.smartadmin.module.system.royalcanin.good.model.CartEntity; -import net.lab1024.smartadmin.module.system.royalcanin.good.model.GoodsEntity; -import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductMasterQueryEntity; -import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductQueryEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.*; import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.GoodService; import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model.ProductSearchTagEntity; import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.service.ProductSearchTagService; import net.lab1024.smartadmin.util.MapRemoveNullUtil; +import net.lab1024.smartadmin.util.SmartHttpUtil; import net.lab1024.smartadmin.util.SmartJWTUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -179,6 +178,8 @@ public class GoodController { } else { int buyCountTotal = cartEntity.getBuyCount() + cartEntityFromDB.getBuyCount(); cartEntityFromDB.setBuyCount(buyCountTotal); + cartEntityFromDB.setBasePoint(cartEntity.getBasePoint()); + cartEntityFromDB.setLeftAllotment(cartEntity.getLeftAllotment()); if (1 == cartService.updateInfo(cartEntityFromDB)) return ResponseDTO.succ(); else @@ -207,4 +208,6 @@ public class GoodController { return ResponseDTO.succ(); } + + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java index c748294c..25731848 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java @@ -16,6 +16,7 @@ import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderRespon import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderAddress; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductMasterQueryEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.OrderDatilListEntity; @@ -23,6 +24,8 @@ import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; import net.lab1024.smartadmin.module.system.wxpay.WxpayService; import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity; import net.lab1024.smartadmin.util.GenerateSequenceUtil; +import net.lab1024.smartadmin.util.MapRemoveNullUtil; +import net.lab1024.smartadmin.util.SmartHttpUtil; import net.sf.json.JSONArray; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -212,6 +215,15 @@ public class OrderController { wxpayService.orderCallBack(request,response); } + @ApiOperation(value = "监听微信回调", notes = "监听微信回调") + @PostMapping(value = "royalcanin/monitorOrderNotify") + public ResponseDTO monitorOrderNotify(@RequestParam String OrderNumber){ + if ( 1 == orderService.checkNotify(OrderNumber)) + return ResponseDTO.succMsg("SUCCESS"); + else + return ResponseDTO.wrap(OrderResponseCodeConst.NOTIFY_ERROR); + } + @ApiOperation(value = "支付宝更新订单", notes = "支付宝更新订单") @RequestMapping(value = "royalcanin/updateOrderAlipay") public void updateOrderAlipay(HttpServletRequest request, HttpServletResponse response){ @@ -286,4 +298,28 @@ public class OrderController { } + +// @PostMapping("royalcanin/test") +// public void test(String orderNumber) throws Exception { +// String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/"; +// OrderEntity orderEntity = orderService.findByOrderId(orderNumber); +// String [] products = orderEntity.getProductCode().split(","); +// ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); +// double basePoint = 0; +// for (String product:products) { +// productMasterQueryEntity.setProductCode(product); +// Map paramMap = MapRemoveNullUtil.setConditionMap(productMasterQueryEntity); +// MapRemoveNullUtil.removeNullEntry(paramMap); +// paramMap.put("secret","H5@2021"); +// paramMap.put("channelId","15"); +// String sb = SmartHttpUtil.sendPostForm(url+"productMaster/query",paramMap,null); +// JSONObject jsonObject = JSONObject.parseObject(sb); +// com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(jsonObject.getString("data")); +// JSONObject jsonObjectData = (JSONObject)jsonArray.get(0); +// basePoint = basePoint + Double.parseDouble(jsonObjectData.getString("basePoint")); +// } +// System.out.println("endTotal:" + basePoint); +// +// } + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/constant/OrderResponseCodeConst.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/constant/OrderResponseCodeConst.java index 88a32342..d532794f 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/constant/OrderResponseCodeConst.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/constant/OrderResponseCodeConst.java @@ -12,8 +12,6 @@ public class OrderResponseCodeConst extends ResponseCodeConst { public static final OrderResponseCodeConst GENERATE_FAIL = new OrderResponseCodeConst(9003, "数据生成失败!"); - public static final OrderResponseCodeConst CANCEL_FAIL = new OrderResponseCodeConst(9004, "数据删除失败!"); - public static final OrderResponseCodeConst SMS_FAIL = new OrderResponseCodeConst(9005, " 短信校验失败!"); public static final OrderResponseCodeConst SMS_OVERTIME = new OrderResponseCodeConst(9006, "短信校验超时!"); @@ -22,6 +20,10 @@ public class OrderResponseCodeConst extends ResponseCodeConst { public static final OrderResponseCodeConst GENERATE_ORDER_ERROR = new OrderResponseCodeConst(9008, "该订单数据有误,请联系管理员!"); + + public static final OrderResponseCodeConst NOTIFY_ERROR = new OrderResponseCodeConst(9009, "没有该订单回调数据!"); + + public OrderResponseCodeConst(int code, String msg) { super(code, msg); } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/CartEntity.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/CartEntity.java index 8756a7dd..fe486264 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/CartEntity.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/model/CartEntity.java @@ -27,4 +27,6 @@ public class CartEntity { private int leftAllotment; + private int basePoint; + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/GoodService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/GoodService.java index d3f2925b..c97a77f5 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/GoodService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/GoodService.java @@ -107,4 +107,5 @@ public class GoodService { } + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java index 60e9f3e0..d30227cc 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/service/OrderService.java @@ -15,6 +15,7 @@ import net.lab1024.smartadmin.module.system.royalcanin.good.dao.OrdersDao; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderAddress; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity; +import net.lab1024.smartadmin.module.system.royalcanin.notify.service.NotifyService; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.AddOrSaveEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.OrderCouponEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; @@ -42,6 +43,9 @@ public class OrderService { @Autowired private OrdersDao ordersDao; + @Autowired + private NotifyService notifyService; + private String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/orderMaster/"; @Transactional @@ -99,6 +103,13 @@ public class OrderService { } } + public int checkNotify(String orderNumber){ + if(notifyService.findNotifyByOrderNumber(orderNumber) != null) + return 1; + else + return 0; + } + public Boolean afterPaySucceedUpdateOrderStatus(String outTradeNo,String totalFee){ int result = ordersDao.updateOrderStatus(outTradeNo,totalFee); diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/dao/NotifyDao.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/dao/NotifyDao.java index ac35db90..3af43c66 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/dao/NotifyDao.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/dao/NotifyDao.java @@ -3,9 +3,13 @@ package net.lab1024.smartadmin.module.system.royalcanin.notify.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import net.lab1024.smartadmin.module.system.royalcanin.notify.model.NotifyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @Mapper @Component public interface NotifyDao extends BaseMapper { + + + NotifyEntity findNotifyByOrderNumber(@Param("orderNumber")String orderNumber); } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/service/NotifyService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/service/NotifyService.java index 7b4bb1e2..08d1bd48 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/service/NotifyService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/notify/service/NotifyService.java @@ -12,7 +12,12 @@ public class NotifyService { private NotifyDao notifyDao; - public int insertProductCart(NotifyEntity notifyEntity){ + public int insertNotify(NotifyEntity notifyEntity){ return notifyDao.insert(notifyEntity); } + + + public NotifyEntity findNotifyByOrderNumber(String orderNumber){ + return notifyDao.findNotifyByOrderNumber(orderNumber); + } } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java index 2c35e6b9..8351a808 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java @@ -1,7 +1,10 @@ package net.lab1024.smartadmin.module.system.wxpay; +import com.alibaba.fastjson.JSONObject; +import net.lab1024.smartadmin.common.heartbeat.StringUtil; import net.lab1024.smartadmin.module.system.royalcanin.MemberAccountService; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; +import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductMasterQueryEntity; import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService; import net.lab1024.smartadmin.module.system.royalcanin.memberAccount.MemberAccountChangeEntity; import net.lab1024.smartadmin.module.system.royalcanin.notify.model.NotifyEntity; @@ -10,6 +13,8 @@ import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; import net.lab1024.smartadmin.module.system.wxpay.sdk.WXPay; import net.lab1024.smartadmin.module.system.wxpay.sdk.WXPayUtil; import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity; +import net.lab1024.smartadmin.util.MapRemoveNullUtil; +import net.lab1024.smartadmin.util.SmartHttpUtil; import net.lab1024.smartadmin.util.SmartIPUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,10 +27,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.net.Inet4Address; import java.net.InetAddress; -import java.util.HashMap; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; +import java.util.*; @Service public class WxpayService { @@ -44,6 +46,8 @@ public class WxpayService { @Autowired private MemberAccountService memberAccountService; + String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/"; + @@ -94,9 +98,25 @@ public class WxpayService { String outTradeNo = sortedMap.get("out_trade_no"); // 流水号 String totalFee = sortedMap.get("total_fee"); // 交易金额 OrderEntity orderEntity = orderService.findByOrderId(outTradeNo); + String [] products = orderEntity.getProductCode().split(","); + ProductMasterQueryEntity productMasterQueryEntity = new ProductMasterQueryEntity(); + double basePoint = 0; + //自动获取会员积分 + for (String product:products) { + productMasterQueryEntity.setProductCode(product); + Map paramMap = MapRemoveNullUtil.setConditionMap(productMasterQueryEntity); + MapRemoveNullUtil.removeNullEntry(paramMap); + paramMap.put("secret","H5@2021"); + paramMap.put("channelId","15"); + String sb = SmartHttpUtil.sendPostForm(url+"productMaster/query",paramMap,null); + JSONObject jsonObject = JSONObject.parseObject(sb); + com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(jsonObject.getString("data")); + JSONObject jsonObjectData = (JSONObject)jsonArray.get(0); + basePoint = basePoint + Double.parseDouble(jsonObjectData.getString("basePoint")); + } MemberAccountChangeEntity memberAccountChangeEntity = new MemberAccountChangeEntity(); memberAccountChangeEntity.setChangeTypeId("1"); - memberAccountChangeEntity.setChangeValue(orderEntity.getBasePoint()); + memberAccountChangeEntity.setChangeValue(StringUtil.toString(basePoint)); memberAccountChangeEntity.setMemberId(orderEntity.getMemberId()); memberAccountService.memberAccountChange(memberAccountChangeEntity); @@ -113,7 +133,7 @@ public class WxpayService { notifyEntity.setTradeType(sortedMap.get("trade_type")); notifyEntity.setFeeType(sortedMap.get("fee_type")); notifyEntity.setNonceStr(sortedMap.get("nonce_str")); - notifyService.insertProductCart(notifyEntity); + notifyService.insertNotify(notifyEntity); if (orderService.afterPaySucceedUpdateOrderStatus(outTradeNo,totalFee)) { response.setContentType("text/xml"); response.setContentType("content-type"); @@ -138,6 +158,10 @@ public class WxpayService { } } + + + + /** * /H5微信支付(预下单) * @return diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartJWTUtil.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartJWTUtil.java index 8fdc3c46..66658737 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartJWTUtil.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartJWTUtil.java @@ -78,7 +78,7 @@ public class SmartJWTUtil { } public static void main(String[] args) { - String token = SmartJWTUtil.generateToken("884234"); + String token = SmartJWTUtil.generateToken("884127"); System.out.println(token); System.out.println(SmartJWTUtil.decodeToken(token)); } diff --git a/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/notify/NotifyMapper.xml b/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/notify/NotifyMapper.xml new file mode 100644 index 00000000..b1a88125 --- /dev/null +++ b/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/royalcanin/notify/NotifyMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql b/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql index 84f75af1..492fcd11 100644 --- a/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql +++ b/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql @@ -1656,6 +1656,7 @@ CREATE TABLE IF NOT EXISTS `t_royalcanin_cart` ( `specifications` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `buy_count` int(20) DEFAULT NULL, `left_allotment` int(20) DEFAULT NULL, + `base_point` int(20) DEFAULT NULL, `member_id` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `mobile` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,