yangdamao hace 6 días
padre
commit
278dbefd12

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

@@ -457,4 +457,13 @@ public class GoodsController extends BaseController {
         ExcelUtil<QuestionAnswerVo> util = new ExcelUtil<QuestionAnswerVo>(QuestionAnswerVo.class);
         return util.exportExcel(list, major);
     }
+
+    /**
+     * 创建新考前商品
+     */
+    @ApiOperation("创建考前商品")
+    @GetMapping("/kaoqian")
+    public AjaxResult<Void> createKaoQianNew() {
+        return toAjax(iGoodsService.createKaoQianNew() ? 1 : 0);
+    }
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/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
zhongzheng-system/src/main/java/com/zhongzheng/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
zhongzheng-system/src/main/java/com/zhongzheng/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 kemu, Long projectId) {
+        return baseMapper.getOnebyName(kemu,projectId);
+    }
 }

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

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

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

@@ -185,6 +185,9 @@ private static final long serialVersionUID=1L;
     private String questionRelIds;
     /** 视频标签:1保利威 2腾讯 */
     private Integer viewSign;
+
+    /** 外部考前商品标签:0否1是 */
+    private Integer beforeSign;
     /** 寄件标签:1是 0否 */
     @TableField(updateStrategy=FieldStrategy.IGNORED)
     private Integer mailSign;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -187,4 +187,6 @@ public interface IGoodsService extends IService<Goods> {
     List<QuestionAnswerVo> getQuestionAnswer(Long goodsId);
 
     void getImageWord(MultipartFile file, String major);
+
+	boolean createKaoQianNew();
 }

+ 248 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.Page;
+import com.google.common.collect.Lists;
 import com.vladsch.flexmark.html.HtmlRenderer;
 import com.vladsch.flexmark.parser.Parser;
 import com.vladsch.flexmark.util.ast.Node;
@@ -6029,6 +6030,253 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
     }
 
+    @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);
+            business1.setBuySign(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;
+    }
+
     /**
      * 下载Markdown文件
      */

+ 13 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/MajorMapper.xml

@@ -110,4 +110,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getMajorByIdNoTenant" parameterType="java.lang.Long"  resultType="com.zhongzheng.modules.course.domain.Major">
         SELECT * FROM major where id = #{majorId}
     </select>
+
+    <select id="getOnebyName" resultType="com.zhongzheng.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>