-import { userLongin,sendMsg,vadatnmsg } from "../../ajax/getData";
+import { userLongin,sendMsg,vadatnmsg,userregOrLogin,inserdiscount } from "../../ajax/getData";
import { mapMutations } from "vuex";
import Myheader from "~/components/header.vue"; //引用头部公共组件
export default {
@@ -152,6 +152,7 @@ export default {
layerMSg: "手机格式不对",
tel: "",
password: "",
+ userdata:{},
allcheck:false,
activeIndex: 0,
tamp:'',
@@ -171,9 +172,11 @@ export default {
loading: false,
usertitle: true,
ifpassword: false,
+ verification:'',//验证码数据
+ userislogin:[],//登录成功数据
checked: false,
- inRank: false,
- inRanka: false,
+ isRank: false,
+ isRanka: false,
usercheckbox:false,
swiperData: [
@@ -221,20 +224,45 @@ export default {
// console.log(this.inRank);
// },
methods: {
+ ...mapMutations(["changeClod","checkIsLogin"]),
//全选
checkBoxa(e,order){
- let checked=e.target.checked;
- console.log(checked)
-
+ let checked=e.target.checked;
+ console.log(e.target.checked);
+ // this.isRank=e.target.checked;
+ // this.isRanka=e.target.checked;
+ if(order==3){
+ this.allcheck=checked;
+ this.isRank=this.allcheck;
+ this.isRanka=this.allcheck;
+ }else if(order==2){
+ this.isRank=e.target.checked;
+ }
+ else if(order==1){
+ this.isRanka=e.target.checked;
+ }
+ console.log(this.isRank,this.isRanka);
+ if(this.isRanka==true && this.isRank==true){
+ this.allcheck=true;
+ }else{
+ this.allcheck=false;
+ }
+ // console.log(this.isRanka,this.isRank);
+ this.usercheckbox=this.allcheck;
},
-
- checkBox(e,order){
- console.log(e.target.checked)
- this.usercheckbox=e.target.checked;
- this.inRank= this.usercheckbox;
-
+ //获取用户领取的优惠券
+ async reglogin() {
+ let data = await getConfig(memberId, couponId);
+ let msg = '领取成功';
+ if (data) {
+ if(data.code!='0')
+ msg = data.msg;
+ this.$message({
+ type: "warning",
+ message: msg,
+ });
+ }
},
- ...mapMutations(["changeClod"]),
//获取验证码
async usermsg() {
//console.log("-----");
@@ -248,14 +276,35 @@ export default {
},
+ //添加优惠券
+ async serdiscount (mobile,couponId) {
+ let data = await inserdiscount(mobile,couponId);
+ if(data){
+ console.log(data);
+ }
+ //console.log(data);
+ },
+
//发送验证码数据
async vadmsg() {
//console.log("-----");
- let data = await vadatnmsg(this.sms,this.hash,this.tamp);
+ let data = await vadatnmsg(this.sms,this.hash,this.tamp);
if(data){
return data;
}
+
},
+ //登录成功数据
+ async userlogin() {
+ //console.log("-----");
+ let data= await userregOrLogin(this.tel);
+ if(data){
+ this.userislogin=data;
+ console.log(this.userislogin);
+ }
+ },
+
+
onClickHander(e) {
console.log(e);
},
@@ -293,11 +342,8 @@ export default {
return
} else{
-
-
let time = 60;
let timer;
-
timer = setInterval(() => {
time--;
if (time === 0) {
@@ -327,45 +373,75 @@ export default {
});
return
}
- if(this.usercheckbox==false){
- //console.log('----');
+ if(this.usercheckbox==false){
this.$message({
type: 'warning',
- message: '请先同意隐私声明和账号使用协议'
+ message: '请先勾选相关协议'
});
+ return
+ }
+ if(this.usercheckbox==false){
+ //console.log('----');
if (!/^[1][3,4,5,7,8][0-9]{9}$/.test(this.tel) || this.tel === "") {
this.$message({
type: 'warning',
message: '手机号码输入有误'
});
+ this.$message({
+ type: 'warning',
+ message: '请先同意隐私声明和账号使用协议'
+ });
return
-
}
}
else{
- let data=await this.vadmsg();
+ console.log('===')
+ let data=await this.vadmsg();
if(data.code=="1")
{
- data = await userLongin(this.tel);
- if(data.msg=='SUCCESS'){
- this.$message({
+ data = await userregOrLogin(this.tel);
+ console.log(data);
+ let token=JSON.stringify(data);
+ this.changeClod({ cloud: token });
+ this.checkIsLogin();
+ if(data.type==1){
+ if(data.data.memberName===undefined){
+ this.$message({
type: 'warning',
- message: '登录成功'
+ message: '欢迎回来'
});
+ console.log('-----')
+ }
+ else{
+ this.$message({
+ type: 'warning',
+ message: '欢迎回来'+data.data.memberName
+ });
+ }
+ }else if(data.type==2){
+ this.$message({
+ type: 'warning',
+ message: '恭喜注册成功'
+ });
+ let couponId='0000000123';
+ this.serdiscount(this.tel,couponId);
+ setTimeout(() => {
+ this.serdiscount(this.tel,"0000000140");
+ }, 100);
+ setTimeout(() => {
+ this.serdiscount(this.tel,"0000000122");
+ }, 500);
+ }
this.$router.push({
path: "/",
});
- let token=JSON.stringify(data);
- this.changeClod({ cloud: token });
- return;
- }
- }
- this.$message({
+ }else{
+ this.$message({
type: 'warning',
- message: data.msg
+ message: data.msg,
});
-
return
+ }
}},
},
};
diff --git a/rc-busness/static/images/banner/pc-weixin.png b/rc-busness/static/images/banner/pc-weixin.png
new file mode 100644
index 00000000..ed2d4c10
Binary files /dev/null and b/rc-busness/static/images/banner/pc-weixin.png differ
diff --git a/rc-busness/static/images/banner/weixin.png b/rc-busness/static/images/banner/weixin.png
new file mode 100644
index 00000000..5340fcf5
Binary files /dev/null and b/rc-busness/static/images/banner/weixin.png differ
diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/MemberService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/MemberService.java
index e449365b..60772a28 100644
--- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/MemberService.java
+++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/MemberService.java
@@ -57,7 +57,7 @@ public class MemberService {
JSONObject json = JSONObject.parseObject(jsonObjectResult.getString("data"));
String id = json.getString("id");
jsonObjectResult.put("xaccessToken", SmartJWTUtil.generateToken(id));
- jsonObject.put("type","2");
+ jsonObjectResult.put("type","2");
return jsonObjectResult.toJSONString();
}else {
return jsonObjectResult.toJSONString();
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 32dba481..b9058627 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
@@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.common.anno.OperateLog;
-import net.lab1024.smartadmin.common.constant.ResponseCodeConst;
import net.lab1024.smartadmin.common.domain.ResponseDTO;
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
import net.lab1024.smartadmin.constant.SwaggerTagConst;
@@ -117,6 +116,8 @@ public class TransitionController {
}
+
+
@ApiOperation(value = "会员地址", notes = "查询会员地址,添加会员地址,更新会员地址,删除会员地址")
@PostMapping("royalcanin/memberAddress")
public String transferMemberAddress(String type ,@RequestBody Object object, HttpServletRequest request) throws Exception {
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 04f044c4..22005238 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
@@ -3,6 +3,7 @@ package net.lab1024.smartadmin.module.system.royalcanin.good;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.internal.util.AlipaySignature;
+import com.beust.jcommander.Parameter;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.common.anno.OperateLog;
@@ -23,17 +24,22 @@ 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;
import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity;
+import net.lab1024.smartadmin.module.system.wxpay.MyConfig;
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.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.URLEncodedUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
import java.util.*;
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
@@ -128,7 +134,8 @@ public class OrderController {
Map returnMap = new HashMap<>();
returnMap.put("orderNumber",ordersEntity.getOrderNo());
returnMap.put("orderAmount",ordersEntity.getOrderAmount());
- return ResponseDTO.succData(returnMap,wxpayService.generateQRCode(wxPayEntity));
+// return ResponseDTO.succData(returnMap,wxpayService.generateQRCode(wxPayEntity));
+ return ResponseDTO.succData(returnMap,wxpayService.testGenerateQRCode(wxPayEntity));
}
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL);
}
@@ -197,7 +204,7 @@ public class OrderController {
ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo());
ordersEntity.setOrderStatus("0");
ordersEntity.setBasePoint(basePoint);
-
+ ordersEntity.setPayType("3");
if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){
wxPayEntity.setProduct_id(ordersEntity.getProductCode());
@@ -235,6 +242,15 @@ public class OrderController {
return ResponseDTO.wrap(OrderResponseCodeConst.WITHOUT_ORDER);
}
}
+ @ApiOperation(value = "重定向", notes = "重定向")
+ @PostMapping("royalcanin/redirectUrlWXH5")
+ public void redirectUrl(HttpServletRequest request, HttpServletResponse response,@RequestBody String url) throws IOException {
+ response.addHeader("referer", MyConfig.NOTIFY_URL_H5);
+ JSONObject jonUrl = JSONObject.parseObject(url);
+ response.sendRedirect(jonUrl.getString("url"));
+
+ }
+
@ApiOperation(value = "重新支付(H5)", notes = "重新支付(H5)")
@PostMapping("royalcanin/repayOrderWXH5")
@@ -269,6 +285,8 @@ public class OrderController {
wxpayService.orderCallBack(request,response);
}
+
+
@ApiOperation(value = "监听微信回调", notes = "监听微信回调")
@PostMapping(value = "royalcanin/monitorOrderNotify")
public ResponseDTO monitorOrderNotify(@RequestParam String OrderNumber){
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 2352ff36..7434a4fc 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
@@ -232,6 +232,7 @@ public class OrderService {
OrderEntity orderEntity = ordersDao.findByOrderId(queryEntity.getOrderNumber());
//新增支付方式paytype
jsonObjectResult.put("paytype",orderEntity.getPayType());
+ jsonObjectResult.put("basePoint",orderEntity.getBasePoint());
}
//记录服务响应时间
diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java
index 61bf8212..6dd6779c 100644
--- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java
+++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java
@@ -13,4 +13,8 @@ public class QueryEntity {
private String phoneNumber;
+ private String page;
+
+ private String rows;
+
}
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 293e7d92..6af36a4d 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,6 @@
package net.lab1024.smartadmin.module.system.wxpay;
import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.internal.SignUtils;
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;
@@ -10,7 +9,6 @@ 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;
import net.lab1024.smartadmin.module.system.royalcanin.notify.service.NotifyService;
-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;
@@ -28,6 +26,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Inet4Address;
import java.net.InetAddress;
+import java.net.URLEncoder;
import java.util.*;
@Service
@@ -49,6 +48,27 @@ public class WxpayService {
String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/";
+ private String urlNative = "https://api.mch.weixin.qq.com/v3/pay/transactions/native";
+
+ public String testGenerateQRCode(WxPayEntity wxPayEntity)throws Exception{
+ String Authorization = "WECHATPAY2-SHA256-RSA2048";
+ long timestamp = System.currentTimeMillis();
+ SortedMap data = new TreeMap<>();
+ SortedMap amount = new TreeMap<>();
+ amount.put("total",Integer.parseInt(getMoney(wxPayEntity.getTotal_fee())));
+ data.put("out_trade_no",wxPayEntity.getOut_trade_no());
+ data.put("notify_url",config.notify_url);
+ data.put("description","皇家宠物食品官方商城");
+ data.put("appid",config.getAppID());
+ data.put("mchid",config.getMchID());
+ net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(data);
+ jsonObject.put("amount",amount);
+ SortedMaphearder = new TreeMap<>();
+ hearder.put("Accept","application/json");
+ hearder.put("Authorization",Authorization +" mchid="+config.getMchID() +",nonce_str=" + WXPayUtil.generateNonceStr() + ",timestamp=" + timestamp + ",signature=" + WXPayUtil.generateSignature(data, config.getKey()) + ",serial_no=" + config.getKey());
+ String sb = SmartHttpUtil.httpPostRaw(urlNative,jsonObject.toString(),hearder,"utf-8");
+ return sb;
+ }
@@ -176,7 +196,7 @@ public class WxpayService {
data.put("fee_type","CNY");
data.put("total_fee",getMoney(wxPayEntity.getTotal_fee()));
data.put("spbill_create_ip", SmartIPUtil.getLocalHostIP());
- data.put("trade_type", "MWEB"); // 此处指定为扫码支付
+ data.put("trade_type", "MWEB"); // 此处指定为H5支付
data.put("body","皇家宠物食品官方商城");
data.put("nonce_str", WXPayUtil.generateNonceStr());
data.put("product_id",wxPayEntity.getProduct_id());
@@ -190,7 +210,7 @@ public class WxpayService {
if (returnCode.equals("SUCCESS")) {
returnMap.put("ok", "200");
//拼接返回跳转地址
- String url= config.NOTIFY_URL_H5+"orderNumber="+wxPayEntity.getOut_trade_no() ;
+ String url= config.NOTIFY_URL_H5+"/myorder/usertion?orderNumber="+wxPayEntity.getOut_trade_no() + "&tradeType=MWEB";
returnMap.put("url", response.get("mweb_url")+"&redirect_url="+url);
return response.get("mweb_url") == null ? response.get("err_code_des"):returnMap.get("url");
} else {
diff --git a/smart-admin-service/smart-admin-api/src/main/resources/static/44_1.jpg b/smart-admin-service/smart-admin-api/src/main/resources/static/44_1.jpg
new file mode 100644
index 00000000..110a32a7
Binary files /dev/null and b/smart-admin-service/smart-admin-api/src/main/resources/static/44_1.jpg differ
diff --git a/smart-admin-service/smart-admin-api/src/main/resources/static/44_2.jpg b/smart-admin-service/smart-admin-api/src/main/resources/static/44_2.jpg
new file mode 100644
index 00000000..1b1c7590
Binary files /dev/null and b/smart-admin-service/smart-admin-api/src/main/resources/static/44_2.jpg differ
diff --git a/smart-admin-service/smart-admin-api/src/main/resources/static/45_1.jpg b/smart-admin-service/smart-admin-api/src/main/resources/static/45_1.jpg
new file mode 100644
index 00000000..ae7887e3
Binary files /dev/null and b/smart-admin-service/smart-admin-api/src/main/resources/static/45_1.jpg differ
diff --git a/smart-admin-service/smart-admin-api/src/main/resources/static/45_2.jpg b/smart-admin-service/smart-admin-api/src/main/resources/static/45_2.jpg
new file mode 100644
index 00000000..710de043
Binary files /dev/null and b/smart-admin-service/smart-admin-api/src/main/resources/static/45_2.jpg differ