课程管理-course_market课程营销接口

课程营销

需求分析

课程营销信息包括课程价格、课程有效期等信息。

1566121236334

数据模型

课程营销信息使用course_market表存储。

数据模型如下:

package com.xuecheng.framework.domain.course;

import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 课程营销管理实体类
 * Created by admin on 2018/2/10.
 */
@Data
@ToString
@Entity
@Table(name="course_market")
@GenericGenerator(name = "jpa-assigned", strategy = "assigned")
public class CourseMarket implements Serializable {
    private static final long serialVersionUID = -916357110051689486L;
    @Id
    @GeneratedValue(generator = "jpa-assigned")
    @Column(length = 32)
    private String id;
    private String charge;
    private String valid;
    private String qq;
    private Float price;
    private Float price_old;
//    private Date expires;
    @Column(name = "start_time")
    private Date startTime;
    @Column(name = "end_time")
    private Date endTime;
}

API

1) 查询课程营销信息

@ApiOperation("获取课程营销信息") 
public CourseMarket getCourseMarketById(String courseId);

2)更新课程营销信息

@ApiOperation("更新课程营销信息") 
public ResponseResult updateCourseMarket(String id,CourseMarket courseMarket);

课程管理服务

Dao

public interface CourseMarketRepository extends JpaRepository<CourseMarket, String> { 
}

Service

/**
     * 获取课程营销信息
     * @param courseId
     * @return
     */
    public CourseMarket getCourseMarketById(String courseId) {
        Optional<CourseMarket> optional = courseMarketJpaRepository.findById(courseId);
        if (optional.isPresent()) {
            return optional.get();
        }
        return null;
    }

    /**
     * 修改课程营销信息
     * @param courseId
     * @param courseMarket
     * @return
     */
    @Transactional
    public CourseMarket updateCourseMarket(String courseId, CourseMarket courseMarket) {
        CourseMarket marketById = this.getCourseMarketById(courseId);
        //该课程有营销系信息
        if (marketById!=null) {
            marketById.setCharge(courseMarket.getCharge());
            marketById.setStartTime(courseMarket.getStartTime());
            marketById.setEndTime(courseMarket.getEndTime());
            marketById.setPrice(courseMarket.getPrice());
            marketById.setPrice_old(courseMarket.getPrice_old());
            marketById.setQq(courseMarket.getQq());
            marketById.setValid(courseMarket.getValid());
            courseMarketJpaRepository.save(marketById);
        }else{
            //该课程为新课程,暂时没有添加营销信息
            marketById = new CourseMarket();
            BeanUtils.copyProperties(courseMarket,marketById);
            //自行设置营销系信息
            marketById.setId(courseId);
            courseMarketJpaRepository.save(marketById);
        }
        return marketById;
    }

Controller

/**
     * 获取课程营销信息
     * @param courseId
     * @return
     */
    @Override
    @GetMapping("/coursemarket/get/{courseId}")
    public CourseMarket getCourseMarketById(@PathVariable("courseId") String courseId) {
        return courseService.getCourseMarketById(courseId);
    }

    /**
     * 更课程营销信息
     * @param courseId
     * @param courseMarket
     * @return
     */
    @Override
    @PostMapping("/coursemarket/update/{courseId}")
    public ResponseResult updateCourseMarket(@PathVariable("courseId") String courseId,@RequestBody CourseMarket courseMarket) {
        CourseMarket courseMarket1 = courseService.updateCourseMarket(courseId, courseMarket);
        if (courseMarket1 != null) {
            return new ResponseResult(CommonCode.SUCCESS);
        } else {
            return new ResponseResult(CommonCode.FAIL);
        }
    }

前端

Api 方法

//获取课程营销信息 
export const getCourseMarketById = id => { 
    return http.requestQuickGet(apiUrl+'/course/coursemarket/get/'+id) 
}

// 更新课程营销信息 
export const updateCourseMarket =(id,courseMarket) => { 
    return http.requestPost(apiUrl+'/course/coursemarket/update/'+id,courseMarket) 
}

页面

编写 course_marketinfo.vue

1) template

<template>
  <div>
    <el-form :model="courseMarketForm" label-width="110px" :rules="courseMarketFormRules" ref="courseMarketForm">
      <el-form-item label="课程价格" prop="charge">
        <b v-for="charge in chargeList">
          <el-radio v-model="courseMarketForm.charge" :label="charge.sdId" >{{charge.sdName}}</el-radio>
          &nbsp;&nbsp;
        </b>
        <br/>
        金额(元):<el-input :disabled="this.courseMarketForm.charge == '203002'?false:true" v-model="courseMarketForm.price" ></el-input>
      </el-form-item>
      <el-form-item label="课程有效期" prop="expires">
        <b v-for="valid in validList">
          <el-radio v-model="courseMarketForm.valid" :label="valid.sdId" >{{valid.sdName}}</el-radio>&nbsp;&nbsp;
        </b>
        <br/>
        开始时间:
        <el-date-picker :disabled="this.courseMarketForm.valid == '204002'?false:true"  type="date" placeholder="选择日期" v-model="courseMarketForm.startTime"></el-date-picker>
        结束时间:
        <el-date-picker :disabled="this.courseMarketForm.valid == '204002'?false:true"  type="date" placeholder="选择日期" v-model="courseMarketForm.endTime"></el-date-picker>
      </el-form-item>
      <el-form-item label="服务咨询QQ" prop="qq">
        <el-input v-model="courseMarketForm.qq" ></el-input>
      </el-form-item>

    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click.native="save" >提交</el-button>
    </div>
  </div>
</template>
<script>
  import * as courseApi from '../../api/course';
  import utilApi from '../../../../common/utils';
  import * as systemApi from '../../../../base/api/system';
  }
</script>
<style scoped>
</style>

2) 数据对象

export default {
    data() {
      return {
        active: 1,
        dotype:'',
        courseid:'',
        chargeList:[],
        validList:[],
        price_tag:false,
        expires_tag:false,
        courseMarketForm: {
          id:'',
          charge:'',
          valid:'',
          price:'',
          expires: '',
          startTime: '',
          endTime: '',
          users: '',
          expiration:[],
          courseid:this.courseid
        },
        courseMarketFormRules: {
          free: [
            {required: true, message: '请选择收费规则', trigger: 'blur'}
          ],
          valid: [
            {required: true, message: '请选择有效期', trigger: 'blur'}
          ]
        }
      }
    },

3)保存方法

methods: {
      save: function () {
        this.$refs.courseMarketForm.validate((valid) => {
          if (valid) {
            this.$confirm('确认提交吗?', '提示', {}).then(() => {
              courseApi.updateCourseMarket(this.courseid,this.courseMarketForm).then((res) => {
               this.editLoading = false;
               if(res.success){
                 this.$message.success('提交成功');
                 if(this.dotype == '1'){
                   //跳转到课程图片
                   this.$router.push({ path: '/course/add/plan/3/1/'+this.courseid})
                 }
               }else{
                 this.$message.error('提交失败');
               }
               });
            });
          }
        });
      }
    },

4)在mounted钩子方法 中查询课程营销信息及数据字典信息

mounted(){
        //操作类型
      this.dotype = this.$route.params.dotype;
      //课程id
      this.courseid = this.$route.params.courseid;

      this.courseMarketForm.id = this.courseid;
      //查询字典
      systemApi.sys_getDictionary('203').then((res) => {
        this.chargeList = res.dvalue;
      });
      systemApi.sys_getDictionary('204').then((res) => {
        this.validList = res.dvalue;
      });

      //获取课程营销信息
      courseApi.getCourseMarketById(this.courseid).then((res) => {
         //console.log(res);
        if(res && res.id){
           this.courseMarketForm = res;
        }
      });
    }

HuangRui

Every man dies, not every man really lives.

HaungRui, China suixinblog.cn