Browse Source

fix 发票订单

he2802 3 năm trước cách đây
mục cha
commit
8cda9bdbd7

+ 82 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderInvoiceController.java

@@ -0,0 +1,82 @@
+package com.zhongzheng.controller.order;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.order.bo.OrderInvoiceAddBo;
+import com.zhongzheng.modules.order.bo.OrderInvoiceEditBo;
+import com.zhongzheng.modules.order.bo.OrderInvoiceQueryBo;
+import com.zhongzheng.modules.order.service.IOrderInvoiceService;
+import com.zhongzheng.modules.order.vo.OrderInvoiceVo;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单发票Controller
+ *
+ * @author hjl
+ * @date 2022-03-28
+ */
+@Api(value = "订单发票控制器", tags = {"订单发票管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/order/invoice")
+public class OrderInvoiceController extends BaseController {
+
+    private final IOrderInvoiceService iOrderInvoiceService;
+
+    private final WxTokenService wxTokenService;
+
+    /**
+     * 查询订单发票列表
+     */
+    @ApiOperation("查询订单发票列表")
+    @PreAuthorize("@ss.hasPermi('system:invoice:list')")
+    @GetMapping("/list")
+    public TableDataInfo<OrderInvoiceVo> list(OrderInvoiceQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        startPage();
+        List<OrderInvoiceVo> list = iOrderInvoiceService.selectList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 获取订单发票详细信息
+     */
+    @ApiOperation("获取订单发票详细信息")
+    @PreAuthorize("@ss.hasPermi('system:invoice:query')")
+    @GetMapping("/{invoiceId}")
+    public AjaxResult<OrderInvoiceVo> getInfo(@PathVariable("invoiceId" ) Long invoiceId) {
+        return AjaxResult.success(iOrderInvoiceService.queryById(invoiceId));
+    }
+
+    /**
+     * 新增订单发票
+     */
+    @ApiOperation("新增订单发票")
+    @PreAuthorize("@ss.hasPermi('system:invoice:add')")
+    @Log(title = "订单发票", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody OrderInvoiceAddBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return toAjax(iOrderInvoiceService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+
+
+}

+ 16 - 9
zhongzheng-framework/src/main/java/com/zhongzheng/framework/aspectj/DataScopeAspect.java

@@ -16,6 +16,7 @@ import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.annotation.Pointcut;
 import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Method;
@@ -64,6 +65,9 @@ public class DataScopeAspect
      */
     public static final String DATA_SCOPE = "dataScope";
 
+    @Value("${zhongzheng.name}")
+    private String applicationName;
+
     // 配置织入点
     @Pointcut("@annotation(com.zhongzheng.common.annotation.DataScope)")
     public void dataScopePointCut()
@@ -84,16 +88,19 @@ public class DataScopeAspect
         {
             return;
         }
-        // 获取当前的用户
-        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        if (Validator.isNotNull(loginUser))
-        {
-            SysUser currentUser = loginUser.getUser();
-            // 如果是超级管理员,则不过滤数据
-            if (Validator.isNotNull(currentUser) && !currentUser.isAdmin())
+        //后台
+        if(applicationName.equals("zhongzheng")){
+            // 获取当前的用户
+            LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+            if (Validator.isNotNull(loginUser))
             {
-                dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
-                        controllerDataScope.userAlias(),controllerDataScope.businessAlias());
+                SysUser currentUser = loginUser.getUser();
+                // 如果是超级管理员,则不过滤数据
+                if (Validator.isNotNull(currentUser) && !currentUser.isAdmin())
+                {
+                    dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
+                            controllerDataScope.userAlias(),controllerDataScope.businessAlias());
+                }
             }
         }
     }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderInvoiceAddBo.java

@@ -8,6 +8,7 @@ import java.util.Date;
 
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 订单发票添加对象 order_invoice
@@ -106,4 +107,6 @@ public class OrderInvoiceAddBo {
     /** 审核时间 */
     @ApiModelProperty("审核时间")
     private Long periodTime;
+    @ApiModelProperty("订单商品ID数组")
+    private List<Long> orderGoodsIds;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderInvoiceMapper.java

@@ -16,5 +16,6 @@ import java.util.List;
  */
 public interface OrderInvoiceMapper extends BaseMapper<OrderInvoice> {
     List<OrderInvoiceVo> selectList(OrderInvoiceQueryBo bo);
+    Long checkHave(Long orderGoodsId);
 
 }

+ 28 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderInvoiceServiceImpl.java

@@ -5,19 +5,25 @@ import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.course.bo.CourseChapterBusinessAddBo;
+import com.zhongzheng.modules.course.mapper.CourseChapterMapper;
 import com.zhongzheng.modules.order.bo.OrderInvoiceAddBo;
 import com.zhongzheng.modules.order.bo.OrderInvoiceEditBo;
+import com.zhongzheng.modules.order.bo.OrderInvoiceOrderAddBo;
 import com.zhongzheng.modules.order.bo.OrderInvoiceQueryBo;
 import com.zhongzheng.modules.order.domain.OrderInvoice;
 import com.zhongzheng.modules.order.mapper.OrderInvoiceMapper;
+import com.zhongzheng.modules.order.service.IOrderInvoiceOrderService;
 import com.zhongzheng.modules.order.service.IOrderInvoiceService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderInvoiceVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -33,6 +39,9 @@ import java.util.stream.Collectors;
 @Service
 public class OrderInvoiceServiceImpl extends ServiceImpl<OrderInvoiceMapper, OrderInvoice> implements IOrderInvoiceService {
 
+    @Autowired
+    private IOrderInvoiceOrderService iOrderInvoiceOrderService;
+
     @Override
     public OrderInvoiceVo queryById(Long invoiceId){
         OrderInvoice db = this.baseMapper.selectById(invoiceId);
@@ -91,12 +100,30 @@ public class OrderInvoiceServiceImpl extends ServiceImpl<OrderInvoiceMapper, Ord
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByAddBo(OrderInvoiceAddBo bo) {
         OrderInvoice add = BeanUtil.toBean(bo, OrderInvoice.class);
+        if(Validator.isEmpty(bo.getOrderGoodsIds())||bo.getOrderGoodsIds().size()==0){
+            throw new CustomException("请选择订单商品");
+        }
+        for(int i=0;i<bo.getOrderGoodsIds().size();i++){
+            if(baseMapper.checkHave(bo.getOrderGoodsIds().get(i))>0){
+                throw new CustomException("包含已申请订单");
+            }
+        }
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        return this.save(add);
+        boolean rs = this.save(add);
+        if(rs){
+            for(int i=0;i<bo.getOrderGoodsIds().size();i++){
+                OrderInvoiceOrderAddBo item = new OrderInvoiceOrderAddBo();
+                item.setInvoiceId(add.getInvoiceId());
+                item.setOrderGoodsId(bo.getOrderGoodsIds().get(i));
+                iOrderInvoiceOrderService.insertByAddBo(item);
+            }
+        }
+        return rs;
     }
 
     @Override

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -360,7 +360,8 @@ public class WxPayServiceImpl  implements IWxPayService {
     @Override
     public OrderGoods setServiceTime(OrderGoods g){
         GoodsVo goodsVo = iGoodsService.queryById(g.getGoodsId());
-        if (goodsVo.getGoodsType().equals(1L)){
+        //视频商品题库商品设置服务有效期
+        if (goodsVo.getGoodsType().equals(1L)||goodsVo.getGoodsType().equals(2L)){
             if(Validator.isNotEmpty(goodsVo.getServiceTimeType())){
                 if(Validator.isNotEmpty(goodsVo.getServiceTimeNum())){
                     if(goodsVo.getServiceTimeType()==1){ //年

+ 14 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderInvoiceMapper.xml

@@ -108,6 +108,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="subject != null and subject != ''">
             AND oi.subject = #{subject}
         </if>
+        <if test="userId != null and userId != ''">
+            AND oi.user_id = #{userId}
+        </if>
         <if test="applyStartTime != null and applyStartTime != ''">
             AND oi.apply_time >= #{applyStartTime}
         </if>
@@ -119,4 +122,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
 
+    <select id="checkHave" parameterType="Long" resultType="Long">
+        SELECT
+            count(*)
+        FROM
+            order_invoice oi
+                LEFT JOIN order_invoice_order oio ON oi.invoice_id = oio.invoice_id
+        WHERE
+            oio.order_goods_id = #{orderGoodsId}
+          AND oi.period_status != 2
+    </select>
+
 </mapper>

+ 0 - 1
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -182,7 +182,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectListApp" parameterType="com.zhongzheng.modules.order.bo.OrderQueryBo" resultMap="OrderResultVo">
         SELECT
             o.*
-
         FROM
             `order` o where 1=1
         <if test="userId != null">