Merge branch 'sit-Carl' into sit-jiamin-v2

This commit is contained in:
952108534@qq.com 2022-01-23 22:15:37 +08:00
commit 42afa7dffa
13 changed files with 123 additions and 14 deletions

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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<String> 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<String, String> 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);
//
// }
}

View File

@ -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);
}

View File

@ -27,4 +27,6 @@ public class CartEntity {
private int leftAllotment;
private int basePoint;
}

View File

@ -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);

View File

@ -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> {
NotifyEntity findNotifyByOrderNumber(@Param("orderNumber")String orderNumber);
}

View File

@ -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);
}
}

View File

@ -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<String, String> 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

View File

@ -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));
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.lab1024.smartadmin.module.system.royalcanin.notify.dao.NotifyDao">
<resultMap id="NotifyEntity"
type="net.lab1024.smartadmin.module.system.royalcanin.notify.model.NotifyEntity"></resultMap>
<select id="findNotifyByOrderNumber" resultMap="NotifyEntity">
select result_code from t_royalcanin_notify_operate_log WHERE out_trade_no = #{orderNumber}
</select>
</mapper>

View File

@ -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,