Browse Source

add 推荐板块 首页配置板块

he2802 3 years ago
parent
commit
86fcf2b6c3
37 changed files with 1241 additions and 58 deletions
  1. 94 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/activity/ActivityRecommendController.java
  2. 2 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  3. 1 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysConfigController.java
  4. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendAddBo.java
  5. 62 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendEditBo.java
  6. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsAddBo.java
  7. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsEditBo.java
  8. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsQueryBo.java
  9. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendQueryBo.java
  10. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/domain/ActivityRecommend.java
  11. 41 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/domain/ActivityRecommendGoods.java
  12. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/mapper/ActivityRecommendGoodsMapper.java
  13. 22 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/mapper/ActivityRecommendMapper.java
  14. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityRecommendGoodsService.java
  15. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityRecommendService.java
  16. 101 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityRecommendGoodsServiceImpl.java
  17. 154 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityRecommendServiceImpl.java
  18. 49 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/vo/ActivityRecommendGoodsVo.java
  19. 68 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/vo/ActivityRecommendVo.java
  20. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingAddBo.java
  21. 3 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingEditBo.java
  22. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationAddBo.java
  23. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationEditBo.java
  24. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationQueryBo.java
  25. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/ActivityAdvertising.java
  26. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/ActivityAdvertisingLocation.java
  27. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ActivityAdvertisingLocationServiceImpl.java
  28. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/ActivityAdvertisingLocationVo.java
  29. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/ActivityAdvertisingVo.java
  30. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java
  31. 2 53
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  32. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportAllVo.java
  33. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportVo.java
  34. 17 0
      zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendGoodsMapper.xml
  35. 84 0
      zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendMapper.xml
  36. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/base/ActivityAdvertisingMapper.xml
  37. 98 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

+ 94 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/activity/ActivityRecommendController.java

@@ -0,0 +1,94 @@
+package com.zhongzheng.controller.activity;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.activity.bo.ActivityRecommendAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendEditBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo;
+import com.zhongzheng.modules.activity.service.IActivityRecommendService;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 商品推荐Controller
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Api(value = "商品推荐控制器", tags = {"商品推荐管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/activity/recommend")
+public class ActivityRecommendController extends BaseController {
+
+    private final IActivityRecommendService iActivityRecommendService;
+
+    /**
+     * 查询商品推荐列表
+     */
+    @ApiOperation("查询商品推荐列表")
+    @PreAuthorize("@ss.hasPermi('system:recommend:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ActivityRecommendVo> list(ActivityRecommendQueryBo bo) {
+        startPage();
+        List<ActivityRecommendVo> list = iActivityRecommendService.selectList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 获取商品推荐详细信息
+     */
+    @ApiOperation("获取商品推荐详细信息")
+    @PreAuthorize("@ss.hasPermi('system:recommend:query')")
+    @GetMapping("/{recommendId}")
+    public AjaxResult<ActivityRecommendVo> getInfo(@PathVariable("recommendId" ) Long recommendId) {
+        ActivityRecommendQueryBo bo = new ActivityRecommendQueryBo();
+        bo.setRecommendId(recommendId);
+        return AjaxResult.success(iActivityRecommendService.getDetail(bo));
+    }
+
+    /**
+     * 新增商品推荐
+     */
+    @ApiOperation("新增商品推荐")
+    @PreAuthorize("@ss.hasPermi('system:recommend:add')")
+    @Log(title = "商品推荐", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody ActivityRecommendAddBo bo) {
+        return toAjax(iActivityRecommendService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改商品推荐
+     */
+    @ApiOperation("修改商品推荐")
+    @PreAuthorize("@ss.hasPermi('system:recommend:edit')")
+    @Log(title = "商品推荐", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody ActivityRecommendEditBo bo) {
+        return toAjax(iActivityRecommendService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+}

+ 2 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -210,7 +210,8 @@ public class ClassGradeController extends BaseController {
         deptExportMap.put("data", list);
         List<Map<String, Object>> sheetsList = new ArrayList<>();
         sheetsList.add(deptExportMap);
-        return util.exportEasyExcel(sheetsList, bo.getBusinessName()+"-"+fileName+"-学员学习记录-"+timeStr);
+        String businessName = Validator.isNotEmpty(bo.getBusinessName())?bo.getBusinessName():"";
+        return util.exportEasyExcel(sheetsList, businessName+"-"+fileName+"-学员学习记录-"+timeStr);
     }
 
     /**

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysConfigController.java

@@ -81,7 +81,7 @@ public class SysConfigController extends BaseController
     @GetMapping(value = "/configKey/{configKey}")
     public AjaxResult getConfigKey(@PathVariable String configKey)
     {
-        return AjaxResult.success(configService.selectConfigByKey(configKey));
+        return AjaxResult.success("配置内容",configService.selectConfigByKey(configKey));
     }
 
     /**

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendAddBo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 商品推荐添加对象 activity_recommend
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("商品推荐添加对象")
+public class ActivityRecommendAddBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private String name;
+    /** 1课程 2题库 */
+    @ApiModelProperty("1课程 2题库")
+    private Integer type;
+    /** 教育类型id */
+    @ApiModelProperty("教育类型id")
+    private Long educationTypeId;
+    /** 业务层次id */
+    @ApiModelProperty("业务层次id")
+    private Long businessId;
+    /** 项目ID */
+    @ApiModelProperty("项目ID")
+    private Long projectId;
+    /** 1有效 0无效 */
+    @ApiModelProperty("1有效 0无效")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 1小程序 2PC网站 */
+    @ApiModelProperty("1小程序 2PC网站")
+    private Integer platform;
+    @ApiModelProperty("商品列表")
+    private List<ActivityRecommendGoodsAddBo> goodsList;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private Integer sort;
+}

+ 62 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendEditBo.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 商品推荐编辑对象 activity_recommend
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("商品推荐编辑对象")
+public class ActivityRecommendEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long recommendId;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private String name;
+
+    /** 1课程 2题库 */
+    @ApiModelProperty("1课程 2题库")
+    private Integer type;
+
+    /** 教育类型id */
+    @ApiModelProperty("教育类型id")
+    private Long educationTypeId;
+
+    /** 业务层次id */
+    @ApiModelProperty("业务层次id")
+    private Long businessId;
+
+    /** 项目ID */
+    @ApiModelProperty("项目ID")
+    private Long projectId;
+
+
+    /** 1有效 0无效 */
+    @ApiModelProperty("1有效 0无效")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+    /** 1小程序 2PC网站 */
+    @ApiModelProperty("1小程序 2PC网站")
+    private Integer platform;
+    @ApiModelProperty("商品列表")
+    private List<ActivityRecommendGoodsAddBo> goodsList;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private Integer sort;
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsAddBo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 推荐板块商品添加对象 activity_recommend_goods
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("推荐板块商品添加对象")
+public class ActivityRecommendGoodsAddBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long recommendId;
+    /** 商品id */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private Integer sort;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsEditBo.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 推荐板块商品编辑对象 activity_recommend_goods
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("推荐板块商品编辑对象")
+public class ActivityRecommendGoodsEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long recommendId;
+
+    /** 商品id */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendGoodsQueryBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 推荐板块商品分页查询对象 activity_recommend_goods
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("推荐板块商品分页查询对象")
+public class ActivityRecommendGoodsQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long recommendId;
+	/** 商品id */
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 排序 */
+	@ApiModelProperty("排序")
+	private Integer sort;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityRecommendQueryBo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.activity.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 商品推荐分页查询对象 activity_recommend
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("商品推荐分页查询对象")
+public class ActivityRecommendQueryBo extends BaseEntity {
+	private Long recommendId;
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private String name;
+	/** 1课程 2题库 */
+	@ApiModelProperty("1课程 2题库")
+	private Integer type;
+	/** 教育类型id */
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+	/** 业务层次id */
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+	/** 项目ID */
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+	/** 1有效 0无效 */
+	@ApiModelProperty("1有效 0无效")
+	private Integer status;
+	/** 1小程序 2PC网站 */
+	@ApiModelProperty("1小程序 2PC网站")
+	private Integer platform;
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/domain/ActivityRecommend.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.activity.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 商品推荐对象 activity_recommend
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("activity_recommend")
+public class ActivityRecommend implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "recommend_id")
+    private Long recommendId;
+    /** $column.columnComment */
+    private String name;
+    /** 1课程 2题库 */
+    private Integer type;
+    /** 教育类型id */
+    private Long educationTypeId;
+    /** 业务层次id */
+    private Long businessId;
+    /** 项目ID */
+    private Long projectId;
+    /** 1有效 0无效 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 1小程序 2PC网站 */
+    private Integer platform;
+    /** 排序 */
+    private Integer sort;
+}

+ 41 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/domain/ActivityRecommendGoods.java

@@ -0,0 +1,41 @@
+package com.zhongzheng.modules.activity.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 推荐板块商品对象 activity_recommend_goods
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("activity_recommend_goods")
+public class ActivityRecommendGoods implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** $column.columnComment */
+    private Long recommendId;
+    /** 商品id */
+    private Long goodsId;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 排序 */
+    private Integer sort;
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/mapper/ActivityRecommendGoodsMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.activity.domain.ActivityRecommendGoods;
+
+/**
+ * 推荐板块商品Mapper接口
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+public interface ActivityRecommendGoodsMapper extends BaseMapper<ActivityRecommendGoods> {
+
+}

+ 22 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/mapper/ActivityRecommendMapper.java

@@ -0,0 +1,22 @@
+package com.zhongzheng.modules.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo;
+import com.zhongzheng.modules.activity.domain.ActivityRecommend;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendVo;
+import com.zhongzheng.modules.order.bo.OrderInvoiceQueryBo;
+import com.zhongzheng.modules.order.vo.OrderInvoiceVo;
+
+import java.util.List;
+
+/**
+ * 商品推荐Mapper接口
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+public interface ActivityRecommendMapper extends BaseMapper<ActivityRecommend> {
+    List<ActivityRecommendVo> selectList(ActivityRecommendQueryBo bo);
+
+    ActivityRecommendVo getDetail(ActivityRecommendQueryBo bo);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityRecommendGoodsService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsEditBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsQueryBo;
+import com.zhongzheng.modules.activity.domain.ActivityRecommendGoods;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendGoodsVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 推荐板块商品Service接口
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+public interface IActivityRecommendGoodsService extends IService<ActivityRecommendGoods> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ActivityRecommendGoodsVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<ActivityRecommendGoodsVo> queryList(ActivityRecommendGoodsQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入推荐板块商品
+	 * @param bo 推荐板块商品新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ActivityRecommendGoodsAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改推荐板块商品
+	 * @param bo 推荐板块商品编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ActivityRecommendGoodsEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityRecommendService.java

@@ -0,0 +1,56 @@
+package com.zhongzheng.modules.activity.service;
+
+import com.zhongzheng.modules.activity.bo.ActivityRecommendAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendEditBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo;
+import com.zhongzheng.modules.activity.domain.ActivityRecommend;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 商品推荐Service接口
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+public interface IActivityRecommendService extends IService<ActivityRecommend> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	ActivityRecommendVo queryById(Long recommendId);
+
+	/**
+	 * 查询列表
+	 */
+	List<ActivityRecommendVo> queryList(ActivityRecommendQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入商品推荐
+	 * @param bo 商品推荐新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(ActivityRecommendAddBo bo);
+
+	List<ActivityRecommendVo> selectList(ActivityRecommendQueryBo bo);
+
+	ActivityRecommendVo getDetail(ActivityRecommendQueryBo bo);
+
+	/**
+	 * 根据编辑业务对象修改商品推荐
+	 * @param bo 商品推荐编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(ActivityRecommendEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 101 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityRecommendGoodsServiceImpl.java

@@ -0,0 +1,101 @@
+package com.zhongzheng.modules.activity.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsEditBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsQueryBo;
+import com.zhongzheng.modules.activity.domain.ActivityRecommendGoods;
+import com.zhongzheng.modules.activity.mapper.ActivityRecommendGoodsMapper;
+import com.zhongzheng.modules.activity.service.IActivityRecommendGoodsService;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendGoodsVo;
+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 java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 推荐板块商品Service业务层处理
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Service
+public class ActivityRecommendGoodsServiceImpl extends ServiceImpl<ActivityRecommendGoodsMapper, ActivityRecommendGoods> implements IActivityRecommendGoodsService {
+
+    @Override
+    public ActivityRecommendGoodsVo queryById(Long id){
+        ActivityRecommendGoods db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, ActivityRecommendGoodsVo.class);
+    }
+
+    @Override
+    public List<ActivityRecommendGoodsVo> queryList(ActivityRecommendGoodsQueryBo bo) {
+        LambdaQueryWrapper<ActivityRecommendGoods> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRecommendId() != null, ActivityRecommendGoods::getRecommendId, bo.getRecommendId());
+        lqw.eq(bo.getGoodsId() != null, ActivityRecommendGoods::getGoodsId, bo.getGoodsId());
+        lqw.eq(bo.getSort() != null, ActivityRecommendGoods::getSort, bo.getSort());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ActivityRecommendGoodsVo> entity2Vo(Collection<ActivityRecommendGoods> collection) {
+        List<ActivityRecommendGoodsVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ActivityRecommendGoodsVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ActivityRecommendGoods> page = (Page<ActivityRecommendGoods>)collection;
+            Page<ActivityRecommendGoodsVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(ActivityRecommendGoodsAddBo bo) {
+        ActivityRecommendGoods add = BeanUtil.toBean(bo, ActivityRecommendGoods.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ActivityRecommendGoodsEditBo bo) {
+        ActivityRecommendGoods update = BeanUtil.toBean(bo, ActivityRecommendGoods.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ActivityRecommendGoods entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 154 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityRecommendServiceImpl.java

@@ -0,0 +1,154 @@
+package com.zhongzheng.modules.activity.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendEditBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsAddBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo;
+import com.zhongzheng.modules.activity.domain.ActivityRecommend;
+import com.zhongzheng.modules.activity.domain.ActivityRecommendGoods;
+import com.zhongzheng.modules.activity.mapper.ActivityRecommendMapper;
+import com.zhongzheng.modules.activity.service.IActivityRecommendGoodsService;
+import com.zhongzheng.modules.activity.service.IActivityRecommendService;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendVo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseAddBo;
+import com.zhongzheng.modules.goods.domain.GoodsAttached;
+import com.zhongzheng.modules.goods.domain.GoodsCourse;
+import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
+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;
+import java.util.HashSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 商品推荐Service业务层处理
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Service
+public class ActivityRecommendServiceImpl extends ServiceImpl<ActivityRecommendMapper, ActivityRecommend> implements IActivityRecommendService {
+
+    @Autowired
+    private IActivityRecommendGoodsService iActivityRecommendGoodsService;
+
+    @Override
+    public ActivityRecommendVo queryById(Long recommendId){
+        ActivityRecommend db = this.baseMapper.selectById(recommendId);
+        return BeanUtil.toBean(db, ActivityRecommendVo.class);
+    }
+
+    @Override
+    public List<ActivityRecommendVo> queryList(ActivityRecommendQueryBo bo) {
+        LambdaQueryWrapper<ActivityRecommend> lqw = Wrappers.lambdaQuery();
+        lqw.like(StrUtil.isNotBlank(bo.getName()), ActivityRecommend::getName, bo.getName());
+        lqw.eq(bo.getType() != null, ActivityRecommend::getType, bo.getType());
+        lqw.eq(bo.getEducationTypeId() != null, ActivityRecommend::getEducationTypeId, bo.getEducationTypeId());
+        lqw.eq(bo.getBusinessId() != null, ActivityRecommend::getBusinessId, bo.getBusinessId());
+        lqw.eq(bo.getProjectId() != null, ActivityRecommend::getProjectId, bo.getProjectId());
+        lqw.eq(bo.getStatus() != null, ActivityRecommend::getStatus, bo.getStatus());
+        lqw.eq(bo.getPlatform() != null, ActivityRecommend::getPlatform, bo.getPlatform());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<ActivityRecommendVo> entity2Vo(Collection<ActivityRecommend> collection) {
+        List<ActivityRecommendVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, ActivityRecommendVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<ActivityRecommend> page = (Page<ActivityRecommend>)collection;
+            Page<ActivityRecommendVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean insertByAddBo(ActivityRecommendAddBo bo) {
+        ActivityRecommend add = BeanUtil.toBean(bo, ActivityRecommend.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        Boolean rs =  this.save(add);
+        if(bo.getGoodsList()!=null){
+            Collection<ActivityRecommendGoods> coll = new HashSet<>();
+            for(int i=0;i<bo.getGoodsList().size();i++){
+                ActivityRecommendGoodsAddBo item = bo.getGoodsList().get(i);
+                ActivityRecommendGoods addItem = BeanUtil.toBean(item, ActivityRecommendGoods.class);
+                addItem.setRecommendId(add.getRecommendId());
+                coll.add(addItem);
+            }
+            iActivityRecommendGoodsService.saveBatch(coll);
+        }
+        return rs;
+    }
+
+    @Override
+    public List<ActivityRecommendVo> selectList(ActivityRecommendQueryBo bo) {
+        return baseMapper.selectList(bo);
+    }
+
+    @Override
+    public ActivityRecommendVo getDetail(ActivityRecommendQueryBo bo) {
+        return baseMapper.getDetail(bo);
+    }
+
+    @Override
+    public Boolean updateByEditBo(ActivityRecommendEditBo bo) {
+        ActivityRecommend update = BeanUtil.toBean(bo, ActivityRecommend.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        if(bo.getGoodsList()!=null){
+            iActivityRecommendGoodsService.remove(new LambdaQueryWrapper<ActivityRecommendGoods>().eq(ActivityRecommendGoods::getRecommendId, bo.getRecommendId()));
+            Collection<ActivityRecommendGoods> coll = new HashSet<>();
+            for(int i=0;i<bo.getGoodsList().size();i++){
+                ActivityRecommendGoodsAddBo item = bo.getGoodsList().get(i);
+                ActivityRecommendGoods addItem = BeanUtil.toBean(item, ActivityRecommendGoods.class);
+                addItem.setRecommendId(bo.getRecommendId());
+                addItem.setCreateTime(DateUtils.getNowTime());
+                addItem.setUpdateTime(DateUtils.getNowTime());
+                coll.add(addItem);
+            }
+            iActivityRecommendGoodsService.saveBatch(coll);
+        }
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(ActivityRecommend entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 49 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/vo/ActivityRecommendGoodsVo.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.modules.activity.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+
+/**
+ * 推荐板块商品视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("推荐板块商品视图对象")
+public class ActivityRecommendGoodsVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** $column.columnComment */
+	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+	@ApiModelProperty("$column.columnComment")
+	private Long recommendId;
+	/** 商品id */
+	@Excel(name = "商品id")
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 排序 */
+	@Excel(name = "排序")
+	@ApiModelProperty("排序")
+	private Integer sort;
+	@ApiModelProperty("商品名")
+	private String goodsName;
+	/** 标准价格 */
+	@Excel(name = "标准价格")
+	@ApiModelProperty("标准价格")
+	private BigDecimal standPrice;
+	@ApiModelProperty("商品编码")
+	private String code;
+}

+ 68 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/vo/ActivityRecommendVo.java

@@ -0,0 +1,68 @@
+package com.zhongzheng.modules.activity.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsAddBo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 商品推荐视图对象 mall_package
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Data
+@ApiModel("商品推荐视图对象")
+public class ActivityRecommendVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long recommendId;
+
+	/** $column.columnComment */
+	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+	@ApiModelProperty("$column.columnComment")
+	private String name;
+	/** 1课程 2题库 */
+	@Excel(name = "1课程 2题库")
+	@ApiModelProperty("1课程 2题库")
+	private Integer type;
+	/** 教育类型id */
+	@Excel(name = "教育类型id")
+	@ApiModelProperty("教育类型id")
+	private Long educationTypeId;
+	/** 业务层次id */
+	@Excel(name = "业务层次id")
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+	/** 项目ID */
+	@Excel(name = "项目ID")
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+	/** 1有效 0无效 */
+	@Excel(name = "1有效 0无效")
+	@ApiModelProperty("1有效 0无效")
+	private Integer status;
+	/** 1小程序 2PC网站 */
+	@Excel(name = "1小程序 2PC网站")
+	@ApiModelProperty("1小程序 2PC网站")
+	private Integer platform;
+	/** 排序 */
+	@Excel(name = "排序")
+	@ApiModelProperty("排序")
+	private Integer sort;
+	@ApiModelProperty("教育名称")
+	private String educationName;
+	@ApiModelProperty("项目名称")
+	private String projectName;
+	@ApiModelProperty("业务名称")
+	private String businessName;
+	@ApiModelProperty("商品列表")
+	private List<ActivityRecommendGoodsVo> goodsList;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingAddBo.java

@@ -48,4 +48,7 @@ public class ActivityAdvertisingAddBo {
     /** 广告名称 */
     @ApiModelProperty("广告名称")
     private String advName;
+    /** 颜色填充值 */
+    @ApiModelProperty("颜色填充值")
+    private String color;
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingEditBo.java

@@ -57,5 +57,7 @@ public class ActivityAdvertisingEditBo {
     /** 广告名称 */
     @ApiModelProperty("广告名称")
     private String advName;
-
+    /** 颜色填充值 */
+    @ApiModelProperty("颜色填充值")
+    private String color;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationAddBo.java

@@ -36,4 +36,7 @@ public class ActivityAdvertisingLocationAddBo {
     /** 键名 */
     @ApiModelProperty("键名")
     private String locationKey;
+    /** 1小程序 2PC网站 */
+    @ApiModelProperty("1小程序 2PC网站")
+    private Integer platform;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationEditBo.java

@@ -41,4 +41,8 @@ public class ActivityAdvertisingLocationEditBo {
     @ApiModelProperty("键名")
     private String locationKey;
 
+    /** 1小程序 2PC网站 */
+    @ApiModelProperty("1小程序 2PC网站")
+    private Integer platform;
+
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ActivityAdvertisingLocationQueryBo.java

@@ -49,4 +49,8 @@ public class ActivityAdvertisingLocationQueryBo extends BaseEntity {
 	/** 键名 */
 	@ApiModelProperty("键名")
 	private String locationKey;
+
+	/** 1小程序 2PC网站 */
+	@ApiModelProperty("1小程序 2PC网站")
+	private Integer platform;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/ActivityAdvertising.java

@@ -48,4 +48,6 @@ private static final long serialVersionUID=1L;
     private Long locationId;
     /** 广告名称 */
     private String advName;
+    /** 颜色填充值 */
+    private String color;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/ActivityAdvertisingLocation.java

@@ -40,4 +40,6 @@ private static final long serialVersionUID=1L;
     private Integer status;
     /** 键名 */
     private String locationKey;
+    /** 1小程序 2PC网站 */
+    private Integer platform;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ActivityAdvertisingLocationServiceImpl.java

@@ -51,6 +51,7 @@ public class ActivityAdvertisingLocationServiceImpl extends ServiceImpl<Activity
         lqw.eq(bo.getIntervalTime() != null, ActivityAdvertisingLocation::getIntervalTime, bo.getIntervalTime());
         lqw.in(bo.getStatus() != null, ActivityAdvertisingLocation::getStatus, bo.getStatus());
         lqw.eq(StrUtil.isNotBlank(bo.getLocationKey()), ActivityAdvertisingLocation::getLocationKey, bo.getLocationKey());
+        lqw.eq(bo.getPlatform() != null, ActivityAdvertisingLocation::getPlatform, bo.getPlatform());
         return entity2Vo(this.list(lqw));
     }
 

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/ActivityAdvertisingLocationVo.java

@@ -40,4 +40,8 @@ public class ActivityAdvertisingLocationVo {
 	@Excel(name = "键名")
 	@ApiModelProperty("键名")
 	private String locationKey;
+	/** 1小程序 2PC网站 */
+	@Excel(name = "1小程序 2PC网站")
+	@ApiModelProperty("1小程序 2PC网站")
+	private Integer platform;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/ActivityAdvertisingVo.java

@@ -56,4 +56,8 @@ public class ActivityAdvertisingVo {
 	@Excel(name = "广告名称")
 	@ApiModelProperty("广告名称")
 	private String advName;
+	/** 颜色填充值 */
+	@Excel(name = "颜色填充值")
+	@ApiModelProperty("颜色填充值")
+	private String color;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -28,6 +28,8 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     List<ClassPeriodStudentVo> listUserPeriod(ClassGradeUserQueryBo bo);
 
+    List<ClassPeriodStudentVo> listUserPeriodExport(ClassGradeUserQueryBo bo);
+
     List<ClassPeriodUserVo> listPeriod(ClassGradeUserQueryBo bo);
 
     List<ClassPeriodVo> listPeriodAudit(ClassGradeUserQueryBo bo);

+ 2 - 53
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -670,7 +670,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     @Override
     public List<ClassPeriodStudentExportAllVo> exportPo(ClassGradeUserQueryBo bo) {
         //查询班级学员信息
-        List<ClassPeriodStudentVo> classPeriodStudentVos = baseMapper.listUserPeriod(bo);
+        List<ClassPeriodStudentVo> classPeriodStudentVos = baseMapper.listUserPeriodExport(bo);
         List<ClassPeriodStudentExportVo> exportList = new ArrayList<>();
         //查找学员学习记录
         for (ClassPeriodStudentVo classPeriodStudentVo : classPeriodStudentVos) {
@@ -681,58 +681,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             subjectStudyRecordQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
             subjectStudyRecordQueryBo.setUserId(classPeriodStudentVo.getUserId());
             subjectStudyRecordQueryBo.setGradeId(bo.getGradeId());
-            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
-            for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
-                secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
-                studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
 
-            }
-            //BigDecimal divide = new BigDecimal(studyLong.toString()).divide(new BigDecimal(secLong.toString()),2,BigDecimal.ROUND_HALF_UP);
-            //classGradeStudentVo.setStudyNum(divide.multiply(new BigDecimal("100")).longValue());
-            //总节数
-            classPeriodStudentVo.setSecAllNum(secLong);
-            //学习节数
-            classPeriodStudentVo.setStuAllNum(studyLong);
-
-            //总的审核状态按照策划规则
-            ClassGradeUserQueryBo classGradeUserQueryBo = new ClassGradeUserQueryBo();
-            classGradeUserQueryBo.setGradeId(bo.getGradeId());
-            classGradeUserQueryBo.setUserId(classPeriodStudentVo.getUserId());
-            classGradeUserQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
-            List<ClassPeriodUserVo> classPeriodUserVos1 = baseMapper.listPeriod(classGradeUserQueryBo);
-            ClassPeriodUserVo classPeriodUserVos = classPeriodUserVos1.get(0);
-            classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());
-            classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum()-classPeriodUserVos.getExamPass()-classPeriodUserVos.getExamCheat());
-            //當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过
-            Integer gradePeriodStatus = 0; //班级里的审核状态字段,保持一致 0 未通过 1通过 2待审核 -1 不可审核
-            if(Validator.isEmpty(classPeriodStudentVo.getSecAllNum())||classPeriodStudentVo.getSecAllNum()==0){
-                //空课程
-                classPeriodStudentVo.setAllStatus(-1);
-                gradePeriodStatus = -1;
-            }else{
-                if (classPeriodStudentVo.getStuAllNum().equals(classPeriodStudentVo.getSecAllNum()) && classPeriodStudentVo.getExamNum().equals(classPeriodStudentVo.getRecordNum())){
-                    if (classPeriodUserVos.getPending() != 0 || classPeriodUserVos.getExamPending() != 0){
-                        classPeriodStudentVo.setAllStatus(0);
-                        gradePeriodStatus = 2;
-                    }else if (classPeriodUserVos.getCheat() != 0 || classPeriodUserVos.getExamCheat() != 0){
-                        classPeriodStudentVo.setAllStatus(1);
-                        gradePeriodStatus = 0;
-                    }else {
-                        classPeriodStudentVo.setAllStatus(2);
-                        gradePeriodStatus = 1;
-                    }
-                }else {
-                    classPeriodStudentVo.setAllStatus(-1);
-                    gradePeriodStatus = -1;
-                }
-            }
-
-
-            classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat()+classPeriodUserVos.getExamCheat());
-            if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()))) {
-                //查找开始学习时间
-                classPeriodStudentVo.setStartTime(baseMapper.selectStart(classPeriodStudentVo.getUserId(),classPeriodStudentVo.getGoodsId(),classPeriodStudentVo.getGradeId()).get(0));
-            }
             if(Validator.isNotEmpty(bo.getUserPhoto())&&bo.getUserPhoto()==1){
                 //解析身份证和一寸照
                 if(Validator.isNotEmpty(classPeriodStudentVo.getKeyValue())){
@@ -759,7 +708,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             }
             ClassPeriodStudentExportVo addItem = BeanUtil.toBean(classPeriodStudentVo, ClassPeriodStudentExportVo.class);
 
-            addItem.setStudyTimeStr(DateUtils.timestampToDate(classPeriodStudentVo.getStudyStartTime())+"-"+DateUtils.timestampToDate(classPeriodStudentVo.getStudyEndTime()));
+            addItem.setStudyTimeStr(DateUtils.timestampToDate(classPeriodStudentVo.getServiceStartTime())+"-"+DateUtils.timestampToDate(classPeriodStudentVo.getServiceEndTime()));
             addItem.setClassTimeStr(DateUtils.timestampToDate(classPeriodStudentVo.getClassStartTime())+"-"+DateUtils.timestampToDate(classPeriodStudentVo.getClassEndTime()));
 
             ClassGradeUserQueryBo classGradeUserQueryBo1 = new ClassGradeUserQueryBo();

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportAllVo.java

@@ -53,7 +53,7 @@ public class ClassPeriodStudentExportAllVo {
 	@Excel(name = "学时")
 	@ApiModelProperty("学时")
 	private Long classHours;
-	@Excel(name = "学习有效期")
+	@Excel(name = "服务有效期")
 	private String studyTimeStr;
 	@Excel(name = "所在班级")
 	private String className;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentExportVo.java

@@ -54,7 +54,7 @@ public class ClassPeriodStudentExportVo {
 	@Excel(name = "学时")
 	@ApiModelProperty("学时")
 	private Long classHours;
-	@Excel(name = "学习有效期")
+	@Excel(name = "服务有效期")
 	private String studyTimeStr;
 	@Excel(name = "所在班级")
 	private String className;

+ 17 - 0
zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendGoodsMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.activity.mapper.ActivityRecommendGoodsMapper">
+
+    <resultMap type="com.zhongzheng.modules.activity.domain.ActivityRecommendGoods" id="ActivityRecommendGoodsResult">
+        <result property="id" column="id"/>
+        <result property="recommendId" column="recommend_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+
+</mapper>

+ 84 - 0
zhongzheng-system/src/main/resources/mapper/modules/activity/ActivityRecommendMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.activity.mapper.ActivityRecommendMapper">
+
+    <resultMap type="com.zhongzheng.modules.activity.domain.ActivityRecommend" id="ActivityRecommendResult">
+        <result property="recommendId" column="recommend_id"/>
+        <result property="name" column="name"/>
+        <result property="type" column="type"/>
+        <result property="educationTypeId" column="education_type_id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="projectId" column="project_id"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="platform" column="platform"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.activity.vo.ActivityRecommendVo" id="ActivityRecommendVoResult">
+        <result property="recommendId" column="recommend_id"/>
+        <result property="name" column="name"/>
+        <result property="type" column="type"/>
+        <result property="educationTypeId" column="education_type_id"/>
+        <result property="businessId" column="business_id"/>
+        <result property="projectId" column="project_id"/>
+        <result property="status" column="status"/>
+        <result property="platform" column="platform"/>
+        <result property="sort" column="sort"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="businessName" column="business_name"/>
+        <collection property="goodsList" column="recommend_id" select="findGoodsList"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.activity.vo.ActivityRecommendGoodsVo" id="GoodsListResult">
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="standPrice" column="stand_price"/>
+        <result property="code" column="code"/>
+        <result property="sort" column="sort"/>
+    </resultMap>
+
+    <select id="findGoodsList" resultMap="GoodsListResult">
+        SELECT
+            g.goods_id,
+            g.goods_name,
+            g.stand_price,
+            rg.sort,
+            g.code
+        FROM
+            activity_recommend_goods rg
+                LEFT JOIN goods g ON rg.goods_id = g.goods_id
+        WHERE
+            rg.recommend_id = #{recommend_id}
+    </select>
+
+    <select id="selectList" parameterType="com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo" resultMap="ActivityRecommendVoResult">
+        SELECT ar.*, cet.education_name,
+               cpt.project_name,
+               cb.business_name from activity_recommend ar
+            LEFT JOIN course_education_type cet ON ar.education_type_id = cet.id
+            LEFT JOIN course_project_type cpt ON ar.project_id = cpt.id
+            LEFT JOIN course_business cb ON ar.business_id = cb.id
+        WHERE 1 = 1
+        <if test="type != null and type != ''">
+            AND ar.type = #{type}
+        </if>
+        <if test="platform != null and platform != ''">
+            AND ar.platform = #{platform}
+        </if>
+    </select>
+
+    <select id="getDetail" parameterType="com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo" resultMap="ActivityRecommendVoResult">
+        SELECT ar.*, cet.education_name,
+               cpt.project_name,
+               cb.business_name from activity_recommend ar
+                                         LEFT JOIN course_education_type cet ON ar.education_type_id = cet.id
+                                         LEFT JOIN course_project_type cpt ON ar.project_id = cpt.id
+                                         LEFT JOIN course_business cb ON ar.business_id = cb.id
+        where ar.recommend_id = #{recommendId}
+    </select>
+</mapper>

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/base/ActivityAdvertisingMapper.xml

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sort" column="sort"/>
         <result property="advName" column="adv_name"/>
         <result property="locationId" column="location_id"/>
+        <result property="color" column="color"/>
     </resultMap>
 
 

+ 98 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -400,6 +400,104 @@
         </if>
     </select>
 
+    <select id="listUserPeriodExport" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
+            resultMap="ClassPeriodStudentVo">
+        SELECT
+        u.user_account,
+        u.user_id,
+        cgu.`status`,
+        u.realname,
+        cgg.goods_id,
+        u.id_card,
+        cgu.grade_id,
+        u.telphone,
+        g.class_hours as class_hours,
+        g.study_start_time as study_start_time,
+        g.study_end_time as study_end_time,
+        g.goods_name,
+        g.code as goods_code,
+        g.stand_price,
+        cgu.period_status,
+        cg.class_start_time,
+        cg.class_end_time,
+        cg.class_name,
+        cgu.period_plush,
+        cgu.period_status_num,
+        (SELECT og.service_start_time FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as service_start_time,
+        (SELECT og.service_end_time FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as service_end_time,
+        <if test="userPhoto != null and userPhoto == 1">
+            up.key_value,
+        </if>
+        cgu.period_time as end_time
+
+        FROM
+        class_grade_user cgu
+        LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+        LEFT JOIN class_grade_goods cgg on cg.grade_id=cgg.grade_id
+        LEFT JOIN `user` u ON u.user_id = cgu.user_id
+        LEFT JOIN goods g on cgg.goods_id = g.goods_id
+        LEFT JOIN user_profile up on u.user_id =up.user_id and up.goods_id = g.goods_id and cgu.order_goods_id = up.order_goods_id and up.type_status=1 and up.current_status = 1
+        where 1=1
+        and cgu.`status` =1
+        <if test="officialStatus != null and officialStatus != ''">
+            AND cgu.official_status = #{officialStatus}
+        </if>
+        <if test="changeGrade != null and changeGrade != ''">
+            AND cgu.change_grade = #{changeGrade}
+        </if>
+        <if test="profileStatus != null and profileStatus != ''">
+            AND up.status = #{profileStatus}
+        </if>
+        <if test="gradeId != null and gradeId !='' ">
+            and cgu.grade_id = #{gradeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="schoolId != null and schoolId != ''">
+            AND g.school_id = #{schoolId}
+        </if>
+        <if test="majorId != null and majorId != ''">
+            AND g.major_id = #{majorId}
+        </if>
+        <if test="periodStatus != null ">
+            and cgu.period_status = #{periodStatus}
+        </if>
+        <if test="classStartTime != null and classStartTime != '' ">
+            AND cg.class_start_time >= #{classStartTime}
+        </if>
+        <if test="classEndTime != null and classEndTime != '' ">
+            AND #{classEndTime} >=  cg.class_end_time
+        </if>
+        <if test="studyStatus != null and studyStatus == 1 ">
+            and cgu.period_status = -1
+        </if>
+        <if test="studyStatus != null and studyStatus == 2 ">
+            and cgu.period_status != -1
+        </if>
+        <if test="searchKey != null and searchKey != '' ">
+            and (u.realname like concat('%', #{searchKey}, '%') or u.id_card like concat('%', #{searchKey}, '%') or g.goods_name like concat('%', #{searchKey}, '%') or cg.class_name like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="searchStartTime != null and searchStartTime !='' ">
+            AND cgu.create_time >=#{searchStartTime}
+        </if>
+        <if test="searchEndTime != null and searchEndTime !='' ">
+            AND #{searchEndTime} >= cgu.create_time
+        </if>
+        <if test="periodStatus != 2 and periodStatus != 3">
+            order by cgu.update_time desc
+        </if>
+        <if test="periodStatus == 2 ">
+            order by cgu.period_wait_time,cgu.create_time
+        </if>
+        <if test="periodStatus == 3 ">
+            order by cgu.period_ing_time,cgu.create_time
+        </if>
+    </select>
+
     <select id="userPeriodStatus" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
             resultMap="ClassPeriodStudentVo">
         SELECT