yangdamao vor 5 Tagen
Ursprung
Commit
eb30debed2

+ 1 - 41
run-prod.sh

@@ -70,44 +70,4 @@ docker run \
 -v /mydata/app/${app_admin_name}/logs:/var/logs \
 -v /data/nginx/conf.d:/data/nginx/conf.d \
 -d ${group_admin_name}/${app_admin_name}:${app_admin_version}
-echo '----start container admin----'
-
-echo "开始等待20秒..."
-# 1-10秒内随机
-sleep 5
-echo "等待后继续"
-
-#!/usr/bin/env bash
-# 定义应用组名
-group_admin_name='zhichen'
-# 定义应用名称
-app_admin_name='zhichen-saas-admin-top'
-# 定义应用版本
-app_admin_version='1.0-SNAPSHOT'
-# 定义应用环境
-profile_active='prod'
-echo '----copy jar admin top----'
-docker stop ${app_admin_name}
-echo '----stop container admin top----'
-docker rm ${app_admin_name}
-echo '----rm container admin top----'
-docker rmi ${group_admin_name}/${app_admin_name}:${app_admin_version}
-echo '----rm image admin top----'
-# 打包编译docker镜像
-docker build -f /mydata/maven/build/Dockerfile-saas -t ${group_admin_name}/${app_admin_name}:${app_admin_version} .
-echo '----build image admin top----'
-docker run \
--p 7077:7077 \
---name ${app_admin_name} \
---restart=always \
---log-opt max-size=50m \
---log-opt max-file=3 \
--e 'spring.profiles.active'=${profile_active} \
--e TZ="Asia/Shanghai" \
--v /etc/localtime:/etc/localtime \
--v /usr/share/fonts:/usr/share/fonts \
--v /data/logs/prod_admin_top:/logs \
--v /mydata/app/${app_admin_name}/logs:/var/logs \
--v /data/nginx/conf.d:/data/nginx/conf.d \
--d ${group_admin_name}/${app_admin_name}:${app_admin_version}
-echo '----start container admin top----'
+echo '----start container admin----'

+ 9 - 0
zhichen-admin/src/main/java/com/zhichen/controller/goods/GoodsController.java

@@ -420,4 +420,13 @@ public class GoodsController extends BaseController {
     public AjaxResult<Void> updateGoodsVideo(UpdateGoodsVideoBo bo) {
         return toAjax(iGoodsService.updateGoodsVideo(bo) ? 1 : 0);
     }
+
+    /**
+     * 创建新考前商品
+     */
+    @ApiOperation("创建考前商品")
+    @GetMapping("/kaoqian")
+    public AjaxResult<Void> createKaoQianNew() {
+        return toAjax(iGoodsService.createKaoQianNew() ? 1 : 0);
+    }
 }

+ 2 - 0
zhichen-system/src/main/java/com/zhichen/modules/course/mapper/MajorMapper.java

@@ -31,4 +31,6 @@ public interface MajorMapper extends BaseMapper<Major> {
 
     @InterceptorIgnore(tenantLine = "true")
     Major getMajorByIdNoTenant(Long majorId);
+
+    Major getOnebyName(@Param("name")String name,@Param("projectId") Long projectId);
 }

+ 2 - 0
zhichen-system/src/main/java/com/zhichen/modules/course/service/IMajorService.java

@@ -53,4 +53,6 @@ public interface IMajorService extends IService<Major> {
     Major getMajorByTenant(String encoder, Long newTenantId);
 
     Major getMajorByIdNoTenant(Long majorId);
+
+    Major getOnebyName(String kemu, Long projectId);
 }

+ 5 - 0
zhichen-system/src/main/java/com/zhichen/modules/course/service/impl/MajorServiceImpl.java

@@ -180,4 +180,9 @@ public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements
     public Major getMajorByIdNoTenant(Long majorId) {
         return baseMapper.getMajorByIdNoTenant(majorId);
     }
+
+    @Override
+    public Major getOnebyName(String subjectName, Long projectId) {
+        return baseMapper.getOnebyName(subjectName,projectId);
+    }
 }

+ 12 - 0
zhichen-system/src/main/java/com/zhichen/modules/goods/bo/GoodsKaoQIanBo.java

@@ -0,0 +1,12 @@
+package com.zhichen.modules.goods.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class GoodsKaoQIanBo implements Serializable {
+
+    private Long subId;
+    private Long majorId;
+}

+ 3 - 0
zhichen-system/src/main/java/com/zhichen/modules/goods/domain/Goods.java

@@ -189,6 +189,9 @@ private static final long serialVersionUID=1L;
     @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Integer mailSign;
 
+    /** 外部考前商品标签:0否1是 */
+    private Integer beforeSign;
+
     /** 前培和补考商品关联多个 */
     @TableField(updateStrategy=FieldStrategy.IGNORED)
     private String makeGoodsIds;

+ 3 - 0
zhichen-system/src/main/java/com/zhichen/modules/goods/service/IGoodsService.java

@@ -177,4 +177,7 @@ public interface IGoodsService extends IService<Goods> {
     boolean updateRecordUrl(List<SectionImportBo> boList, String goodsId);
 
 	boolean updateGoodsVideo(UpdateGoodsVideoBo bo);
+
+    boolean createKaoQianNew();
+
 }

+ 247 - 0
zhichen-system/src/main/java/com/zhichen/modules/goods/service/impl/GoodsServiceImpl.java

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
+import com.google.common.collect.Lists;
 import com.zhichen.common.annotation.DataScope;
 import com.zhichen.common.core.redis.RedisCache;
 import com.zhichen.common.exception.BaseException;
@@ -5666,6 +5667,252 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return updateById(goods);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean createKaoQianNew() {
+        //获取新考前业务层
+        ArrayList<String> list1 = Lists.newArrayList("管理", "金属冶炼安全", "法规", "煤矿安全", "技术基础", "其他安全", "道路运输安全", "化工安全", "建筑施工安全", "矿山安全");
+        ArrayList<String> list2 = Lists.newArrayList("管理","法规", "经济", "建筑", "市政", "机电", "公路", "水利", "港口与航道");
+        ArrayList<String> list3 = Lists.newArrayList("管理", "概论", "土建三控", "土建案例", "交通三控", "交通案例", "水利三控", "水利案例");
+        ArrayList<String> list4 = Lists.newArrayList("经济基础", "工商管理", "人力资源", "金融专业", "财政税收", "建筑与房地产", "知识产权", "保险经济", "运输经济", "旅游经济", "农业经济");
+        ArrayList<String> list5 = Lists.newArrayList("综合能力", "法规与政策", "实务");
+
+        Map<String,List<String>> map = new HashMap<>();
+        map.put("安全工程师",list1);
+        map.put("建造师",list2);
+        map.put("工程师",list3);
+        map.put("经济师",list4);
+        map.put("社会工作者",list5);
+
+        CourseEducationType educationType = iCourseEducationTypeService
+                .getOne(new LambdaQueryWrapper<CourseEducationType>().eq(CourseEducationType::getEducationName, "考前培训").eq(CourseEducationType::getStatus, 1).last("limit 1"));
+        Long eduId  = educationType.getId();
+        map.forEach((k,v) -> {
+            //判断是否存在
+            CourseProjectType project = iCourseProjectTypeService
+                    .getOne(new LambdaQueryWrapper<CourseProjectType>().eq(CourseProjectType::getEducationId, eduId).eq(CourseProjectType::getProjectName, k).eq(CourseProjectType::getStatus, 1).last("limit 1"));
+            Long projectId = 0L;
+            if (ObjectUtils.isNull(project)){
+                //新增
+                CourseProjectType projectType = new CourseProjectType();
+                projectType.setStatus(1);
+                projectType.setProjectName(k);
+                projectType.setEducationId(eduId.intValue());
+                projectType.setCreateTime(DateUtils.getNowTime());
+                projectType.setUpdateTime(DateUtils.getNowTime());
+                projectType.setSort(1);
+                projectType.setEncoder(ServletUtils.getEncoded("XM"));
+
+                iCourseProjectTypeService.save(projectType);
+                projectId = projectType.getId();
+            }else {
+                projectId = project.getId();
+            }
+
+
+            //添加科目和专业;
+            List<GoodsKaoQIanBo> kaoQIanBos = new ArrayList<>();
+            for (String kemu : v) {
+                CourseSubject subject = iCourseSubjectService.getOneByName(kemu,projectId);
+                Long subId = 0L;
+                if (ObjectUtils.isNull(subject)){
+                    //新增
+                    CourseSubject courseSubject = new CourseSubject();
+                    courseSubject.setSubjectName(kemu);
+                    courseSubject.setStatus(1);
+                    courseSubject.setCreateTime(DateUtils.getNowTime());
+                    courseSubject.setUpdateTime(DateUtils.getNowTime());
+                    courseSubject.setSort(1);
+                    courseSubject.setEncoder(ServletUtils.getEncoded("KM"));
+                    iCourseSubjectService.save(courseSubject);
+                    subId = courseSubject.getId();
+                    CourseSubjectProject courseSubjectProject = new CourseSubjectProject();
+                    courseSubjectProject.setCreateTime(DateUtils.getNowTime());
+                    courseSubjectProject.setUpdateTime(DateUtils.getNowTime());
+                    courseSubjectProject.setSubjectId(subId);
+                    courseSubjectProject.setProjectId(projectId);
+                    iCourseSubjectProjectService.save(courseSubjectProject);
+                }else {
+                    subId = subject.getId();
+                }
+
+                Major major = iMajorService.getOnebyName(kemu,projectId);
+                Long majorId = 0L;
+                if (ObjectUtils.isNull(major)){
+                    //新增
+                    Major major1 = new Major();
+                    major1.setCategoryName(kemu);
+                    major1.setStatus(1);
+                    major1.setCreateTime(DateUtils.getNowTime());
+                    major1.setUpdateTime(DateUtils.getNowTime());
+                    major1.setSort(1);
+                    major1.setEncoder(ServletUtils.getEncoded("ZY"));
+                    iMajorService.save(major1);
+                    majorId = major1.getId();
+                    MajorProject majorProject = new MajorProject();
+                    majorProject.setCreateTime(DateUtils.getNowTime());
+                    majorProject.setUpdateTime(DateUtils.getNowTime());
+                    majorProject.setMajorId(majorId);
+                    majorProject.setProjectId(projectId);
+                    iMajorProjectService.save(majorProject);
+                }else {
+                    majorId = major.getId();
+                }
+                GoodsKaoQIanBo bo = new GoodsKaoQIanBo();
+                bo.setSubId(subId);
+                bo.setMajorId(majorId);
+                kaoQIanBos.add(bo);
+            }
+
+            //业务乘次
+            List<Long> businessIds = new ArrayList<>();
+            switch (k){
+                case "建造师":
+                    List<String> business = Arrays.asList("一级", "二级");
+                    for (String s : business) {
+                        Long id = businessCheck(s, projectId);
+                        businessIds.add(id);
+                    }
+                    break;
+                case "安全工程师":
+                    List<String> business1 = Arrays.asList("注册");
+                    for (String s : business1) {
+                        Long id = businessCheck(s, projectId);
+                        businessIds.add(id);
+                    }
+                    break;
+                case "工程师":
+                    List<String> business2 = Arrays.asList("监理");
+                    for (String s : business2) {
+                        Long id = businessCheck(s, projectId);
+                        businessIds.add(id);
+                    }
+                    break;
+                case "经济师":
+                    List<String> business3 = Arrays.asList("中级");
+                    for (String s : business3) {
+                        Long id = businessCheck(s, projectId);
+                        businessIds.add(id);
+                    }
+                    break;
+                case "社会工作者":
+                    List<String> business4 = Arrays.asList("初级", "中级");
+                    for (String s : business4) {
+                        Long id = businessCheck(s, projectId);
+                        businessIds.add(id);
+                    }
+                    break;
+                default:
+                    break;
+            }
+
+            for (Long businessId : businessIds) {
+                CourseBusiness business = iCourseBusinessService.getById(businessId);
+                for (GoodsKaoQIanBo item : kaoQIanBos) {
+                    CourseSubject courseSubject = iCourseSubjectService.getById(item.getSubId());
+                    //创建商品
+                    List<String> goodsName = Arrays.asList("精英优享班(单科实务)", "精英优享班(全科)");
+                    for (String s : goodsName) {
+                        Goods goods = new Goods();
+                        goods.setGoodsName(String.format("【%s】%s",courseSubject.getSubjectName(),s));
+                        goods.setStatus(1);
+                        goods.setYear(2026L);
+                        goods.setSupplyId(2L);
+                        goods.setGoodsType(1);
+                        goods.setEducationTypeId(eduId);
+                        goods.setBusinessId(businessId);
+                        goods.setProjectId(projectId.intValue());
+                        goods.setMajorId(item.getMajorId());
+                        goods.setSubjectIds(item.getSubId().toString());
+                        //价格
+                        BigDecimal price = getPrice(business.getAliasName(), s);
+                        goods.setStandPrice(price);
+                        goods.setLowestPrice(price);
+                        goods.setValidityStartTime(1773713844L);
+                        goods.setValidityEndTime(1805249844L);
+                        goods.setGoodsStatus(1);
+                        goods.setCode(ServletUtils.getEncoded("SP"));
+                        List<GoodsAuditionConfigAddBo> audition = new ArrayList<>();
+                        goods.setGoodsAuditionConfig(JSONArray.toJSONString(audition));
+                        GoodsPhotographConfigAddBo configAddBo = new GoodsPhotographConfigAddBo();
+                        configAddBo.setPhotograph(0);
+                        goods.setGoodsPhotographConfig(JSON.toJSONString(configAddBo));
+                        GoodsPhotoExamConfigAddBo examConfigAddBo = new GoodsPhotoExamConfigAddBo();
+                        examConfigAddBo.setPhotograph(0);
+                        goods.setGoodsPhotoExamConfig(JSON.toJSONString(examConfigAddBo));
+                        goods.setStudyCount(1L);
+                        goods.setServiceTimeType(1);
+                        goods.setServiceTimeNum(1L);
+                        goods.setShowStatus(1);
+                        goods.setGradeType(1);
+                        goods.setMoreCertificateStatus(1);
+                        goods.setViewSign(2);
+                        goods.setBeforeSign(1);
+                        goods.setCreateTime(DateUtils.getNowTime());
+                        goods.setUpdateTime(DateUtils.getNowTime());
+                        save(goods);
+                    }
+                }
+            }
+        });
+
+        return true;
+    }
+
+    private Long businessCheck(String name,Long projectId){
+        CourseProjectType projectType = iCourseProjectTypeService.getById(projectId);
+        CourseBusiness business = iCourseBusinessService
+                .getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getProjectId, projectId).eq(CourseBusiness::getBusinessName, name).eq(CourseBusiness::getStatus, 1).last("limit 1"));
+        if (ObjectUtils.isNull(business)){
+            //新增
+            CourseBusiness business1 = new CourseBusiness();
+            business1.setBusinessName(name);
+            business1.setProjectId(projectId.intValue());
+            business1.setEncoder(ServletUtils.getEncoded("YW"));
+            business1.setStatus(1);
+            business1.setSort(1);
+            business1.setCreateTime(DateUtils.getNowTime());
+            business1.setUpdateTime(DateUtils.getNowTime());
+            business1.setAliasName(name+projectType.getProjectName());
+            business1.setPeriodType(1);
+            business1.setPeriodNumber(2);
+            business1.setPeriodCheckSign(1);
+            business1.setPhotoSign(1);
+            iCourseBusinessService.save(business1);
+            return business1.getId();
+        }
+        return business.getId();
+    }
+
+    private BigDecimal getPrice(String businessName,String goodName){
+        if (businessName.contains("一级建造师") && goodName.contains("全科")){
+            return new BigDecimal("3580");
+        }else if (businessName.contains("一级建造师") && goodName.contains("单科实务")){
+            return new BigDecimal("1080");
+        }else if (businessName.contains("二级建造师") && goodName.contains("全科")){
+            return new BigDecimal("2280");
+        }else if (businessName.contains("二级建造师") && goodName.contains("单科实务")){
+            return new BigDecimal("980");
+        }else if (businessName.contains("注册安全工程师") && goodName.contains("全科")){
+            return new BigDecimal("3680");
+        }else if (businessName.contains("注册安全工程师") && goodName.contains("单科实务")){
+            return new BigDecimal("1280");
+        }else if (businessName.contains("监理工程师") && goodName.contains("全科")){
+            return new BigDecimal("2580");
+        }else if (businessName.contains("监理工程师") && goodName.contains("单科实务")){
+            return new BigDecimal("1080");
+        }else if (businessName.contains("中级经济师") && goodName.contains("全科")){
+            return new BigDecimal("2280");
+        }else if (businessName.contains("中级经济师") && goodName.contains("单科实务")){
+            return new BigDecimal("1280");
+        }else if (businessName.contains("初级社会工作者") && goodName.contains("全科")){
+            return new BigDecimal("1280");
+        }else if (businessName.contains("中级社会工作者") && goodName.contains("全科")){
+            return new BigDecimal("1580");
+        }
+        return BigDecimal.ZERO;
+    }
+
     private void updateHandoutsId(Long goodsId, Long tenantId, Long handoutsId) {
         baseMapper.updateHandoutsId(goodsId, tenantId, handoutsId);
     }

+ 3 - 0
zhichen-system/src/main/java/com/zhichen/modules/order/domain/OrderGoods.java

@@ -130,6 +130,9 @@ private static final long serialVersionUID=1L;
     /** 业务员名称 */
     private String salesman;
 
+    /** 外部考前商品标签:0否1是 */
+    private Integer beforeSign;
+
     /** 完成日期 */
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long finishTime;

+ 5 - 0
zhichen-system/src/main/java/com/zhichen/modules/order/service/impl/OrderServiceImpl.java

@@ -577,6 +577,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
+            orderGoods.setBeforeSign(goods.getBeforeSign());
             if (g.getGoodsInputData() != null) {
                 orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
             }
@@ -807,6 +808,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 //            }
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
+            orderGoods.setBeforeSign(goods.getBeforeSign());
             if (g.getGoodsInputData() != null) {
                 orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
             }
@@ -1453,6 +1455,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
+            orderGoods.setBeforeSign(goods.getBeforeSign());
             orderGoods.setGoodsYear(goods.getYear().toString());
             if (g.getGoodsInputData() != null) {
                 orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
@@ -1899,6 +1902,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
+            orderGoods.setBeforeSign(goods.getBeforeSign());
             if (g.getGoodsInputData() != null) {
                 orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
             }
@@ -2132,6 +2136,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             OrderGoods orderGoods = BeanUtil.toBean(g, OrderGoods.class);
             orderGoods.setOrderSn(out_trade_no);
+            orderGoods.setBeforeSign(goods.getBeforeSign());
             if (g.getGoodsInputData() != null) {
                 orderGoods.setGoodsInputData(JSON.toJSONString(g.getGoodsInputData()));
             }

+ 12 - 0
zhichen-system/src/main/resources/mapper/modules/course/MajorMapper.xml

@@ -110,4 +110,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getMajorByIdNoTenant" parameterType="java.lang.Long"  resultType="com.zhichen.modules.course.domain.Major">
         SELECT * FROM major where id = #{majorId}
     </select>
+    <select id="getOnebyName" resultType="com.zhichen.modules.course.domain.Major">
+        SELECT
+            cs.*
+        FROM
+            major cs
+                LEFT JOIN major_project csp ON cs.id = csp.major_id
+        WHERE
+            csp.project_id = #{projectId}
+          AND cs.category_name = #{name}
+          AND cs.`status` = 1
+            LIMIT 1
+    </select>
 </mapper>