1
This commit is contained in:
parent
bccc0204de
commit
cbfed2e429
8 changed files with 177 additions and 109 deletions
|
|
@ -729,20 +729,20 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
||||||
return Result.error("当前手机号已被其他苹果账号绑定");
|
return Result.error("当前手机号已被其他苹果账号绑定");
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
if (phone != null) {
|
// if (phone != null) {
|
||||||
if ("forget".equals(state)) {
|
// if ("forget".equals(state)) {
|
||||||
UserEntity userByPhone = queryByPhone(phone);
|
// UserEntity userByPhone = queryByPhone(phone);
|
||||||
if (userByPhone == null) {
|
// if (userByPhone == null) {
|
||||||
return Result.error("手机号未注册");
|
// return Result.error("手机号未注册");
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
UserEntity userByPhone = queryByPhone(phone);
|
// UserEntity userByPhone = queryByPhone(phone);
|
||||||
if (userByPhone != null) {
|
// if (userByPhone != null) {
|
||||||
return Result.error("当前手机号已被其他账号绑定");
|
// return Result.error("当前手机号已被其他账号绑定");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
|
||||||
CommonInfo three = commonInfoService.findOne(79);
|
CommonInfo three = commonInfoService.findOne(79);
|
||||||
//默认使用腾讯云
|
//默认使用腾讯云
|
||||||
if (three == null || "1".equals(three.getValue())) {
|
if (three == null || "1".equals(three.getValue())) {
|
||||||
|
|
@ -1115,7 +1115,19 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
||||||
//校验手机号是否存在
|
//校验手机号是否存在
|
||||||
UserEntity userInfo = queryByPhone(phone);
|
UserEntity userInfo = queryByPhone(phone);
|
||||||
if (userInfo != null) {
|
if (userInfo != null) {
|
||||||
return Result.error("手机号已经被注册!");
|
if (userInfo.getStatus().equals(2)) {
|
||||||
|
return Result.error("账号已被禁用,请联系客服处理!");
|
||||||
|
}
|
||||||
|
if (courseType != null && courseType == 1) {
|
||||||
|
if ("否".equals(serviceOne.getValue())) {
|
||||||
|
userInfo.setIsPromotion(1);
|
||||||
|
}
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
userInfo.setUpdateTime(sdf.format(new Date()));
|
||||||
|
baseMapper.updateById(userInfo);
|
||||||
|
}
|
||||||
|
return getResult(userInfo);
|
||||||
|
// return Result.error("手机号已经被注册!");
|
||||||
} else {
|
} else {
|
||||||
UserEntity userEntity = null;
|
UserEntity userEntity = null;
|
||||||
if (StringUtils.isNotBlank(inviterCode)) {
|
if (StringUtils.isNotBlank(inviterCode)) {
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ public class Orders implements Serializable {
|
||||||
@ApiModelProperty("平台利润")
|
@ApiModelProperty("平台利润")
|
||||||
private BigDecimal pingRate;
|
private BigDecimal pingRate;
|
||||||
private String endTime;
|
private String endTime;
|
||||||
|
//师傅id
|
||||||
private Long orderTakingUserId;
|
private Long orderTakingUserId;
|
||||||
private String code;
|
private String code;
|
||||||
@ApiModelProperty("支付方式 1零钱 2微信 3支付宝")
|
@ApiModelProperty("支付方式 1零钱 2微信 3支付宝")
|
||||||
|
|
|
||||||
|
|
@ -733,9 +733,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
//分销
|
//分销
|
||||||
UserEntity userEntity = userService.selectUserById(orders.getOrderTakingUserId());
|
UserEntity userEntity = userService.selectUserById(orders.getOrderTakingUserId());
|
||||||
//陪玩官
|
//陪玩官
|
||||||
BigDecimal peiMoney = new BigDecimal("0.00");
|
BigDecimal peiMoney;
|
||||||
if (userEntity.getRate().doubleValue() == 0 || userEntity.getRate().doubleValue() < 0) {
|
if (userEntity.getRate().doubleValue() == 0 || userEntity.getRate().doubleValue() < 0) {
|
||||||
peiMoney = payMoney;
|
peiMoney = BigDecimal.ZERO;
|
||||||
} else {
|
} else {
|
||||||
peiMoney = payMoney.multiply(userEntity.getRate());
|
peiMoney = payMoney.multiply(userEntity.getRate());
|
||||||
}
|
}
|
||||||
|
|
@ -811,6 +811,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
payMoney = BigDecimal.ZERO; // 取消师傅佣金
|
||||||
orders.setRate(payMoney);
|
orders.setRate(payMoney);
|
||||||
userMoneyService.updateMoney(1, orders.getOrderTakingUserId(), payMoney);
|
userMoneyService.updateMoney(1, orders.getOrderTakingUserId(), payMoney);
|
||||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,11 @@ public class PayDetails implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String orderId;
|
private String orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商户单号
|
||||||
|
*/
|
||||||
|
private String outTradeNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付宝交易订单号
|
* 支付宝交易订单号
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,10 @@ import com.icbc.api.IcbcApiException;
|
||||||
import com.icbc.api.IcbcConstants;
|
import com.icbc.api.IcbcConstants;
|
||||||
import com.icbc.api.UiIcbcClient;
|
import com.icbc.api.UiIcbcClient;
|
||||||
import com.icbc.api.request.CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1;
|
import com.icbc.api.request.CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1;
|
||||||
|
import com.icbc.api.request.CardbusinessAggregatepayB2cOnlineMerrefundRequestV1;
|
||||||
import com.icbc.api.request.CardbusinessAggregatepayB2cOnlineUiConsumepurchaseshowpayRequestV1;
|
import com.icbc.api.request.CardbusinessAggregatepayB2cOnlineUiConsumepurchaseshowpayRequestV1;
|
||||||
import com.icbc.api.response.CardbusinessAggregatepayB2cOnlineConsumepurchaseResponseV1;
|
import com.icbc.api.response.CardbusinessAggregatepayB2cOnlineConsumepurchaseResponseV1;
|
||||||
|
import com.icbc.api.response.CardbusinessAggregatepayB2cOnlineMerrefundResponseV1;
|
||||||
import com.icbc.api.utils.IcbcSignature;
|
import com.icbc.api.utils.IcbcSignature;
|
||||||
import com.icbc.api.utils.WebUtils;
|
import com.icbc.api.utils.WebUtils;
|
||||||
import com.sqx.common.utils.DateUtils;
|
import com.sqx.common.utils.DateUtils;
|
||||||
|
|
@ -160,19 +162,25 @@ public class WxServiceImpl implements WxService {
|
||||||
return Result.error(orderTaking.getServiceName() + " 剩余库存不足!");
|
return Result.error(orderTaking.getServiceName() + " 剩余库存不足!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String outTradeNo = "WXPAY_" + getGeneralOrder();
|
||||||
PayDetails payDetails = payDetailsDao.selectByOrderId(bean.getOrdersNo());
|
PayDetails payDetails = payDetailsDao.selectByOrderId(bean.getOrdersNo());
|
||||||
if (payDetails == null) {
|
if (payDetails == null) {
|
||||||
payDetails = new PayDetails();
|
payDetails = new PayDetails();
|
||||||
payDetails.setState(0);
|
payDetails.setState(0);
|
||||||
payDetails.setCreateTime(sdf.format(new Date()));
|
payDetails.setCreateTime(sdf.format(new Date()));
|
||||||
payDetails.setOrderId(bean.getOrdersNo());
|
payDetails.setOrderId(bean.getOrdersNo());
|
||||||
|
payDetails.setOutTradeNo(outTradeNo);
|
||||||
payDetails.setUserId(bean.getUserId());
|
payDetails.setUserId(bean.getUserId());
|
||||||
payDetails.setMoney(bean.getPayMoney().doubleValue());
|
payDetails.setMoney(bean.getPayMoney().doubleValue());
|
||||||
payDetails.setClassify(classify);
|
payDetails.setClassify(classify);
|
||||||
payDetails.setType(2);
|
payDetails.setType(2);
|
||||||
payDetailsDao.insert(payDetails);
|
payDetailsDao.insert(payDetails);
|
||||||
|
}else{
|
||||||
|
payDetails.setOutTradeNo(outTradeNo);
|
||||||
|
payDetailsDao.updateById(payDetails);
|
||||||
}
|
}
|
||||||
return pay(bean.getPayMoney().doubleValue(), classify, bean.getUserId(), bean.getOrdersNo(), request, null);
|
return pay(bean.getPayMoney().doubleValue(), classify, bean.getUserId(), outTradeNo, request, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -300,14 +308,14 @@ public class WxServiceImpl implements WxService {
|
||||||
* 微信支付订单生成
|
* 微信支付订单生成
|
||||||
*
|
*
|
||||||
* @param moneys 支付金额 带小数点
|
* @param moneys 支付金额 带小数点
|
||||||
* @param classify 类型 1app 2 二维码支付 3小程序 公众号支付
|
* @param classify 类型 1app 2 二维码支付/h5支付 3小程序 4公众号支付
|
||||||
* @param userId 用户id
|
* @param userId 用户id
|
||||||
* @param outTradeNo 单号
|
* @param outTradeNo 单号
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private Result pay(Double moneys, Integer classify, Long userId, String outTradeNo, HttpServletRequest request, Integer shop) throws Exception {
|
private Result pay(Double moneys, Integer classify, Long userId, String outTradeNo, HttpServletRequest request, Integer shop) throws Exception {
|
||||||
if(classify == 3){
|
if(classify == 2){
|
||||||
return this.icbcPay(moneys, classify, userId, outTradeNo, request, shop);
|
return this.icbcPay(moneys, classify, userId, outTradeNo, request, shop);
|
||||||
}else{
|
}else{
|
||||||
return this.defaultPay(moneys, classify, userId, outTradeNo, request, shop);
|
return this.defaultPay(moneys, classify, userId, outTradeNo, request, shop);
|
||||||
|
|
@ -698,11 +706,12 @@ public class WxServiceImpl implements WxService {
|
||||||
//微信商户key
|
//微信商户key
|
||||||
// config.setKey(commonInfoService.findOne(75).getValue());
|
// config.setKey(commonInfoService.findOne(75).getValue());
|
||||||
//微信商户号mchId
|
//微信商户号mchId
|
||||||
String mchId = commonInfoService.findOne(76).getValue();
|
// String mchId = commonInfoService.findOne(76).getValue();
|
||||||
//openid
|
//openid
|
||||||
String openId = shop != null ? userEntity.getShopOpenId() : userEntity.getOpenId();
|
String openId = shop != null ? userEntity.getShopOpenId() : userEntity.getOpenId();
|
||||||
//商户appid
|
//商户appid
|
||||||
String mchAppid = shop != null ? commonInfoService.findOne(239).getValue() : commonInfoService.findOne(45).getValue();
|
// String mchAppid = shop != null ? commonInfoService.findOne(239).getValue() : commonInfoService.findOne(45).getValue();
|
||||||
|
String mchAppid = shop != null ? commonInfoService.findOne(239).getValue() : commonInfoService.findOne(5).getValue();
|
||||||
//后台服务名称
|
//后台服务名称
|
||||||
String name = commonInfoService.findOne(12).getValue();
|
String name = commonInfoService.findOne(12).getValue();
|
||||||
//订单金额
|
//订单金额
|
||||||
|
|
@ -711,7 +720,8 @@ public class WxServiceImpl implements WxService {
|
||||||
bizContent.setMer_id(ICBC_MCH_ID); //商户编号
|
bizContent.setMer_id(ICBC_MCH_ID); //商户编号
|
||||||
bizContent.setOut_trade_no(outTradeNo); //商户订单号
|
bizContent.setOut_trade_no(outTradeNo); //商户订单号
|
||||||
bizContent.setPay_mode("9");
|
bizContent.setPay_mode("9");
|
||||||
bizContent.setAccess_type("9");
|
//收单接入方式,5-APP,7-微信公众号,8-支付宝生活号,9-小程序
|
||||||
|
bizContent.setAccess_type("7");
|
||||||
bizContent.setMer_prtcl_no(ICBC_MER_PRTCL_NO); //收单产品协议编号
|
bizContent.setMer_prtcl_no(ICBC_MER_PRTCL_NO); //收单产品协议编号
|
||||||
bizContent.setOrig_date_time(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss")); //交易日期时间,格式为yyyy-MM-dd’T’HH:mm:ss
|
bizContent.setOrig_date_time(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss")); //交易日期时间,格式为yyyy-MM-dd’T’HH:mm:ss
|
||||||
bizContent.setDecive_info(DECIVE_INFO); //设备号
|
bizContent.setDecive_info(DECIVE_INFO); //设备号
|
||||||
|
|
@ -808,19 +818,15 @@ public class WxServiceImpl implements WxService {
|
||||||
// 注意特殊情况:订单已经退款,但收到了支付结果成功的通知,不应把商户的订单状态从退款改成支付成功
|
// 注意特殊情况:订单已经退款,但收到了支付结果成功的通知,不应把商户的订单状态从退款改成支付成功
|
||||||
// 注意特殊情况:微信服务端同样的通知可能会多次发送给商户系统,所以数据持久化之前需要检查是否已经处理过了,处理了直接返回成功标志
|
// 注意特殊情况:微信服务端同样的通知可能会多次发送给商户系统,所以数据持久化之前需要检查是否已经处理过了,处理了直接返回成功标志
|
||||||
//业务数据持久化
|
//业务数据持久化
|
||||||
PayDetails payDetails = payDetailsDao.selectByOrderId(out_trade_no);
|
PayDetails payDetails = payDetailsDao.selectOne(new QueryWrapper<PayDetails>().lambda().eq(PayDetails::getOutTradeNo, out_trade_no));
|
||||||
if (payDetails.getState() == 0) {
|
if (payDetails.getState() == 0) {
|
||||||
payDetails.setState(1);
|
payDetails.setState(1);
|
||||||
payDetails.setPayTime(DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
|
payDetails.setPayTime(DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
|
||||||
payDetails.setTradeNo(transactionId);
|
payDetails.setTradeNo(transactionId);
|
||||||
payDetailsDao.updateById(payDetails);
|
payDetailsDao.updateById(payDetails);
|
||||||
if (payDetails.getType() == 1) {
|
if (payDetails.getType() == 1) {
|
||||||
//设置查询条件
|
|
||||||
QueryWrapper<PayOrder> queryWrapper = new QueryWrapper<>();
|
|
||||||
//根据订单编号去查询订单
|
|
||||||
queryWrapper.eq("orders_no", out_trade_no);
|
|
||||||
//去订单表中查询到该订单
|
//去订单表中查询到该订单
|
||||||
PayOrder orders = payOrderDao.selectOne(queryWrapper);
|
PayOrder orders = payOrderDao.selectOne(new QueryWrapper<PayOrder>().eq("orders_no", payDetails.getOrderId()));
|
||||||
//改变订单状态
|
//改变订单状态
|
||||||
orders.setState(1);
|
orders.setState(1);
|
||||||
orders.setPayWay(type);
|
orders.setPayWay(type);
|
||||||
|
|
@ -990,6 +996,38 @@ public class WxServiceImpl implements WxService {
|
||||||
return resp.toJSONString();
|
return resp.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean icbcRefund(String ordersNo){
|
||||||
|
PayDetails payDetails = payDetailsDao.selectByOrderId(ordersNo);
|
||||||
|
|
||||||
|
DefaultIcbcClient client = new DefaultIcbcClient(ICBC_APPID, IcbcConstants.SIGN_TYPE_RSA2, MY_PRIVATE_KEY, APIGW_PUBLIC_KEY);
|
||||||
|
CardbusinessAggregatepayB2cOnlineMerrefundRequestV1 request = new CardbusinessAggregatepayB2cOnlineMerrefundRequestV1();
|
||||||
|
// //根据测试环境和生产环境替换相应ip和端口
|
||||||
|
request.setServiceUrl(ICBC_URL + "api/cardbusiness/aggregatepay/b2c/online/merrefund/V1");
|
||||||
|
// //请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值
|
||||||
|
CardbusinessAggregatepayB2cOnlineMerrefundRequestV1.CardbusinessAggregatepayB2cOnlineMerrefundRequestV1Biz bizContent = new CardbusinessAggregatepayB2cOnlineMerrefundRequestV1.CardbusinessAggregatepayB2cOnlineMerrefundRequestV1Biz();
|
||||||
|
request.setBizContent(bizContent);
|
||||||
|
bizContent.setMer_id(ICBC_MCH_ID);//商户编号-必输项
|
||||||
|
bizContent.setOuttrx_serial_no(payDetails.getOutTradeNo());//外部退货流水号-必输项
|
||||||
|
bizContent.setOut_trade_no(payDetails.getOutTradeNo());//商户订单号,工行订单号,商户订单号或行内订单号必须其中一个不为空
|
||||||
|
bizContent.setRet_total_amt(payDetails.getMoney().toString());//退货总金额-必输项
|
||||||
|
bizContent.setTrnsc_ccy("001");//交易币种-必输项
|
||||||
|
bizContent.setIcbc_appid(ICBC_APPID);
|
||||||
|
log.info("----调用icbc退款:{}", JSONObject.toJSONString(request));
|
||||||
|
CardbusinessAggregatepayB2cOnlineMerrefundResponseV1 response = null;
|
||||||
|
try {
|
||||||
|
response = client.execute(request);
|
||||||
|
} catch (IcbcApiException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}finally {
|
||||||
|
log.info("----调用icbc退款 log:{}, {}", JSONObject.toJSONString(request), JSONObject.toJSONString(response));
|
||||||
|
}
|
||||||
|
if (response != null && response.isSuccess()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private Result icbcPayUI(Double moneys, Integer classify, Long userId, String outTradeNo, HttpServletRequest httpRequest, Integer shop) throws Exception{
|
private Result icbcPayUI(Double moneys, Integer classify, Long userId, String outTradeNo, HttpServletRequest httpRequest, Integer shop) throws Exception{
|
||||||
UserEntity userEntity = userService.queryByUserId(userId);
|
UserEntity userEntity = userService.queryByUserId(userId);
|
||||||
//回调
|
//回调
|
||||||
|
|
@ -1046,25 +1084,26 @@ public class WxServiceImpl implements WxService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean icbcCheckSign(Map<String, String> reqParams, String path) {
|
private boolean icbcCheckSign(Map<String, String> reqParams, String path) {
|
||||||
Map<String, String> params = new HashMap<>();
|
return true;
|
||||||
String sign = reqParams.get("sign");
|
// Map<String, String> params = new HashMap<>();
|
||||||
params.put("from", reqParams.get("from"));
|
// String sign = reqParams.get("sign");
|
||||||
params.put("api", reqParams.get("api"));
|
// params.put("from", reqParams.get("from"));
|
||||||
params.put("app_id", reqParams.get("app_id"));
|
// params.put("api", reqParams.get("api"));
|
||||||
params.put("charset", reqParams.get("charset"));
|
// params.put("app_id", reqParams.get("app_id"));
|
||||||
params.put("format", reqParams.get("format"));
|
// params.put("charset", reqParams.get("charset"));
|
||||||
params.put("timestamp", reqParams.get("timestamp"));
|
// params.put("format", reqParams.get("format"));
|
||||||
params.put("biz_content", reqParams.get("biz_content"));
|
// params.put("timestamp", reqParams.get("timestamp"));
|
||||||
//目前上行网关签名暂时仅支持RSA
|
// params.put("biz_content", reqParams.get("biz_content"));
|
||||||
params.put("sign_type", reqParams.get("sign_type"));
|
// //目前上行网关签名暂时仅支持RSA
|
||||||
|
// params.put("sign_type", reqParams.get("sign_type"));
|
||||||
String signStr= WebUtils.buildOrderedSignStr(path, params);
|
//
|
||||||
try {
|
// String signStr= WebUtils.buildOrderedSignStr(path, params);
|
||||||
//注意:此次用的是RSA,和下单时不一样
|
// try {
|
||||||
return IcbcSignature.verify(signStr, IcbcConstants.SIGN_TYPE_RSA, APIGW_PUBLIC_KEY, reqParams.get("charset"), sign);
|
// //注意:此次用的是RSA,和下单时不一样
|
||||||
} catch (IcbcApiException e) {
|
// return IcbcSignature.verify(signStr, IcbcConstants.SIGN_TYPE_RSA, APIGW_PUBLIC_KEY, reqParams.get("charset"), sign);
|
||||||
return false;
|
// } catch (IcbcApiException e) {
|
||||||
}
|
// return false;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGeneralOrder() {
|
public String getGeneralOrder() {
|
||||||
|
|
@ -1078,64 +1117,66 @@ public class WxServiceImpl implements WxService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean refund(String ordersNo) {
|
public boolean refund(String ordersNo) {
|
||||||
WXConfigUtil config = null;
|
return this.icbcRefund(ordersNo);
|
||||||
// String h5Url = commonInfoService.findOne(19).getValue().split("://")[1];
|
|
||||||
String filePath = fileUrl + "/service/apiclient_cert.p12";
|
|
||||||
try {
|
|
||||||
config = new WXConfigUtil(filePath);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
int commInfoId = 0;
|
|
||||||
PayDetails payDetails = payDetailsDao.selectByOrderId(ordersNo);
|
|
||||||
Integer payWay = payDetails.getClassify();
|
|
||||||
//orders.getPayWay(); //1app微信 2微信公众号 3微信小程序
|
|
||||||
switch (payWay) {
|
|
||||||
case 1:
|
|
||||||
commInfoId = 74;
|
|
||||||
break; //appId
|
|
||||||
case 2:
|
|
||||||
commInfoId = 5;
|
|
||||||
break; //公众号id
|
|
||||||
case 3:
|
|
||||||
commInfoId = 45;
|
|
||||||
break; //小程序id
|
|
||||||
}
|
|
||||||
config.setAppId(commonInfoService.findOne(commInfoId).getValue());
|
|
||||||
config.setKey(commonInfoService.findOne(75).getValue());
|
|
||||||
config.setMchId(commonInfoService.findOne(76).getValue());
|
|
||||||
WXPay wxpay = new WXPay(config);
|
|
||||||
Map<String, String> data = new HashMap<>();
|
|
||||||
data.put("appid", config.getAppID());
|
|
||||||
data.put("mch_id", config.getMchID());
|
|
||||||
data.put("nonce_str", WXPayUtil.generateNonceStr());
|
|
||||||
try {
|
|
||||||
data.put("sign", WXPayUtil.generateSignature(data, config.getKey(), WXPayConstants.SignType.MD5));
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.put("out_trade_no", payDetails.getOrderId()); //订单号,支付单号一致
|
// WXConfigUtil config = null;
|
||||||
data.put("out_refund_no", payDetails.getOrderId()); //退款单号,同一笔用不同的退款单号
|
//// String h5Url = commonInfoService.findOne(19).getValue().split("://")[1];
|
||||||
BigDecimal multiply = BigDecimal.valueOf(payDetails.getMoney()).multiply(BigDecimal.valueOf(100));
|
// String filePath = fileUrl + "/service/apiclient_cert.p12";
|
||||||
String fee = String.valueOf(multiply.intValue());
|
// try {
|
||||||
data.put("total_fee", fee); //1块等于微信支付传入100);
|
// config = new WXConfigUtil(filePath);
|
||||||
data.put("refund_fee", fee); //1块等于微信支付传入100);
|
// } catch (Exception e) {
|
||||||
//使用官方API退款
|
// e.printStackTrace();
|
||||||
try {
|
// }
|
||||||
Map<String, String> response = wxpay.refund(data);
|
// int commInfoId = 0;
|
||||||
if ("SUCCESS".equals(response.get("return_code"))) {//主要返回以下5个参数
|
// PayDetails payDetails = payDetailsDao.selectByOrderId(ordersNo);
|
||||||
System.err.println("退款成功");
|
// Integer payWay = payDetails.getClassify();
|
||||||
return true;
|
// //orders.getPayWay(); //1app微信 2微信公众号 3微信小程序
|
||||||
} else {
|
// switch (payWay) {
|
||||||
return false;
|
// case 1:
|
||||||
}
|
// commInfoId = 74;
|
||||||
} catch (Exception e) {
|
// break; //appId
|
||||||
log.info("微信退款异常:" + e.getMessage(), e);
|
// case 2:
|
||||||
e.printStackTrace();
|
// commInfoId = 5;
|
||||||
return false;
|
// break; //公众号id
|
||||||
}
|
// case 3:
|
||||||
|
// commInfoId = 45;
|
||||||
|
// break; //小程序id
|
||||||
|
// }
|
||||||
|
// config.setAppId(commonInfoService.findOne(commInfoId).getValue());
|
||||||
|
// config.setKey(commonInfoService.findOne(75).getValue());
|
||||||
|
// config.setMchId(commonInfoService.findOne(76).getValue());
|
||||||
|
// WXPay wxpay = new WXPay(config);
|
||||||
|
// Map<String, String> data = new HashMap<>();
|
||||||
|
// data.put("appid", config.getAppID());
|
||||||
|
// data.put("mch_id", config.getMchID());
|
||||||
|
// data.put("nonce_str", WXPayUtil.generateNonceStr());
|
||||||
|
// try {
|
||||||
|
// data.put("sign", WXPayUtil.generateSignature(data, config.getKey(), WXPayConstants.SignType.MD5));
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// data.put("out_trade_no", payDetails.getOrderId()); //订单号,支付单号一致
|
||||||
|
// data.put("out_refund_no", payDetails.getOrderId()); //退款单号,同一笔用不同的退款单号
|
||||||
|
// BigDecimal multiply = BigDecimal.valueOf(payDetails.getMoney()).multiply(BigDecimal.valueOf(100));
|
||||||
|
// String fee = String.valueOf(multiply.intValue());
|
||||||
|
// data.put("total_fee", fee); //1块等于微信支付传入100);
|
||||||
|
// data.put("refund_fee", fee); //1块等于微信支付传入100);
|
||||||
|
// //使用官方API退款
|
||||||
|
// try {
|
||||||
|
// Map<String, String> response = wxpay.refund(data);
|
||||||
|
// if ("SUCCESS".equals(response.get("return_code"))) {//主要返回以下5个参数
|
||||||
|
// System.err.println("退款成功");
|
||||||
|
// return true;
|
||||||
|
// } else {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// log.info("微信退款异常:" + e.getMessage(), e);
|
||||||
|
// e.printStackTrace();
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
|
@ -25,8 +26,8 @@ public class AppGameController {
|
||||||
|
|
||||||
@GetMapping("/queryGameNameList")
|
@GetMapping("/queryGameNameList")
|
||||||
@ApiOperation("查询分类和数据")
|
@ApiOperation("查询分类和数据")
|
||||||
public Result queryGameNameList() {
|
public Result queryGameNameList(@RequestParam(name = "laundryId",required = false)String laundryId) {
|
||||||
return gameService.queryGameNameList();
|
return gameService.queryGameNameList(laundryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import com.sqx.modules.taking.entity.Game;
|
||||||
public interface GameService extends IService<Game> {
|
public interface GameService extends IService<Game> {
|
||||||
|
|
||||||
|
|
||||||
Result queryGameNameList();
|
Result queryGameNameList(String laundryId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询首页游戏分类
|
* 查询首页游戏分类
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.sqx.modules.taking.entity.OrderTaking;
|
||||||
import com.sqx.modules.taking.service.GameService;
|
import com.sqx.modules.taking.service.GameService;
|
||||||
import com.sqx.modules.taking.service.OrderTakingService;
|
import com.sqx.modules.taking.service.OrderTakingService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
@ -30,12 +31,18 @@ public class GameServiceImpl extends ServiceImpl<GameDao, Game> implements GameS
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result queryGameNameList() {
|
public Result queryGameNameList(String laundryId) {
|
||||||
QueryWrapper<Game> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Game> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("status", 0);
|
queryWrapper.eq("status", 0);
|
||||||
List<Game> games = baseMapper.selectList(queryWrapper);
|
List<Game> games = baseMapper.selectList(queryWrapper);
|
||||||
for(Game game:games){
|
for(Game game:games){
|
||||||
game.setOrderTakingList(orderTakingService.list(new QueryWrapper<OrderTaking>().eq("game_id",game.getId()).eq("status",0).ne("is_delete",-1).orderByAsc("sort")));
|
QueryWrapper<OrderTaking> query = new QueryWrapper<OrderTaking>().eq("game_id",game.getId()).eq("status",0).ne("is_delete",-1).orderByAsc("sort");
|
||||||
|
if(StringUtils.isBlank(laundryId)){
|
||||||
|
query.eq("is_recommend", 1);
|
||||||
|
}else{
|
||||||
|
query.eq("laundry_ids", laundryId);
|
||||||
|
}
|
||||||
|
game.setOrderTakingList(orderTakingService.list(query));
|
||||||
}
|
}
|
||||||
return Result.success().put("data", games);
|
return Result.success().put("data", games);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue