KKSU
2024-01-19 6c33001421bbdc70d6d432ae0904057f832bccab
fapiao
6 files modified
63 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/MallInvoiceService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/MallInvoiceServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/WxFaPiaoService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/pay/service/impl/WxFaPiaoServiceImpl.java 3 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/order/invoiceList.html 12 ●●●● patch | view | raw | blame | history
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 ''
                                }