Forráskód Böngészése

Merge branch 'dev'

yangdamao 5 hónapja
szülő
commit
716129d95a

+ 7 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -507,4 +507,11 @@ public class ScheduleController extends BaseController {
         iScheduleService.periodPushReminder();
         return AjaxResult.success();
     }
+
+    @ApiOperation("自动证书生成")
+    @GetMapping("/certificate/generate")
+    public AjaxResult certificateGenerate(){
+        iScheduleService.certificateGenerate();
+        return AjaxResult.success();
+    }
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseBusiness.java

@@ -80,6 +80,8 @@ private static final long serialVersionUID=1L;
     private Integer photoSign;
     /** 是否能购买:0否 1是 */
     private Integer buySign;
+    /** 是否延时生成证书: 1是 0否 */
+    private Integer certificateSign;
     private Long tenantId;
 
     @TableField(exist = false)

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -320,6 +320,9 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	@ApiModelProperty("录单订单编号")
 	private String inputOrderSn;
 
+	/** 是否延时生成证书: 1是 0否 */
+	private Integer certificateSign;
+
 	private List<Long> tenantIds;
 
 	private List<Long> educationTypeIds;

+ 5 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -552,6 +552,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             classGradeUserQueryBo.setGradeId(bo.getGradeId());
             classGradeUserQueryBo.setGoodsId(bo.getGoodsId());
             classGradeUserQueryBo.setOrderGoodsId(bo.getOrderGoodsId());
+            classGradeUserQueryBo.setCertificateSign(business.getCertificateSign());
 
             ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,bo.getUserId()).eq(ClassGradeUser::getGradeId,bo.getGradeId()).last("limit 1"));
             if(Validator.isNotEmpty(gradeUser)){
@@ -1270,8 +1271,10 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
 
     //学时通过处理事件
     private void periodPass(ClassGradeUserQueryBo classGradeUserQueryBo) {
-        //生成证书
-        iCertificateTpService.makeCertificatePhoto(classGradeUserQueryBo);
+        if (classGradeUserQueryBo.getCertificateSign() == 0){
+            //生成证书
+            iCertificateTpService.makeCertificatePhoto(classGradeUserQueryBo);
+        }
         //官方学时推送
         iClassGradeUserService.pushOfficialPeriod(classGradeUserQueryBo);
     }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java

@@ -10,6 +10,7 @@ import com.zhongzheng.modules.order.bo.MailOrderBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.vo.CertificateOrderVo;
 import com.zhongzheng.modules.order.vo.HandleStudyVo;
 import com.zhongzheng.modules.order.vo.MailOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
@@ -96,4 +97,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
     List<TopOldOrderRepDetailVo> listRepByOrderSn(TopOrderRepGoodsQueryBo queryBo);
 
     List<HandleStudyVo> getHandleStudyList(HandleStudyQuery query);
+
+    List<CertificateOrderVo> getCertificateOrder();
 }

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -10,10 +10,7 @@ import com.zhongzheng.modules.goods.vo.GoodsSectionListVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.OrderGoods;
-import com.zhongzheng.modules.order.vo.HandleStudyVo;
-import com.zhongzheng.modules.order.vo.MailOrderVo;
-import com.zhongzheng.modules.order.vo.OrderGoodsVo;
-import com.zhongzheng.modules.order.vo.OrderUserGoodsVo;
+import com.zhongzheng.modules.order.vo.*;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo;
 import com.zhongzheng.modules.top.order.bo.TopOrderRepGoodsQueryBo;
@@ -152,4 +149,7 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     List<HandleStudyVo> getHandleStudyList(HandleStudyQuery query);
 
     boolean checkBuyGoods(Long goodsId);
+
+    List<CertificateOrderVo> getCertificateOrder();
+
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -1017,6 +1017,11 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return business.getBuySign() == 1;
     }
 
+    @Override
+    public List<CertificateOrderVo> getCertificateOrder() {
+        return baseMapper.getCertificateOrder();
+    }
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/CertificateOrderVo.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.order.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CertificateOrderVo implements Serializable {
+
+    private Long userId;
+    private Long goodsId;
+    private Long gradeId;
+    private Long orderGoodsId;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -129,4 +129,7 @@ public interface IScheduleService extends IService<PolyvVideo> {
     void classExpirationReminder();
 
     void periodPushReminder();
+
+    void certificateGenerate();
+
 }

+ 23 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -24,6 +24,7 @@ import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.modules.alioss.bo.OssRequest;
 import com.zhongzheng.modules.alioss.service.OssService;
 import com.zhongzheng.modules.alisms.vo.ResultBean;
+import com.zhongzheng.modules.base.service.ICertificateTpService;
 import com.zhongzheng.modules.base.service.IProfileTpService;
 import com.zhongzheng.modules.base.vo.ProfileTpVo;
 import com.zhongzheng.modules.course.bo.CourseChapterSectionQueryBo;
@@ -97,6 +98,7 @@ import com.zhongzheng.modules.order.mapper.OrderGoodsMapper;
 import com.zhongzheng.modules.order.mapper.OrderMapper;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.CertificateOrderVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
@@ -200,6 +202,9 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
 
+    @Autowired
+    private ICertificateTpService iCertificateTpService;
+
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -2275,6 +2280,24 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         }
     }
 
+    @Override
+    public void certificateGenerate() {
+        //获取可以生成证书的订单信息(学完审核通过一个月以后)
+        List<CertificateOrderVo> vos = iOrderGoodsService.getCertificateOrder();
+        if (CollectionUtils.isEmpty(vos)){
+            return;
+        }
+        vos.forEach(item -> {
+            //生成证书
+            ClassGradeUserQueryBo queryBo = new ClassGradeUserQueryBo();
+            queryBo.setOrderGoodsId(item.getOrderGoodsId());
+            queryBo.setGoodsId(item.getGoodsId());
+            queryBo.setGradeId(item.getGradeId());
+            queryBo.setUserId(item.getUserId());
+            iCertificateTpService.makeCertificatePhoto(queryBo);
+        });
+    }
+
 
     private String getWeeks(Long time){
         Calendar calendar = Calendar.getInstance();

+ 26 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -1101,4 +1101,30 @@
             AND AES_DECRYPT(UNHEX(u.telphone),'base20230213zzkj') = #{userTel}
         </if>
     </select>
+    <select id="getCertificateOrder" resultType="com.zhongzheng.modules.order.vo.CertificateOrderVo">
+        SELECT
+            u.user_id,
+            og.goods_id,
+            cgu.grade_id,
+            og.order_goods_id
+        FROM
+            order_goods og
+                LEFT JOIN `order` o ON og.order_sn = o.order_sn
+                LEFT JOIN goods g ON og.goods_id = g.goods_id
+                LEFT JOIN course_business cb ON g.business_id = cb.id
+                LEFT JOIN `user` u ON o.user_id = u.user_id
+                LEFT JOIN class_grade_user cgu ON og.order_goods_id = cgu.order_goods_id
+        WHERE
+            og.`status` = 1
+            AND og.pay_status != 1
+	        AND og.tenant_id = 779352047136603
+	        AND og.refund_status != 2
+	        AND o.`status` = 1
+	        AND cgu.period_status = 1
+	        AND cgu.`status` = 1
+	        AND cgu.change_grade = 0
+	        AND cb.certificate_sign = 1
+	        AND ( SELECT COUNT(*) FROM user_certificate uc WHERE uc.order_goods_id = og.order_goods_id ) = 0
+	        AND NOW() > DATE_ADD(FROM_UNIXTIME( cgu.period_time ),INTERVAL 30 DAY)
+    </select>
 </mapper>