3/15
This commit is contained in:
@@ -70,4 +70,10 @@ public class OrdOrderRest {
|
||||
public ResultBean refundBusiness(@RequestBody String mainSid) {
|
||||
return ordOrderService.refundBusiness(mainSid);
|
||||
}
|
||||
|
||||
@PostMapping("/electronicInvoice")
|
||||
@ApiOperation(value = "电子发票")
|
||||
public ResultBean electronicInvoice(@RequestBody String mainSid) {
|
||||
return ordOrderService.electronicInvoice(mainSid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -632,6 +632,21 @@ public class OrdOrderService extends MybatisBaseService<OrdOrderMapper, OrdOrder
|
||||
}
|
||||
return rb.success();
|
||||
}
|
||||
public ResultBean electronicInvoice(String mainSid) {
|
||||
ResultBean rb = new ResultBean().fail();
|
||||
OrdOrder order=baseMapper.selectOne(new QueryWrapper<OrdOrder>().eq("mainSid",mainSid));
|
||||
List<OrdOrderDetail> detailList=ordOrderDetailService.list(new QueryWrapper<OrdOrderDetail>().eq("orderSid",order.getSid()));
|
||||
for(OrdOrderDetail detail:detailList){
|
||||
LpkGoods cl=lpkGoodsService.getOne(new QueryWrapper<LpkGoods>().eq("sid",detail.getGoodsSid()));
|
||||
VegetableCellar vegetableCellar=vegetableCellarService.getOne(new QueryWrapper<VegetableCellar>().eq("customerSid",order.getUserSid())
|
||||
.eq("goodsSid",detail.getGoodsSid()).eq("affiliation",cl.getBrandId()));
|
||||
if(vegetableCellar.getGoodsNumber().equals(String.valueOf(detail.getPartNumber()))){
|
||||
vegetableCellar.setGoodsNumber(String.valueOf(Double.valueOf(vegetableCellar.getGoodsNumber())-Double.valueOf(detail.getPartNumber())));
|
||||
vegetableCellarService.updateById(vegetableCellar);
|
||||
}
|
||||
}
|
||||
return rb.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 去除多余.0
|
||||
|
||||
102
src/main/java/com/yxt/yythmall/biz/wx/WxConfig.java
Normal file
102
src/main/java/com/yxt/yythmall/biz/wx/WxConfig.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package com.yxt.yythmall.biz.wx;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
public class WxConfig {
|
||||
|
||||
private static final Logger L = LoggerFactory.getLogger(WxConfig.class);
|
||||
|
||||
private static final long token_expires_in = 5400 * 1000;
|
||||
private static final String WX_URL_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
|
||||
|
||||
//获取 ticket
|
||||
private static final String ticket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card";
|
||||
private static String wx_ticket;
|
||||
|
||||
private static final long ticket_expires_in = 5400 * 1000;
|
||||
|
||||
private static long wx_ticket_create_timestamp;
|
||||
|
||||
private static String wx_access_token;
|
||||
private static long wx_token_create_timestamp;
|
||||
private static String mp_access_token;
|
||||
private static long mp_token_create_timestamp;
|
||||
|
||||
public static final String WX_APPID = "wxc64c6cf0a06880e5";
|
||||
private static final String WX_APPSECRET = "eb3a0794da05f12a94c92134030246f1";
|
||||
public static final String MP_APPID = "wx05604ce2a8bede05";
|
||||
private static final String MP_APPSECRET = "3d36e8a61212cf773a2fa4e6c9a83334";
|
||||
|
||||
|
||||
/**
|
||||
* 使用AppId和AppSecret获取AccessToken(公众号和小程序通用)
|
||||
*
|
||||
* @param appid
|
||||
* @param secret
|
||||
* @return
|
||||
*/
|
||||
public static String getAccessToken(String appid, String secret) {
|
||||
String url = WX_URL_ACCESS_TOKEN.replace("APPID", appid).replace("APPSECRET", secret);
|
||||
String res = new RestTemplate().getForObject(url, String.class);
|
||||
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||
String token = jsonObject.getString("access_token");
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公众号的AccessToken
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String wxAccessToken() {
|
||||
if (StringUtils.isBlank(wx_access_token) || System.currentTimeMillis() > (wx_token_create_timestamp + token_expires_in)) {
|
||||
wx_access_token = getAccessToken(WX_APPID, WX_APPSECRET);
|
||||
wx_token_create_timestamp = System.currentTimeMillis();
|
||||
}
|
||||
return wx_access_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小程序的AccessToken
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String mpAccessToken() {
|
||||
if (StringUtils.isBlank(mp_access_token) || System.currentTimeMillis() > (mp_token_create_timestamp + token_expires_in)) {
|
||||
mp_access_token = getAccessToken(MP_APPID, MP_APPSECRET);
|
||||
mp_token_create_timestamp = System.currentTimeMillis();
|
||||
}
|
||||
return mp_access_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ticket
|
||||
* @param appid
|
||||
* @param secret
|
||||
* @return
|
||||
*/
|
||||
public static String getTicket(String appid, String secret) {
|
||||
String url = ticket.replace("ACCESS_TOKEN",wxAccessToken());
|
||||
String res = new RestTemplate().getForObject(url, String.class);
|
||||
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||
String ticket = jsonObject.getString("ticket");
|
||||
return ticket;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公众号的ticket
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String wxTicket() {
|
||||
if (StringUtils.isBlank(wx_ticket) || System.currentTimeMillis() > (wx_ticket_create_timestamp + ticket_expires_in)) {
|
||||
wx_ticket = getTicket(WX_APPID, WX_APPSECRET);
|
||||
wx_ticket_create_timestamp = System.currentTimeMillis();
|
||||
}
|
||||
return wx_ticket;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.yxt.yythmall.biz.wx.invoice;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yxt.common.core.result.ResultBean;
|
||||
import com.yxt.yythmall.biz.wx.WxConfig;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/3/15 16:09
|
||||
*/
|
||||
public class ElectronicInvoice {
|
||||
private static final String AUTHORIZATION_PAGE="https://api.weixin.qq.com/card/invoice/getauthurl?access_token=ACCESS_TOKEN";
|
||||
|
||||
public ResultBean getAuthorizationPage(String appid, String secret) {
|
||||
ResultBean rb= ResultBean.fireFail();
|
||||
String url = AUTHORIZATION_PAGE.replace("ACCESS_TOKEN", WxConfig.wxAccessToken());
|
||||
Map<String, String> map = new HashMap<>();
|
||||
RequestMes res = new RestTemplate().postForObject(url,map,RequestMes.class);
|
||||
if(!res.getErrcode().equals("0")){
|
||||
return rb;
|
||||
}
|
||||
return rb;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.yxt.yythmall.biz.wx.invoice;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/3/15 17:26
|
||||
*/
|
||||
@Data
|
||||
public class RequestMes {
|
||||
private String errcode;
|
||||
private String errmsg;
|
||||
private String auth_url;
|
||||
private String appid;
|
||||
}
|
||||
Reference in New Issue
Block a user