瀏覽代碼

fix 购物车

he2802 3 年之前
父節點
當前提交
5f3b38b294

+ 60 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CourseController.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.controller.course;
+
+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.modules.course.bo.CourseAddBo;
+import com.zhongzheng.modules.course.bo.CourseEditBo;
+import com.zhongzheng.modules.course.bo.CourseQueryBo;
+import com.zhongzheng.modules.course.service.ICourseService;
+import com.zhongzheng.modules.course.vo.CourseVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
+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 2021-10-09
+ */
+@Api(value = "课程控制器", tags = {"课程管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/course")
+public class CourseController extends BaseController {
+
+    private final ICourseService iCourseService;
+
+    /**
+     * 查询课程列表
+     */
+    @ApiOperation("查询商品下的课程列表")
+    @GetMapping("/courseList")
+    public TableDataInfo<CourseVo> courseList(CourseQueryBo bo) {
+        startPage();
+        List<CourseVo> list = iCourseService.courseList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询课程列表
+     */
+    @ApiOperation("查询用户拥有的商品")
+    @GetMapping("/goodsList")
+    public TableDataInfo<GoodsVo> goodsList(CourseQueryBo bo) {
+        startPage();
+        List<GoodsVo> list = iCourseService.goodsList(bo);
+        return getDataTable(list);
+    }
+
+
+}

+ 16 - 6
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CoursePeriodController.java

@@ -1,7 +1,10 @@
 package com.zhongzheng.controller.course;
 
+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.*;
 import com.zhongzheng.framework.web.service.WxTokenService;
@@ -14,15 +17,14 @@ import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
+import com.zhongzheng.modules.user.bo.UserSubscribeCertificateEditBo;
 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.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -47,7 +49,6 @@ public class CoursePeriodController extends BaseController {
      * 查询用户拥有商品的学时记录
      */
     @ApiOperation("查询用户拥有商品的学时记录")
-    @PreAuthorize("@ss.hasPermi('system:plan:list')")
     @GetMapping("/listGoods")
     public TableDataInfo<GoodsPeriodVo> listGoods(UserPlanQueryBo bo) {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
@@ -60,8 +61,7 @@ public class CoursePeriodController extends BaseController {
      * 查询学习计划列表
      */
     @ApiOperation("查看班级作弊重学详细情况")
-    @PreAuthorize("@ss.hasPermi('system:plan:list')")
-    @GetMapping("/listSection")
+    @GetMapping("/cheat")
     public TableDataInfo<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo) {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
@@ -69,5 +69,15 @@ public class CoursePeriodController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 修改用户预约考试
+     */
+    @ApiOperation("确认重学")
+    @Log(title = "确认重学", businessType = BusinessType.UPDATE)
+    @PostMapping("rebuild")
+    public AjaxResult<Void> editRebuild(@RequestBody ClassGradeUserQueryBo bo) {
+        return toAjax(courseService.editRebuild(bo) ? 1 : 0);
+    }
+
 
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseQueryBo.java

@@ -40,6 +40,15 @@ public class CourseQueryBo extends BaseEntity {
 	/** 前缀名称 */
 	@ApiModelProperty("前缀名称")
 	private String prefixName;
+
+	/** 班级Id */
+	@ApiModelProperty("班级Id")
+	private Long gradeId;
+
+	/** 商品Id */
+	@ApiModelProperty("商品Id")
+	private Long goodsId;
+
 	/** 封面地址 */
 	@ApiModelProperty("封面地址")
 	private String coverUrl;

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java

@@ -9,6 +9,7 @@ import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 
@@ -62,4 +63,10 @@ public interface ICourseService extends IService<Course> {
     List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);
 
 	List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);
+
+    boolean editRebuild(ClassGradeUserQueryBo bo);
+
+    List<GoodsVo> goodsList(CourseQueryBo bo);
+
+	List<CourseVo> courseList(CourseQueryBo bo);
 }

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -19,7 +19,11 @@ import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
 import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
+import com.zhongzheng.modules.grade.bo.UserPeriodStatusAddBo;
+import com.zhongzheng.modules.grade.domain.UserPeriodStatus;
+import com.zhongzheng.modules.grade.service.IUserPeriodStatusService;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
 import com.zhongzheng.modules.user.domain.UserStudyRecordPhoto;
@@ -33,6 +37,7 @@ 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.math.BigDecimal;
 import java.util.Collection;
@@ -52,6 +57,9 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     @Autowired
     private CourseMapper courseMapper;
 
+    @Autowired
+    private IUserPeriodStatusService userPeriodStatusService;
+
     @Autowired
     private IUserStudyRecordPhotoService userStudyRecordPhotoService;
 
@@ -196,6 +204,37 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         }
         return goodsPeriodStatusVos;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean editRebuild(ClassGradeUserQueryBo bo) {
+        List<GoodsPeriodStatusVo> goodsPeriodStatusVos = baseMapper.listSection(bo);
+        for (GoodsPeriodStatusVo goodsPeriodStatusVo : goodsPeriodStatusVos) {
+            UserPeriodStatus userPeriodStatus = new UserPeriodStatus();
+            userPeriodStatus.setId(goodsPeriodStatusVo.getId());
+            userPeriodStatus.setPeriodStatus(0);
+            userPeriodStatusService.updateById(userPeriodStatus);
+            UserPeriodStatusAddBo userPeriodStatusAddBo = new UserPeriodStatusAddBo();
+            userPeriodStatusAddBo.setPeriodStatus(1);
+            userPeriodStatusAddBo.setPeriodId(goodsPeriodStatusVo.getPeriodId());
+            userPeriodStatusAddBo.setCreateTime(DateUtils.getNowTime());
+            userPeriodStatusAddBo.setUpdateTime(DateUtils.getNowTime());
+            userPeriodStatusAddBo.setStatus(3);
+            userPeriodStatusService.insertByAddBo(userPeriodStatusAddBo);
+        }
+        return true;
+    }
+
+    @Override
+    public List<GoodsVo> goodsList(CourseQueryBo bo) {
+        return null;
+    }
+
+    @Override
+    public List<CourseVo> courseList(CourseQueryBo bo) {
+        return null;
+    }
+
     private List<UserStudyRecordPhotoVo> entity2PhotoVo(Collection<UserStudyRecordPhoto> collection) {
         List<UserStudyRecordPhotoVo> voList = collection.stream()
                 .map(any -> BeanUtil.toBean(any, UserStudyRecordPhotoVo.class))

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsPeriodStatusVo.java

@@ -35,6 +35,11 @@ public class GoodsPeriodStatusVo {
 	@ApiModelProperty("1 节 2卷")
 	private Long type;
 
+	/** 1 节 2卷 */
+	@Excel(name = "1 节 2卷")
+	@ApiModelProperty("1 节 2卷")
+	private Long periodId;
+
 	/** 拍照详情 */
 	@Excel(name = "拍照详情")
 	@ApiModelProperty("拍照详情")

+ 237 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java

@@ -0,0 +1,237 @@
+package com.zhongzheng.modules.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+ * 商品视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Data
+@ApiModel("商品视图对象")
+public class GoodsUserVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long goodsId;
+
+	/** 年份 */
+	@Excel(name = "年份")
+	@ApiModelProperty("年份")
+	private Long year;
+
+	@Excel(name = "用户ID")
+	@ApiModelProperty("用户ID")
+	private Long userId;
+
+	@Excel(name = "班级Id")
+	@ApiModelProperty("班级Id")
+	private Long gradeId;
+	/** 供应方(服务) */
+	@Excel(name = "供应方" , readConverterExp = "服=务")
+	@ApiModelProperty("供应方(服务)")
+	private Long supplyId;
+	/** $column.columnComment */
+	@Excel(name = "供应方" , readConverterExp = "商品类型 1视频2题库 3面授 4服务 5组合")
+	@ApiModelProperty("商品类型 1视频2题库 3面授 4服务 5组合")
+	private Long goodsType;
+	/** 教育类型id */
+	@Excel(name = "教育类型id")
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+	/** 业务层次id */
+	@Excel(name = "业务层次id")
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+	/** 所属院校 */
+	@Excel(name = "所属院校")
+	@ApiModelProperty("所属院校")
+	private Long schoolId;
+	/** 所属专业 */
+	@Excel(name = "所属专业")
+	@ApiModelProperty("所属专业")
+	private Long majorId;
+	/** 商品名称 */
+	@Excel(name = "商品名称")
+	@ApiModelProperty("商品名称")
+	private String goodsName;
+	/** 标准价格 */
+	@Excel(name = "标准价格")
+	@ApiModelProperty("标准价格")
+	private BigDecimal standPrice;
+	/** 最低价格 */
+	@Excel(name = "最低价格")
+	@ApiModelProperty("最低价格")
+	private BigDecimal lowestPrice;
+	/** 状态 1有效 0无效 */
+	@Excel(name = "状态 1有效 0无效")
+	@ApiModelProperty("状态 1有效 0无效")
+	private Integer status;
+	/** 有效期开始 */
+	@Excel(name = "有效期开始")
+	@ApiModelProperty("有效期开始")
+	private Long validityStartTime;
+	/** 有效期结束 */
+	@Excel(name = "有效期结束")
+	@ApiModelProperty("有效期结束")
+	private Long validityEndTime;
+	/** 学习有效期开始 */
+	@Excel(name = "学习有效期开始")
+	@ApiModelProperty("学习有效期开始")
+	private Long studyStartTime;
+	/** 学习有效期结束 */
+	@Excel(name = "学习有效期结束")
+	@ApiModelProperty("学习有效期结束")
+	private Long studyEndTime;
+	/** 证书ID,多个,拼接 */
+	@Excel(name = "证书ID,多个,拼接")
+	@ApiModelProperty("证书ID,多个,拼接")
+	private String certificateIds;
+	/** 描述 */
+	@Excel(name = "描述")
+	@ApiModelProperty("描述")
+	private String introduce;
+	/** 适合对象 */
+	@Excel(name = "适合对象")
+	@ApiModelProperty("适合对象")
+	private String suitableObject;
+	/** 购买须知 */
+	@Excel(name = "购买须知")
+	@ApiModelProperty("购买须知")
+	private String buyNote;
+	/** PC详情 */
+	@Excel(name = "PC详情")
+	@ApiModelProperty("PC详情")
+	private String pcDetailHtml;
+	/** 手机详情 */
+	@Excel(name = "手机详情")
+	@ApiModelProperty("手机详情")
+	private String mobileDetailHtml;
+	/** 1上架 0未上架 */
+	@Excel(name = "1上架 0未上架")
+	@ApiModelProperty("1上架 0未上架")
+	private Integer goodsStatus;
+	/** 封面地址 */
+	@Excel(name = "封面地址")
+	@ApiModelProperty("封面地址")
+	private String coverUrl;
+	/** 学时 */
+	@Excel(name = "学时")
+	@ApiModelProperty("学时")
+	private Integer classHours;
+	/** 标准价格详情json */
+	@Excel(name = "标准价格详情json")
+	@ApiModelProperty("标准价格详情json")
+	private String standPriceJson;
+	/** 编码 */
+	@Excel(name = "编码")
+	@ApiModelProperty("编码")
+	private String code;
+	@ApiModelProperty("创建时间")
+	private Long createTime;
+	@ApiModelProperty("更新试卷")
+	private Long updateTime;
+	@ApiModelProperty("供应方名称")
+	private String supplyName;
+	/** 项目ID */
+	@Excel(name = "项目ID")
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+
+
+	@ApiModelProperty("教育名称")
+	private String educationName;
+	@ApiModelProperty("项目名称")
+	private String projectName;
+	@ApiModelProperty("业务名称")
+	private String businessName;
+	@ApiModelProperty("学校名称")
+	private String schoolName;
+	@ApiModelProperty("专业名称")
+	private String categoryName;
+
+	/** 试听设置 */
+	@Excel(name = "试听设置")
+	@ApiModelProperty("试听设置")
+	private String goodsAuditionConfig;
+	/** 拍照设置 */
+	@Excel(name = "拍照设置")
+	@ApiModelProperty("拍照设置")
+	private String goodsPhotographConfig;
+
+	/** 试卷拍照设置 */
+	@Excel(name = "试卷拍照设置")
+	@ApiModelProperty("试卷拍照设置")
+	private String goodsPhotoExamConfig;
+	/** 播放设置 */
+	@Excel(name = "播放设置")
+	@ApiModelProperty("播放设置")
+	private String goodsPlayConfig;
+
+	@ApiModelProperty("试听配置列表")
+	private List<GoodsAuditionConfigVo> auditionList;
+
+	@ApiModelProperty("播放设置")
+	private GoodsPlayConfigVo goodsPlayConfigVo;
+
+	@ApiModelProperty("拍照设置")
+	private GoodsPhotographConfigVo goodsPhotographConfigVo;
+
+	@ApiModelProperty("试卷拍照设置")
+	private GoodsPhotoExamConfigVo goodsPhotoExamConfigVo;
+
+	@ApiModelProperty("试卷试做配置列表")
+	private List<GoodsExamConfigVo> examConfigList;
+
+	/** 试卷试做设置 */
+	@ApiModelProperty("试卷试做设置")
+	private String goodsExamConfig;
+
+	@ApiModelProperty("讲义id")
+	private Long handoutsId;
+
+	/** 模板类型置 */
+	@ApiModelProperty("模板类型置")
+	private String templateType;
+
+	/** 学时 */
+	@Excel(name = "学时")
+	@ApiModelProperty("学时")
+	private Long period;
+	/** 补考或前培开始时间 */
+	@Excel(name = "补考或前培开始时间")
+	@ApiModelProperty("补考或前培开始时间")
+	private Long makeStartTime;
+	/** 补考或前培结束时间 */
+	@Excel(name = "补考或前培结束时间")
+	@ApiModelProperty("补考或前培结束时间")
+	private Long makeEndTime;
+	/** 学习次数 */
+	@Excel(name = "学习次数")
+	@ApiModelProperty("学习次数")
+	private Long studyCount;
+
+	/** 前培和补考商品关联 */
+	@Excel(name = "前培和补考商品关联")
+	@ApiModelProperty("前培和补考商品关联")
+	private Long makeGoodsId;
+
+	/** 前培和补考商品关联 */
+	@Excel(name = "前培和补考商品关联")
+	@ApiModelProperty("前培和补考商品关联商品名")
+	private String makeGoodsName;
+
+	/** 前培和补考商品关联 */
+	@Excel(name = "前培和补考商品关联")
+	@ApiModelProperty("前培和补考商品关联编码")
+	private String makeGoodsCode;
+}

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserQueryBo.java

@@ -138,5 +138,9 @@ public class UserQueryBo extends BaseEntity {
 	@ApiModelProperty("1在职 0离职")
 	private Long jobStatus;
 
+	/** 1空 */
+	@ApiModelProperty("1空")
+	private Long empty;
+
 
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserExamGoodsVo.java

@@ -43,7 +43,7 @@ public class UserExamGoodsVo {
 	/** 编码 */
 	@Excel(name = "编码")
 	@ApiModelProperty("编码")
-	private String code;
+	private String goodsCode;
 
 	/** 标准价格 */
 	@Excel(name = "标准价格")

+ 9 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -67,6 +67,13 @@
         <result property="recordNum" column="record_num"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo" id="GoodsPeriodStatusVo">
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="name" column="name"/>
+        <result property="periodId" column="period_id"/>
+    </resultMap>
+
     <select id="findGoodsList" resultMap="CourseGoodsListResult">
         SELECT
             g.goods_name,
@@ -229,9 +236,10 @@
         AND cg.status=1
     </select>
 
-    <select id="listSection" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"  resultMap="CourseResultVo">
+    <select id="listSection" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"  resultMap="GoodsPeriodStatusVo">
         SELECT
             ups.id,
+            ups.period_id,
             cs.`name`,
             1 as type
         FROM

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserExamGoodsMapper.xml

@@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime" column="update_time"/>
         <result property="expendNumber" column="expend_number"/>
         <result property="expendBefore" column="expend_before"/>
-        <result property="code" column="code"/>
+        <result property="goodsCode" column="goods_code"/>
         <result property="goodsName" column="goods_name"/>
         <result property="standPrice" column="stand_price"/>
     </resultMap>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -161,6 +161,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="userId != null and userId != ''" >
             AND u.user_id = #{userId}
         </if>
+        <if test="empty != null and empty != ''" >
+           and u.realname is NOT NULL
+        </if>
         <if test="gradePoint != null and gradePoint == 1" >
             AND (SELECT COUNT(u.user_id) FROM class_grade_user cgu where 1=1 AND u.status in (1) and cgu.user_id= u.user_id) > 0
         </if>

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="studentType != null and studentType != '' ">
             and us.student_type = #{studentType}
         </if>
-        <if test="examStatus != null and examStatus != '' ">
+        <if test="examStatus != null ">
             and us.exam_status = #{examStatus}
         </if>
         <if test="majorId != null and majorId != '' ">