zouxuan 5 years ago
parent
commit
9df1e4fd50

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChargeTypeOrganizationFeeDao.java

@@ -0,0 +1,16 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+public interface ChargeTypeOrganizationFeeDao extends BaseDAO<Integer, ChargeTypeOrganizationFee> {
+
+    /**
+     * 根据收费类型,分部获取默认费用
+     * @param chargeTypeId
+     * @param organId
+     * @return
+     */
+    ChargeTypeOrganizationFee findByOrganId(@Param("chargeTypeId") Integer chargeTypeId, @Param("organId") Integer organId);
+}

+ 69 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChargeTypeOrganizationFee.java

@@ -0,0 +1,69 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 对应数据库表(charge_type_organization_fee):
+ */
+public class ChargeTypeOrganizationFee {
+	private Integer id;
+
+	private Integer chargeTypeId;
+
+	private Integer organId;
+
+	private BigDecimal courseFee;
+
+	private Date createTime;
+
+	private Date updateTime;
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getChargeTypeId() {
+		return chargeTypeId;
+	}
+
+	public void setChargeTypeId(Integer chargeTypeId) {
+		this.chargeTypeId = chargeTypeId;
+	}
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
+	public BigDecimal getCourseFee() {
+		return courseFee;
+	}
+
+	public void setCourseFee(BigDecimal courseFee) {
+		this.courseFee = courseFee;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+}

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Subject.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -39,6 +40,10 @@ public class Subject {
 	private YesOrNoEnum delFlag;
 
 	/**  */
+	@ApiModelProperty(value = "课程费用",required = false)
+	private BigDecimal fee;
+
+	/**  */
 	@ApiModelProperty(value = "子节点列表",required = false)
 	private List<Subject> subjects;
 
@@ -46,6 +51,14 @@ public class Subject {
 		return subjects;
 	}
 
+	public BigDecimal getFee() {
+		return fee;
+	}
+
+	public void setFee(BigDecimal fee) {
+		this.fee = fee;
+	}
+
 	public void setSubjects(List<Subject> subjects) {
 		this.subjects = subjects;
 	}

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChargeTypeOrganizationFeeService.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
+import com.ym.mec.common.service.BaseService;
+
+public interface ChargeTypeOrganizationFeeService extends BaseService<Integer, ChargeTypeOrganizationFee> {
+
+    /**
+     * 根据收费类型,分部获取默认费用
+     * @param chargeTypeId
+     * @param organId
+     * @return
+     */
+    ChargeTypeOrganizationFee findByOrganId(Integer chargeTypeId, Integer organId);
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java

@@ -36,7 +36,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
      * @param chargeTypeId
      * @return
      */
-    List<Subject> findDefaultSubByChargeTypeId(Integer chargeTypeId);
+    List<Subject> findDefaultSubByChargeTypeId(Integer chargeTypeId,Integer organId,Integer number);
 
     /**
      * 通过乐团编号获取声部列表以及声部报名、缴费、计划人数

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChargeTypeOrganizationFeeServiceImpl.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.ChargeTypeOrganizationFeeDao;
+import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
+import com.ym.mec.biz.service.ChargeTypeOrganizationFeeService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChargeTypeOrganizationFeeServiceImpl extends BaseServiceImpl<Integer, ChargeTypeOrganizationFee>  implements ChargeTypeOrganizationFeeService {
+	
+	@Autowired
+	private ChargeTypeOrganizationFeeDao chargeTypeOrganizationFeeDao;
+
+	@Override
+	public BaseDAO<Integer, ChargeTypeOrganizationFee> getDAO() {
+		return chargeTypeOrganizationFeeDao;
+	}
+
+	@Override
+	public ChargeTypeOrganizationFee findByOrganId(Integer chargeTypeId, Integer organId) {
+		return chargeTypeOrganizationFeeDao.findByOrganId(chargeTypeId,organId);
+	}
+}

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -1,12 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.biz.dal.dao.ChargeTypeOrganizationFeeDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.SubjectGoodsMapperDao;
 import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
+import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -21,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -33,6 +36,8 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private SubjectGoodsMapperDao subjectGoodsMapperDao;
+    @Autowired
+    private ChargeTypeOrganizationFeeDao chargeTypeOrganizationFeeDao;
 
     @Override
     public BaseDAO<Integer, Subject> getDAO() {
@@ -54,8 +59,16 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
     }
 
     @Override
-    public List<Subject> findDefaultSubByChargeTypeId(Integer chargeTypeId) {
-        return subjectDao.findDefaultSubByChargeTypeId(chargeTypeId);
+    public List<Subject> findDefaultSubByChargeTypeId(Integer chargeTypeId,Integer organId,Integer number) {
+        List<Subject> subByChargeTypeId = subjectDao.findDefaultSubByChargeTypeId(chargeTypeId);
+        ChargeTypeOrganizationFee byOrganId = chargeTypeOrganizationFeeDao.findByOrganId(chargeTypeId, organId);
+        if(byOrganId != null){
+            BigDecimal bigDecimal = new BigDecimal(number);
+            subByChargeTypeId.forEach(e->{
+                e.setFee(byOrganId.getCourseFee().multiply(bigDecimal));
+            });
+        }
+        return subByChargeTypeId;
     }
 
     @Override

+ 76 - 0
mec-biz/src/main/resources/config/mybatis/ChargeTypeOrganizationFeeMapper.xml

@@ -0,0 +1,76 @@
+<?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.ym.mec.biz.dal.dao.ChargeTypeOrganizationFeeDao">
+
+	<resultMap type="com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee" id="chargeTypeOrganizationFee">
+		<result column="id_" property="id" />
+		<result column="charge_type_id_" property="chargeTypeId" />
+		<result column="organ_id_" property="organId" />
+		<result column="course_fee_" property="courseFee" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="chargeTypeOrganizationFee">
+		SELECT * FROM charge_type_organization_fee WHERE id_ = #{id}
+	</select>
+
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="chargeTypeOrganizationFee">
+		SELECT * FROM charge_type_organization_fee
+		ORDER BY id_
+	</select>
+
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee"
+		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO charge_type_organization_fee
+		(id_,charge_type_id_,organ_id_,course_fee_,create_time_,update_time_)
+		VALUES(#{id},#{chargeTypeId},#{organId},#{courseFee},NOW(),NOW())
+	</insert>
+
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee">
+		UPDATE charge_type_organization_fee
+		<set>
+			<if test="chargeTypeId != null">
+				charge_type_id_ = #{chargeTypeId},
+			</if>
+			<if test="organId != null">
+				organ_id_ = #{organId},
+			</if>
+			<if test="courseFee != null">
+				course_fee_ = #{courseFee},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = #{updateTime},
+			</if>
+		</set>
+		WHERE id_ = #{id}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete">
+		DELETE FROM charge_type_organization_fee WHERE id_ = #{id}
+	</delete>
+
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="chargeTypeOrganizationFee" parameterType="map">
+		SELECT * FROM charge_type_organization_fee ORDER BY ctof.create_time_ DESC
+		<include refid="global.limit" />
+	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM charge_type_organization_fee
+	</select>
+
+    <select id="findByOrganId" resultMap="chargeTypeOrganizationFee">
+		SELECT * FROM charge_type_organization_fee ctof
+		WHERE ctof.charge_type_id_ = #{chargeTypeId} AND ctof.organ_id_ = #{organId}
+		ORDER BY ctof.create_time_ DESC
+		LIMIT 1
+	</select>
+</mapper>

+ 64 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ChargeTypeOrganizationFeeController.java

@@ -0,0 +1,64 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.entity.ChargeTypeOrganizationFee;
+import com.ym.mec.biz.service.ChargeTypeOrganizationFeeService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/** 
+ * 系统配置控制层
+ */
+@RestController
+@Api(tags = "收费类型对应分部的课程费用表")
+@RequestMapping(value = "chargeTypeOrganizationFee")
+public class ChargeTypeOrganizationFeeController extends BaseController {
+
+	@Autowired
+	private ChargeTypeOrganizationFeeService chargeTypeOrganizationFeeService;
+
+	@ApiOperation(value = "新增")
+	@PostMapping(value = "add")
+    @PreAuthorize("@pcs.hasPermissions('chargeTypeOrganizationFee/add')")
+	public Object add(ChargeTypeOrganizationFee chargeTypeOrganizationFee) {
+		return succeed(chargeTypeOrganizationFeeService.insert(chargeTypeOrganizationFee));
+	}
+
+	@ApiOperation(value = "获取收费类型分部关联的默认课程费用")
+	@GetMapping(value = "findByOrganId")
+    @PreAuthorize("@pcs.hasPermissions('chargeTypeOrganizationFee/findByOrganId')")
+	public Object findByOrganId(Integer chargeTypeId,Integer organId) {
+		return succeed(chargeTypeOrganizationFeeService.findByOrganId(chargeTypeId,organId));
+	}
+
+	@ApiOperation(value = "删除")
+	@PostMapping(value = "delete")
+    @PreAuthorize("@pcs.hasPermissions('chargeTypeOrganizationFee/delete')")
+	public Object delete(Integer id) {
+		return succeed(chargeTypeOrganizationFeeService.delete(id));
+	}
+
+	@ApiOperation(value = "修改")
+	@PostMapping(value = "update")
+    @PreAuthorize("@pcs.hasPermissions('chargeTypeOrganizationFee/update')")
+	public Object update(ChargeTypeOrganizationFee chargeTypeOrganizationFee) {
+		chargeTypeOrganizationFee.setUpdateTime(new Date());
+		return succeed(chargeTypeOrganizationFeeService.update(chargeTypeOrganizationFee));
+	}
+
+	@ApiOperation(value = "分页查询")
+	@GetMapping(value = "queryPage")
+    @PreAuthorize("@pcs.hasPermissions('chargeTypeOrganizationFee/queryPage')")
+	public Object queryPage(QueryInfo queryInfo) {
+		return succeed(chargeTypeOrganizationFeeService.queryPage(queryInfo));
+	}
+}

+ 8 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -60,9 +61,13 @@ public class SubjectController extends BaseController {
     @ApiOperation(value = "通过乐团收费类型,获取默认的声部列表")
     @GetMapping("/findDefaultSubByChargeTypeId")
     @PreAuthorize("@pcs.hasPermissions('subject/findDefaultSubByChargeTypeId')")
-    @ApiImplicitParams({ @ApiImplicitParam(name = "chargeTypeId", value = "收费类型编号", required = true, dataType = "Integer")})
-    public Object findDefaultSubByChargeTypeId(Integer chargeTypeId){
-        return succeed(subjectService.findDefaultSubByChargeTypeId(chargeTypeId));
+    @ApiImplicitParams({ @ApiImplicitParam(name = "chargeTypeId", value = "收费类型编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "organId", value = "分部编号", required = true, dataType = "Integer")})
+    public Object findDefaultSubByChargeTypeId(Integer chargeTypeId,Integer organId,Integer number){
+        if(chargeTypeId == null || organId == null || number == null){
+            throw new BizException("参数校验错误");
+        }
+        return succeed(subjectService.findDefaultSubByChargeTypeId(chargeTypeId,organId,number));
     }
 
     @ApiOperation(value = "新建乐团时,获取设置声部费用默认数据")