Browse Source

3/15

master
wangpengfei 1 year ago
parent
commit
ddfbb48ec7
  1. 6
      src/main/java/com/yxt/yythmall/biz/ordorder/OrdOrderRest.java
  2. 15
      src/main/java/com/yxt/yythmall/biz/ordorder/OrdOrderService.java
  3. 102
      src/main/java/com/yxt/yythmall/biz/wx/WxConfig.java
  4. 28
      src/main/java/com/yxt/yythmall/biz/wx/invoice/ElectronicInvoice.java
  5. 15
      src/main/java/com/yxt/yythmall/biz/wx/invoice/RequestMes.java

6
src/main/java/com/yxt/yythmall/biz/ordorder/OrdOrderRest.java

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

15
src/main/java/com/yxt/yythmall/biz/ordorder/OrdOrderService.java

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

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

28
src/main/java/com/yxt/yythmall/biz/wx/invoice/ElectronicInvoice.java

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

15
src/main/java/com/yxt/yythmall/biz/wx/invoice/RequestMes.java

@ -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;
}
Loading…
Cancel
Save