src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -693,4 +693,15 @@ return mallInvoiceService.addInvoiceUrl(mallInvoice); } /** * 发票列表-更新抬头 * @param id * @return */ @GetMapping("updateInvoiceDetail/{id}") @ControllerEndpoint(operation = "发票列表-更新抬头", exceptionMessage = "操作失败") public FebsResponse updateInvoiceDetail(@NotNull(message = "{required}") @PathVariable Long id) { return mallInvoiceService.updateInvoiceDetail(id); } } src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java
@@ -26,4 +26,6 @@ List<MallOrderItem> invoiceItemList(); FebsResponse addInvoiceUrl(MallInvoice mallInvoice); FebsResponse updateInvoiceDetail(Long id); } src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java
@@ -17,15 +17,20 @@ import cc.mrbird.febs.mall.service.MallInvoiceService; import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; import cc.mrbird.febs.mall.vo.ApiMallInvoiceVo; import cc.mrbird.febs.pay.service.WxFaPiaoService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.util.List; @Slf4j @@ -36,6 +41,7 @@ private final MallOrderInfoMapper mallOrderInfoMapper; private final MallOrderItemMapper mallOrderItemMapper; private final RedisUtils redisUtils; private final WxFaPiaoService wxFaPiaoService; @Override public FebsResponse getInvoices(ApiMallInvoiceDto apiMallInvoiceDto) { MallMember member = LoginUserUtil.getLoginUser(); @@ -110,6 +116,7 @@ } @Override @Transactional public FebsResponse addInvoiceUrl(MallInvoice mallInvoice) { Long id = mallInvoice.getId(); MallInvoice mallInvoiceOld = this.baseMapper.selectById(id); @@ -125,4 +132,30 @@ this.baseMapper.updateById(mallInvoiceOld); return new FebsResponse().success(); } @Override @Transactional public FebsResponse updateInvoiceDetail(Long id) { MallInvoice mallInvoice = this.baseMapper.selectById(id); if(ObjectUtil.isEmpty(mallInvoice)){ return new FebsResponse().fail().message("开票信息异常。"); } String fapiaoApplyId = mallInvoice.getFapiaoApplyId(); try { String userInvoiceInfo = wxFaPiaoService.getUserInvoiceInfo(fapiaoApplyId); JSONObject userInvoiceInfoJson = JSONUtil.parseObj(userInvoiceInfo); mallInvoice.setState(1); mallInvoice.setType(userInvoiceInfoJson.getStr("type")); mallInvoice.setName(userInvoiceInfoJson.getStr("name")); mallInvoice.setTaxpayerId(userInvoiceInfoJson.getStr("taxpayer_id")); mallInvoice.setAddress(userInvoiceInfoJson.getStr("address")); mallInvoice.setTelephone(userInvoiceInfoJson.getStr("telephone")); mallInvoice.setBankName(userInvoiceInfoJson.getStr("bank_name")); mallInvoice.setBankAccount(userInvoiceInfoJson.getStr("bank_account")); this.baseMapper.updateById(mallInvoice); } catch (IOException e) { e.printStackTrace(); } return new FebsResponse().success(); } } src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java
@@ -22,4 +22,6 @@ String sendGet(String url, Map<String, Object> params, String token); Map<String, Object> fapiaoCallBack(HttpServletRequest request, @RequestBody Map<String, Object> requestBody); String getUserInvoiceInfo(String fapiaoApplyId) throws IOException; } src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java
@@ -364,7 +364,7 @@ // mallOrderInfo.setIsInvoice(1); // mallOrderInfoMapper.updateById(mallOrderInfo); //获取用户的抬头信息 String userInvoiceInfo = getUserInvoiceInfo(fapiao_apply_id); String userInvoiceInfo = this.getUserInvoiceInfo(fapiao_apply_id); JSONObject userInvoiceInfoJson = JSONUtil.parseObj(userInvoiceInfo); //查看当前订单是否已经开具发票 Long memberId = mallOrderInfo.getMemberId(); @@ -425,6 +425,7 @@ /** * 获取用户的抬头信息 */ @Override public String getUserInvoiceInfo(String fapiaoApplyId) throws IOException { //初始化请求参数 src/main/resources/templates/febs/views/modules/order/invoiceList.html
@@ -111,10 +111,15 @@ area:['100%','100%'], }); } if (layEvent === 'updateInvoiceDetail') { febs.modal.confirm('更新', '是否更新用户的抬头信息?', function () { updateInvoiceDetail(data.id); }); } }); function cancelOrder(id) { febs.get(ctx + 'admin/order/cancelOrder/' + id, null, function () { function updateInvoiceDetail(id) { febs.get(ctx + 'admin/order/updateInvoiceDetail/' + id, null, function () { febs.alert.success('操作成功'); $query.click(); }); @@ -195,7 +200,8 @@ {title: '操作', templet: function (d) { if(d.status === 4){ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeInvoiceDetail" shiro:hasPermission="user:update">开票信息</button>' return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeInvoiceDetail" shiro:hasPermission="user:update">开票信息</button>' + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateInvoiceDetail" shiro:hasPermission="user:update">更新抬头</button>' }else{ return '' }