提交 9c3f4414 作者: han

借口汇总:新增查询以及课程购买借口

课程新增:/release/curriculum/addCurriculum
课程修改:/release/curriculum/updateCurriculum
课程删除:/release/curriculum/removeCurriculum
课程查询—根据ID查询:/release/curriculum/queryCurriculumInfoById
课程查询—分页条件查询:/release/curriculum/queryCurriculumInfoList

课程分类新增:/release/curriculum/addCurriculumClassify
课程分类修改:/release/curriculum/updateCurriculumClassify
课程分类删除:/release/curriculum/removeCurriculumClassify
课程分类查询(查所有):/release/curriculum/selectCurriculumClassify

购买课程-使用积分支付:/release/curriculum/curriculumPayByIntegral
购买课程-使用金额支付:/release/curriculum/curriculumPayByMoney
上级 a3b7e874
流水线 #7458 已失败 于阶段
in 3 秒
package com.mmc.csf.release.flyer.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author Admin
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CurriculumOrderLogVO {
private Integer userAccountId;
@ApiModelProperty(value = "云享金消耗金额")
private BigDecimal cashAmtPaid;
@ApiModelProperty(value = "佣金消耗金额")
private BigDecimal salaryAmtPaid;
@ApiModelProperty(value = "订单编号")
private String orderNo;
}
package com.mmc.csf.release.flyer.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.release.model.group.Insert;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author LW
* @date 2023/5/17 14:28
* 概要:课程信息
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CurriculumPayVO implements Serializable {
private static final long serialVersionUID = -7343885960160805850L;
@ApiModelProperty(value = "课程ID")
private Integer id;
@ApiModelProperty(value = "支付类型")
private String paymentType;
@ApiModelProperty(value = "微信支付订单编号")
private String paymentOrderNumber;
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.date.TDateUtil;
import com.mmc.csf.common.util.math.CodeUtil;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.entity.curriculum.CurriculumInfoDO;
import com.mmc.csf.release.entity.curriculum.CurriculumOrderDO;
import com.mmc.csf.release.feign.PmsAppApi;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.flyer.qo.CurriculumQo;
import com.mmc.csf.release.flyer.vo.*;
import com.mmc.csf.release.model.group.Insert;
......@@ -9,12 +14,14 @@ import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.FlyerTrainingService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
......@@ -31,6 +38,10 @@ public class FlyerTrainingController extends BaseController {
@Resource
private FlyerTrainingService flyerTrainingService;
@Qualifier("com.mmc.csf.release.feign.UserAppApi")
@Autowired
private UserAppApi userAppApi;
@ApiOperation(value = "飞手报名")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/pilotRegistration")
......@@ -116,6 +127,12 @@ public class FlyerTrainingController extends BaseController {
public ResultBody queryCurriculumInfoList(@RequestBody CurriculumQo curriculumQo) {
return ResultBody.success(flyerTrainingService.queryCurriculumInfoList(curriculumQo));
}
@ApiOperation(value = "课程查询-根据课程ID查询")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/queryCurriculumInfoById")
public ResultBody queryCurriculumInfoById(@RequestParam Integer id) {
return ResultBody.success(flyerTrainingService.selectCurriculumInfoById(id));
}
@Autowired
private PmsAppApi pmsAppApi;
......@@ -151,9 +168,8 @@ public class FlyerTrainingController extends BaseController {
@ApiOperation(value = "删除课程分类")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumClassifyVO.class)})
@PostMapping("removeCurriculumClassify")
public ResultBody removeCurriculumClassify(@RequestParam Integer oneCourseId,
@RequestParam(required = false) Integer twoCourseId) {
return ResultBody.success(flyerTrainingService.removeCurriculumClassify(oneCourseId, twoCourseId));
public ResultBody removeCurriculumClassify(Integer id) {
return flyerTrainingService.removeCurriculumClassify(id);
}
@ApiOperation(value = "所有课程分类列表")
......@@ -163,5 +179,28 @@ public class FlyerTrainingController extends BaseController {
return flyerTrainingService.selectCurriculumClassify();
}
@ApiOperation(value = "购买课程-使用积分-去支付")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/curriculumPayByIntegral")
public ResultBody curriculumPayByIntegral(HttpServletRequest request, @RequestParam Integer id) {
CurriculumInfoDO curriculumInfo = flyerTrainingService.selectCurriculumInfoById(id);
ResultBody resultBody = userAppApi.feignChangeUserPoints(request.getHeader("token"),request, - curriculumInfo.getRequireIntegral(), "购买课程");
if("200".equals(resultBody.getCode())){
CurriculumOrderDO curriculumOrderDO = new CurriculumOrderDO();
curriculumOrderDO.setUserAccountId(id);
curriculumOrderDO.setJifenConsume(curriculumInfo.getRequireIntegral());
// 生成支付流水号(规则"CO" + 时间戳 + 用户id + 随机数4位)
curriculumOrderDO.setOrderNo("CO" + TDateUtil.getDateStr(new Date(), "yyyyMMddHHmmss") + id + CodeUtil.getRandomNum(4));
return ResultBody.success(flyerTrainingService.curriculumPayByIntegral(curriculumOrderDO));
} else {
return ResultBody.error("积分不足,购买失败");
}
}
@ApiOperation(value = "购买课程-使用金额-去支付")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/curriculumPayByMoney")
public ResultBody curriculumPayByMoney(HttpServletRequest request,@RequestBody CurriculumPayVO curriculumPayVO) {
return flyerTrainingService.curriculumPayByMoney(request,curriculumPayVO);
}
}
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.curriculum.CurriculumOrderDO;
import com.mmc.csf.release.entity.curriculum.CurriculumOrderQO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author Admin
* @description 针对表【curriculum_order】的数据库操作Mapper
* @createDate 2023-12-07 10:01:44
* @Entity com.mmc.csf.release.entity.curriculum.CurriculumOrderDO
*/
@Mapper
public interface CurriculumOrderDao {
int deleteByPrimaryKey(Integer id);
int insert(CurriculumOrderDO record);
int insertSelective(CurriculumOrderDO record);
CurriculumOrderDO selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(CurriculumOrderDO record);
int updateByPrimaryKey(CurriculumOrderDO record);
/**
* 获取查询订单的总数
* @param param 条件
* @return int
*/
int getCountCurriculumOrder(CurriculumOrderQO param);
/**
* 获取课程订单信息
* @param param 查询条件
* @return {@link List}<{@link CurriculumOrderDO}>
*/
List<CurriculumOrderDO> selectOrderList(CurriculumOrderQO param);
}
......@@ -2,13 +2,10 @@ package com.mmc.csf.release.dao;
import java.util.List;
import com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO;
import com.mmc.csf.release.entity.curriculum.*;
import com.mmc.csf.release.flyer.vo.CurriculumClassifyVO;
import org.apache.ibatis.annotations.Mapper;
import com.mmc.csf.release.entity.curriculum.CurriculumInfoDO;
import com.mmc.csf.release.entity.curriculum.FlightSkillsDO;
import com.mmc.csf.release.entity.curriculum.PilotRegistrationDO;
import com.mmc.csf.release.flyer.qo.CurriculumQo;
import com.mmc.csf.release.flyer.vo.DronePilotLicenseVO;
......@@ -112,10 +109,9 @@ public interface FlyerTrainingDao {
/**
* 删除课程分类
*
* @param oneCourseId 1级课程分类
* @param twoCourseId 2级课程分类
* @param id 课程分类id
*/
Integer removeCurriculumClassify(Integer oneCourseId, Integer twoCourseId);
Integer removeCurriculumClassify(Integer id);
/**
* 查询一级分类的数量
......@@ -134,4 +130,14 @@ public interface FlyerTrainingDao {
* @return
*/
List<CurriculumClassifyDO> selectCurriculumClassify();
CurriculumClassifyDO selectCurriculumClassifyById(Integer id);
/**
* 根据课程ID查询课程信息
* @return
*/
CurriculumInfoDO selectCurriculumInfoById(Integer id);
int insertCurriculumOrder(CurriculumOrderDO record);
}
......@@ -27,10 +27,6 @@ public class CurriculumOrderDO implements Serializable {
*/
private Integer userAccountId;
/**
* 上传课程的后台id
*/
private Integer backUserId;
/**
* 订单总金额
......@@ -57,8 +53,13 @@ public class CurriculumOrderDO implements Serializable {
*/
private String wechatPayOrderNumber;
/**
* 课程ID
*/
private Integer curriculumInfoId;
/**
* 所需积分
*/
private int jifenConsume;
private static final long serialVersionUID = 1L;
......
......@@ -8,11 +8,14 @@ import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.feign.hystrix.UserAppApiHystrix;
import com.mmc.csf.release.flyer.vo.CurriculumOrderLogVO;
import com.mmc.csf.user.vo.ChangeUserPointVO;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -81,4 +84,10 @@ public interface UserAppApi {
@GetMapping("/userapp/user-account/feignGetUserBaseInfo")
UserBaseInfoDTO feignGetUserBaseInfo(@RequestParam Integer userAccountId);
@GetMapping("/userapp/userPoint/feignChangeUserPoints")
ResultBody feignChangeUserPoints(@RequestHeader("token") String token,@RequestHeader HttpServletRequest request, @RequestParam("id") int changePoint,@RequestParam("reason") String reason);
@GetMapping("/userapp/pay/feignCurriculumOrderLog")
ResultBody feignCurriculumOrderLog(@RequestHeader("token") String token,@RequestHeader HttpServletRequest request,@RequestBody CurriculumOrderLogVO curriculumOrderLogVO);
}
......@@ -9,9 +9,12 @@ import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.flyer.vo.CurriculumOrderLogVO;
import com.mmc.csf.user.vo.ChangeUserPointVO;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -68,5 +71,16 @@ public class UserAppApiHystrix implements UserAppApi {
return null;
}
@Override
public ResultBody feignChangeUserPoints(String token,HttpServletRequest request, int changePoint, String reason) {
log.error("获取积分日志 熔断:feignChangeUserPoints:{}", changePoint, reason);
return null;
}
@Override
public ResultBody feignCurriculumOrderLog(String token,HttpServletRequest request,CurriculumOrderLogVO curriculumOrderLogVO) {
return null;
}
}
......@@ -3,11 +3,15 @@ package com.mmc.csf.release.service;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO;
import com.mmc.csf.release.entity.curriculum.CurriculumInfoDO;
import com.mmc.csf.release.entity.curriculum.CurriculumOrderDO;
import com.mmc.csf.release.flyer.qo.CurriculumQo;
import com.mmc.csf.release.flyer.vo.CurriculumClassifyVO;
import com.mmc.csf.release.flyer.vo.CurriculumInfoVO;
import com.mmc.csf.release.flyer.vo.CurriculumPayVO;
import com.mmc.csf.release.flyer.vo.RegistrationVO;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
......@@ -116,11 +120,32 @@ public interface FlyerTrainingService {
* @param oneCourseId 1级课程分类
* @param twoCourseId 2级课程分类
*/
Integer removeCurriculumClassify(Integer oneCourseId, Integer twoCourseId);
ResultBody removeCurriculumClassify(Integer id);
/**
* 查询所有的课程分类
* @return
*/
ResultBody selectCurriculumClassify();
/**
* 根据课程ID查询课程信息
* @param id
* @return
*/
CurriculumInfoDO selectCurriculumInfoById(Integer id);
/**
* 购买课程——积分支付
* @param curriculumOrderDO
* @return
*/
Integer curriculumPayByIntegral(CurriculumOrderDO curriculumOrderDO);
/**
* 购买课程——金钱支付
* @param curriculumPayVO
* @return
*/
ResultBody curriculumPayByMoney(HttpServletRequest request, CurriculumPayVO curriculumPayVO);
}
......@@ -36,6 +36,18 @@
INSERT INTO `course_classify`(`name`, `one_course_id`, `two_course_id`, `classify_url`, `classify_desc`)
VALUES (#{name}, #{oneCourseId}, #{twoCourseId}, #{classifyUrl}, #{classifyDesc});
</insert>
<insert id="insertCurriculumOrder" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO">
insert into curriculum_order
( id,order_no,user_account_id
,order_total_amount,salary_amount
,cash_amount,we_chat,wechat_pay_order_number
, curriculum_info_id, jifen_consume)
values (#{id},#{orderNo},#{userAccountId}
,#{orderTotalAmount},#{salaryAmount}
,#{cashAmount},#{weChat},#{wechatPayOrderNumber}
,#{curriculumInfoId}
,#{jifenConsume})
</insert>
<update id="updateCurriculum" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO">
UPDATE curriculum_info
......@@ -112,10 +124,7 @@
is_deleted = 1
</set>
<where>
one_course_id = #{oneCourseId}
<if test="twoCourseId != null">
and two_course_id = #{twoCourseId}
</if>
id = #{id}
</where>
</update>
<select id="selectAllLicenses" resultType="com.mmc.csf.release.flyer.vo.DronePilotLicenseVO">
......@@ -250,11 +259,18 @@
<select id="countTwoCourseClassify" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM course_classify
WHERE two_course_id = #{two_course_id}
WHERE one_course_id = #{one_course_id} and is_deleted = 0
</select>
<select id="selectCurriculumClassify"
resultType="com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO">
select * from course_classify
where is_deleted = 0
</select>
<select id="selectCurriculumInfoById" resultType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO">
select * from curriculum_info where id = #{id}
</select>
<select id="selectCurriculumClassifyById"
resultType="com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO">
select * from course_classify where id = #{id} and is_deleted = 0
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论