Browse Source

活动排课

zouxuan 4 years ago
parent
commit
4285c50541

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrder.java

@@ -128,6 +128,16 @@ public class StudentPaymentOrder {
 	@ApiModelProperty(value = "优惠券减免总额",required = true)
 	private BigDecimal couponRemitFee = BigDecimal.ZERO;
 
+	private Integer activityId;
+
+	public Integer getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Integer activityId) {
+		this.activityId = activityId;
+	}
+
 	public String getCouponCodeId() {
 		return couponCodeId;
 	}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java

@@ -163,6 +163,17 @@ public class VipGroupActivity {
 
 	private String status = "DRAFT";
 
+	@ApiModelProperty(value = "活动价格")
+	private BigDecimal marketPrice = BigDecimal.ZERO;
+
+	public BigDecimal getMarketPrice() {
+		return marketPrice;
+	}
+
+	public void setMarketPrice(BigDecimal marketPrice) {
+		this.marketPrice = marketPrice;
+	}
+
 	public Integer getGiveCategoryNum() {
 		return giveCategoryNum;
 	}

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GroupType.java

@@ -16,7 +16,6 @@ public enum GroupType implements BaseEnum<String, GroupType> {
 	MAINTENANCE("乐保"),
 	REPLACEMENT("乐器置换"),
 	DEGREE("6.1考级活动"),
-	ACTIVITY("活动排课"),
 	MEMBER("购买会员");
 
 	private String desc;

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -222,6 +222,15 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
      */
 	void orderCallback(StudentPaymentOrder order);
 
+    /**
+    * @description: 活动购买支付订单回调
+     * @param order
+    * @return void
+    * @author zx
+    * @date 2021/10/13 19:52
+    */
+	void activityOrderCallback(StudentPaymentOrder order);
+
 	/**
 	 * @describe 获取用户历史购买的陪练课
 	 * @author Joburgess

+ 208 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -137,6 +137,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Autowired
     private ActivityUserMapperDao activityUserMapperDao;
     @Autowired
+    private CloudTeacherOrderDao cloudTeacherOrderDao;
+    @Autowired
+    private StudentService studentService;
+    @Autowired
     private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
 
     private static Map<Integer, Map<Integer, List<Integer>>> schoolSubjectTeachersMap;
@@ -3828,6 +3832,203 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    public void activityOrderCallback(StudentPaymentOrder order) {
+        Integer userId = order.getUserId();
+        //更新订单状态
+        int updateCount = studentPaymentOrderService.update(order);
+        if (updateCount <= 0) {
+            throw new BizException("订单更新失败");
+        }
+        StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.lockOrder(order.getId());
+
+        if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
+            return;
+        }
+        if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
+            Date now = new Date();
+            Student student = studentDao.get(order.getUserId());
+            Integer activityId = order.getActivityId();
+            VipGroupActivity activity = vipGroupActivityDao.get(activityId);
+            ActivityUserMapper activityUserMapper = new ActivityUserMapper();
+            activityUserMapper.setActivityId(activityId);
+            activityUserMapper.setUserId(order.getUserId());
+            activityUserMapper.setPaymentOrderId(order.getId());
+
+            if(activity.getActivityType() == 1){
+                //会员立即生效
+                Integer cloudTeacherType;
+                PeriodEnum periodEnum = activity.getPeriodEnum();
+                Integer cloudTime = activity.getMemberTime();
+                CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+                Date addDate = now;
+                if (student.getMemberRankSettingId() == null || now.after(student.getMembershipEndTime())) {
+                    cloudTeacherOrder.setStartTime(now);
+                } else {
+                    addDate = student.getMembershipEndTime();
+                    cloudTeacherOrder.setStartTime(DateUtil.addDays(addDate, 1));
+                }
+                switch (periodEnum){
+                    case DAY:
+                        cloudTeacherOrder.setEndTime(DateUtil.addDays(addDate, cloudTime));
+                        cloudTeacherType = 1;
+                        break;
+                    case MONTH:
+                        cloudTeacherType = 2;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime));
+                        break;
+                    case QUARTERLY:
+                        cloudTeacherType = 2;
+                        cloudTime = cloudTime * 3;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime * 3));
+                        break;
+                    case YEAR_HALF:
+                        cloudTime = cloudTime * 6;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime * 6));
+                        cloudTeacherType = 2;
+                        break;
+                    case YEAR:
+                        cloudTeacherOrder.setEndTime(DateUtil.addYears(addDate, cloudTime));
+                        cloudTeacherType = 3;
+                        break;
+                    default:
+                        throw new BizException("不支持的周期类型");
+                }
+                cloudTeacherOrder.setRemark("营销活动购买会员");
+                cloudTeacherOrder.setStatus(2);
+                cloudTeacherOrder.setOrderId(order.getId());
+                cloudTeacherOrder.setType(cloudTeacherType);
+                cloudTeacherOrder.setAmount(order.getActualAmount());
+                cloudTeacherOrder.setLevel(activity.getMemberRankId());
+                cloudTeacherOrder.setStudentId(userId);
+                cloudTeacherOrder.setOrganId(order.getOrganId());
+                cloudTeacherOrder.setTime(cloudTime);
+                cloudTeacherOrderDao.insert(cloudTeacherOrder);
+                studentService.updateMemberRank(cloudTeacherOrder,periodEnum);
+                activityUserMapper.setMemberFlag(2);
+                activityUserMapper.setMemberOrderId(cloudTeacherOrder.getId());
+            }else {
+                if(activity.getCourseType().equals("VIP")){
+                    activityUserMapper.setVipFlag(1);
+                }else {
+                    activityUserMapper.setPracticeFlag(1);
+                }
+                if(activity.isPayToBalance()){
+                    boolean appendCourseBalance = sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount().subtract(studentPaymentOrder.getCouponRemitFee()), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
+                    if (!appendCourseBalance) {
+                        throw new BizException("增加用户课程余额失败");
+                    }
+                }
+            }
+            if(activity.getGiveMemberTime() > 0){
+                //会员立即生效
+                Integer cloudTeacherType;
+                PeriodEnum periodEnum = activity.getGivePeriodEnum();
+                Integer cloudTime = activity.getGiveMemberTime();
+                CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+                Date addDate = now;
+                if (student.getMemberRankSettingId() == null || now.after(student.getMembershipEndTime())) {
+                    cloudTeacherOrder.setStartTime(now);
+                } else {
+                    addDate = student.getMembershipEndTime();
+                    cloudTeacherOrder.setStartTime(DateUtil.addDays(addDate, 1));
+                }
+                switch (periodEnum){
+                    case DAY:
+                        cloudTeacherOrder.setEndTime(DateUtil.addDays(addDate, cloudTime));
+                        cloudTeacherType = 1;
+                        break;
+                    case MONTH:
+                        cloudTeacherType = 2;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime));
+                        break;
+                    case QUARTERLY:
+                        cloudTeacherType = 2;
+                        cloudTime = cloudTime * 3;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime * 3));
+                        break;
+                    case YEAR_HALF:
+                        cloudTime = cloudTime * 6;
+                        cloudTeacherOrder.setEndTime(DateUtil.addMonths(addDate, cloudTime * 6));
+                        cloudTeacherType = 2;
+                        break;
+                    case YEAR:
+                        cloudTeacherOrder.setEndTime(DateUtil.addYears(addDate, cloudTime));
+                        cloudTeacherType = 3;
+                        break;
+                    default:
+                        throw new BizException("不支持的周期类型");
+                }
+                cloudTeacherOrder.setRemark("营销活动赠送会员");
+                cloudTeacherOrder.setStatus(2);
+                cloudTeacherOrder.setOrderId(order.getId());
+                cloudTeacherOrder.setType(cloudTeacherType);
+                cloudTeacherOrder.setAmount(BigDecimal.ZERO);
+                cloudTeacherOrder.setLevel(activity.getGiveMemberRankId());
+                cloudTeacherOrder.setStudentId(userId);
+                cloudTeacherOrder.setOrganId(order.getOrganId());
+                cloudTeacherOrder.setTime(cloudTime);
+                cloudTeacherOrderDao.insert(cloudTeacherOrder);
+                studentService.updateMemberRank(cloudTeacherOrder,periodEnum);
+                activityUserMapper.setGiveMemberFlag(2);
+                activityUserMapper.setGiveMemberOrderId(cloudTeacherOrder.getId());
+            }else if(activity.getGiveCourseNum() > 0){
+                if(activity.getGiveCourseType().equals("VIP")){
+                    activityUserMapper.setGiveVipFlag(1);
+                }else {
+                    activityUserMapper.setGivePracticeFlag(1);
+                }
+            }
+            activityUserMapperDao.insert(activityUserMapper);
+            SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
+            //插入缴费明细
+            //收入
+            SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
+            sysUserIncomeCashAccountDetail.setUserId(order.getUserId());
+            sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
+            sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+            sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
+            sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
+            sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
+            sysUserIncomeCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+            sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount());
+            sysUserIncomeCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount());
+            //支出
+            SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
+            sysUserExpendCashAccountDetail.setUserId(order.getUserId());
+            sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
+            sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+            sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
+            sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+            sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
+            sysUserExpendCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+
+            if (studentPaymentOrder.getComAmount() != null) {
+                sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
+            }
+            if (studentPaymentOrder.getPerAmount() != null) {
+                sysUserExpendCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
+            }
+
+            sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+            sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
+
+//            try {
+//                contractService.transferPracticeCoursesContract(order.getUserId(), classGroup.getTotalClassTimes(), practiceGroup.getCoursesStartDate(), practiceGroup.getCoursesExpireDate(), order.getExpectAmount());
+//            } catch (Exception e) {
+//                LOGGER.error(MessageFormatter.arrayFormat("网管课[{}]购买协议错误:{}", order.getMusicGroupId(), e.getMessage()), e);
+//            }
+            studentDao.updateStudentServiceTag(userId, null, YesOrNoEnum.YES.getCode());
+        }
+        if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
+            if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "报名缴费失败");
+            }
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
+        }
+    }
+
+    @Override
     public List<PracticeCourseDto> findUserHistoryBuyPracticeGroups(Integer userId, Long groupId, PracticeGroupType type) {
         List<PracticeCourseDto> userPracticeGroups;
         if (Objects.nonNull(groupId)) {
@@ -4904,21 +5105,20 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 throw new BizException("当前活动最多课购买{}次,感谢您的参与",studentMaxUsedTimes);
             }
         }
-        OrderTypeEnum orderTypeEnum;
+        GroupType groupType;
         if(activity.getActivityType() == 1){
-            orderTypeEnum = OrderTypeEnum.MEMBER;
+            groupType = GroupType.MEMBER;
         }else {
             if(activity.getCourseType().equals("VIP")){
-                orderTypeEnum = OrderTypeEnum.SMALL_CLASS_TO_BUY;
+                groupType = GroupType.VIP;
             }else {
-                orderTypeEnum = OrderTypeEnum.PRACTICE_GROUP_BUY;
+                groupType = GroupType.PRACTICE;
             }
         }
 
         //判断用户是否已存在订单
         // 判断是否存在支付中的记录
-        List<StudentPaymentOrder> list = studentPaymentOrderService
-                .queryByCondition(GroupType.ACTIVITY,null,student.getUserId(),DealStatusEnum.ING,orderTypeEnum);
+        List<StudentPaymentOrder> list = studentPaymentOrderService.queryByCondition(groupType,null,student.getUserId(),DealStatusEnum.ING,OrderTypeEnum.ACTIVITY);
         if (list.size() > 0) {
             StudentPaymentOrder order = list.get(0);
             // 查询订单状态
@@ -4942,20 +5142,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 return BaseController.failed(HttpStatus.CONTINUE,"您有待支付的订单");
             }
         }
-        BigDecimal activityFee = BigDecimal.ZERO;
-        GroupType groupType = GroupType.MEMBER;
+        BigDecimal activityFee = activity.getMarketPrice();
         //计算订单金额
-        switch (orderTypeEnum) {
-            case MEMBER:
-                groupType = GroupType.MEMBER;
-                break;
-            case SMALL_CLASS_TO_BUY:
-                groupType = GroupType.VIP;
-                break;
-            case PRACTICE_GROUP_BUY:
-                groupType = GroupType.PRACTICE;
-                break;
-        }
         StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(practiceGroupBuyParams.getCouponIdList(), activityFee, true);
         activityFee = studentPaymentOrder.getActualAmount();
         if(practiceGroupBuyParams.getAmount().compareTo(activityFee) != 0){
@@ -4986,7 +5174,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         studentPaymentOrder.setUserId(student.getUserId());
         studentPaymentOrder.setGroupType(groupType);
         studentPaymentOrder.setOrderNo(orderNo);
-        studentPaymentOrder.setType(orderTypeEnum);
+        studentPaymentOrder.setType(OrderTypeEnum.ACTIVITY);
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setRemitFee(BigDecimal.ZERO);
         studentPaymentOrder.setCourseRemitFee(BigDecimal.ZERO);

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -478,6 +478,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             childrenDayReserveService.orderCallback(order);
         }else if (order.getType().equals(OrderTypeEnum.MEMBER)) {
         	memberRankSettingService.orderCallback(order);
+        }else if (order.getType().equals(OrderTypeEnum.ACTIVITY)) {
+            practiceGroupService.activityOrderCallback(order);
         }
     }
 

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -2828,7 +2828,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		 */
 		Long vipGroupId = Long.parseLong(order.getMusicGroupId());
 		Integer userId = order.getUserId();
-		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
+		boolean isOk = order.getStatus().equals(DealStatusEnum.SUCCESS);
 
 		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.lockOrder(order.getId());
 
@@ -2842,7 +2842,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
 			return;
 		}
-
 		studentPaymentOrderDao.update(order);
 
 		ClassGroup classGroup = classGroupDao.get(order.getClassGroupId());
@@ -2918,7 +2917,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		String organIdsString = StringUtils.join(hashSet, ",");
 		vipGroup.setOrganIdList(organIdsString);
 		classGroup = classGroupDao.get(order.getClassGroupId());
-		if(classGroup.getDelFlag()==0&&classGroup.getExpectStudentNum().equals(classGroup.getStudentNum())){
+		if(classGroup.getDelFlag()==0 && classGroup.getExpectStudentNum().equals(classGroup.getStudentNum())){
 			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 		}
 		vipGroupDao.update(vipGroup);

+ 18 - 139
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -56,6 +56,7 @@
 		<result property="givePeriodEnum" column="give_period_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result property="status" column="status_"/>
 		<result property="enable" column="enable_"/>
+		<result property="marketPrice" column="market_price_"/>
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -76,154 +77,32 @@
 										student_max_used_times_, apply_to_student_type_,allow_online_to_offline_,
 										single_course_time_,discount_,full_minus_course_times_,give_course_type_,give_category_id_,give_course_num_
 										,member_rank_id_,member_time_,give_member_rank_id_,give_member_time_,course_type_,
-		                                activity_type_,give_sign_course_time_,is_pay_to_balance_,teach_mode_,give_teach_mode_,period_,give_period_,status_,enable_)
+		                                activity_type_,give_sign_course_time_,is_pay_to_balance_,teach_mode_,give_teach_mode_,period_,give_period_,status_,enable_,market_price_)
 		VALUES(#{name},#{description},#{vipGroupCategoryIdList},#{startTime},#{endTime},#{organId},#{coursesStartTime},#{coursesEndTime},#{type},#{attribute1},#{attribute2},#{attribute3},
 		       #{salaryReadonlyFlag},#{giveClassPaySalaryFlag},now(),now(),#{salarySettlementJson},#{delFlag},#{paymentReadonlyFlag},#{onlineClassJoinGradientRewards},
 		       #{offlineClassJoinGradientRewards},#{minCourseNum},#{maxCourseNum},#{studentMaxUsedTimes},#{applyToStudentType},#{allowOnlineToOffline},
 			   #{singleCourseTime},#{discount},#{fullMinusCourseTimes},#{giveCourseType},#{giveCategoryId},#{giveCourseNum}
 				  ,#{memberRankId},#{memberTime},#{giveMemberRankId},#{giveMemberTime},#{courseType},#{activityType},#{giveSingleCourseTime},
-		       #{isPayToBalance},#{teachMode},#{giveTeachMode},#{periodEnum},#{givePeriodEnum},#{status},#{enable})
+		       #{isPayToBalance},#{teachMode},#{giveTeachMode},#{periodEnum},#{givePeriodEnum},#{status},#{enable},#{marketPrice})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.VipGroupActivity">
-		UPDATE vip_group_activity
-		<set>
-			<if test="enable != null">
-				enable_ = #{enable},
-			</if>
-			<if test="status != null">
-				status_ = #{status},
-			</if>
-			<if test="givePeriodEnum != null">
-				give_period_ = #{givePeriodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="periodEnum != null">
-				period_ = #{periodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="giveTeachMode != null">
-				give_teach_mode_ = #{giveTeachMode},
-			</if>
-			<if test="teachMode != null">
-				teach_mode_ = #{teachMode},
-			</if>
-			<if test="isPayToBalance != null">
-				is_pay_to_balance_ = #{isPayToBalance},
-			</if>
-			<if test="giveSingleCourseTime != null">
-				give_sign_course_time_ = #{giveSingleCourseTime},
-			</if>
-			<if test="singleCourseTime != null">
-				single_course_time_ = #{singleCourseTime},
-			</if>
-			<if test="discount != null">
-				discount_ = #{discount},
-			</if>
-			<if test="fullMinusCourseTimes != null">
-				full_minus_course_times_ = #{fullMinusCourseTimes},
-			</if>
-			<if test="giveCourseType != null">
-				give_course_type_ = #{giveCourseType},
-			</if>
-			<if test="giveCategoryId != null">
-				give_category_id_ = #{giveCategoryId},
-			</if>
-			<if test="giveCourseNum != null">
-				give_course_num_ = #{giveCourseNum},
-			</if>
-			<if test="activityType != null">
-				activity_type_ = #{activityType},
-			</if>
-			<if test="courseType != null">
-				course_type_ = #{courseType},
-			</if>
-			<if test="memberTime != null">
-				member_time_ = #{memberTime},
-			</if>
-			<if test="memberRankId != null">
-				member_rank_id_ = #{memberRankId},
-			</if>
-			<if test="giveMemberTime != null">
-				give_member_time_ = #{giveMemberTime},
-			</if>
-			<if test="giveMemberRankId != null">
-				give_member_rank_id_ = #{giveMemberRankId},
-			</if>
-			<if test="salaryReadonlyFlag != null">
-				salary_readonly_flag_ = #{salaryReadonlyFlag},
-			</if>
-			<if test="organId != null">
-				organ_id_ = #{organId},
-			</if>
-			<if test="giveClassPaySalaryFlag != null">
-				give_class_pay_salary_flag_ = #{giveClassPaySalaryFlag},
-			</if>
-			<if test="coursesEndTime != null">
-				courses_end_time_ = #{coursesEndTime},
-			</if>
-			<if test="attribute1 != null">
-				attribute1_ = #{attribute1},
-			</if>
-			<if test="attribute2 != null">
-				attribute2_ = #{attribute2},
-			</if>
-			<if test="name != null">
-				name_ = #{name},
-			</if>
-			<if test="startTime != null">
-				start_time_ = #{startTime},
-			</if>
-			<if test="attribute3 != null">
-				attribute3_ = #{attribute3},
-			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
-			<if test="vipGroupCategoryIdList != null">
-				vip_group_category_id_list_ = #{vipGroupCategoryIdList},
-			</if>
-			<if test="description != null">
-				description_ = #{description},
-			</if>
-			<if test="salarySettlementJson != null">
-				salary_settlement_json_ = #{salarySettlementJson},
-			</if>
-			<if test="coursesStartTime != null">
-				courses_start_time_ = #{coursesStartTime},
-			</if>
-			<if test="type != null">
-				type_ = #{type},
-			</if>
-			<if test="delFlag != null">
-				del_flag_ = #{delFlag},
-			</if>
-			<if test="paymentReadonlyFlag != null">
-				payment_readonly_flag_ = #{paymentReadonlyFlag},
-			</if>
-			<if test="onlineClassJoinGradientRewards!=null">
-				online_class_join_gradient_rewards_=#{onlineClassJoinGradientRewards},
-			</if>
-			<if test="offlineClassJoinGradientRewards!=null">
-				offline_class_join_gradient_rewards_=#{offlineClassJoinGradientRewards},
-			</if>
-			<if test="minCourseNum!=null">
-				min_course_num_=#{minCourseNum},
-			</if>
-			<if test="maxCourseNum!=null">
-				max_course_num_=#{maxCourseNum},
-			</if>
-			<if test="studentMaxUsedTimes!=null">
-				student_max_used_times_=#{studentMaxUsedTimes},
-			</if>
-			<if test="applyToStudentType!=null">
-				apply_to_student_type_=#{applyToStudentType},
-			</if>
-			<if test="allowOnlineToOffline!=null">
-				allow_online_to_offline_=#{allowOnlineToOffline},
-			</if>
-			end_time_ = #{endTime},
-			update_time_ = NOW()
-		</set>WHERE id_ = #{id}
+		UPDATE vip_group_activity SET enable_ = #{enable},status_ = #{status},give_period_ = #{givePeriodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		period_ = #{periodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},give_teach_mode_ = #{giveTeachMode},
+		teach_mode_ = #{teachMode},is_pay_to_balance_ = #{isPayToBalance},give_sign_course_time_ = #{giveSingleCourseTime},
+		single_course_time_ = #{singleCourseTime},discount_ = #{discount},full_minus_course_times_ = #{fullMinusCourseTimes},
+		give_course_type_ = #{giveCourseType},give_category_id_ = #{giveCategoryId},give_course_num_ = #{giveCourseNum},
+		activity_type_ = #{activityType},course_type_ = #{courseType},member_time_ = #{memberTime},
+		member_rank_id_ = #{memberRankId},give_member_time_ = #{giveMemberTime},give_member_rank_id_ = #{giveMemberRankId},
+		salary_readonly_flag_ = #{salaryReadonlyFlag},organ_id_ = #{organId},give_class_pay_salary_flag_ = #{giveClassPaySalaryFlag},
+		courses_end_time_ = #{coursesEndTime},attribute1_ = #{attribute1},attribute2_ = #{attribute2},
+		name_ = #{name},start_time_ = #{startTime},attribute3_ = #{attribute3},vip_group_category_id_list_ = #{vipGroupCategoryIdList},
+		description_ = #{description},salary_settlement_json_ = #{salarySettlementJson},courses_start_time_ = #{coursesStartTime},
+		type_ = #{type},payment_readonly_flag_ = #{paymentReadonlyFlag},online_class_join_gradient_rewards_=#{onlineClassJoinGradientRewards},
+		offline_class_join_gradient_rewards_=#{offlineClassJoinGradientRewards},min_course_num_=#{minCourseNum},
+		max_course_num_=#{maxCourseNum},student_max_used_times_=#{studentMaxUsedTimes},apply_to_student_type_=#{applyToStudentType},
+		allow_online_to_offline_=#{allowOnlineToOffline},end_time_ = #{endTime},market_price_ = #{marketPrice},update_time_ = NOW() WHERE id_ = #{id}
 	</update>
 
 	<!-- 根据主键删除一条记录 -->

+ 5 - 5
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -266,10 +266,10 @@ public class PracticeGroupController extends BaseController {
         }
     }
 
-    @ApiOperation("网管课营销活动购买")
-    @PostMapping(value = "/buyActivityPracticeGroup")
-    @AuditLogAnnotation(operateName = "网管课营销活动购买")
-    public HttpResponseResult buyActivityPracticeGroup(@RequestBody PracticeGroupBuyParamsDto practiceGroupBuyParams) throws Exception {
+    @ApiOperation("营销活动购买")
+    @PostMapping(value = "/buyActivity")
+    @AuditLogAnnotation(operateName = "营销活动购买")
+    public HttpResponseResult buyActivity(@RequestBody PracticeGroupBuyParamsDto practiceGroupBuyParams) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -279,7 +279,7 @@ public class PracticeGroupController extends BaseController {
         }
         practiceGroupBuyParams.setOrganId(sysUser.getOrganId());
         practiceGroupBuyParams.setUserId(sysUser.getId());
-        return practiceGroupService.buyActivityPracticeGroup(practiceGroupBuyParams);
+        return succeed(practiceGroupService.buyActivityPracticeGroup(practiceGroupBuyParams));
     }
 
     @ApiOperation(value = "购买指导老师创建的网管课")