提交 469d87ac 作者: 刘明祎-运维用途

Merge branch 'develop'

流水线 #7523 已通过 于阶段
in 2 分 53 秒
...@@ -72,4 +72,10 @@ public class ServiceOrderFormDTO { ...@@ -72,4 +72,10 @@ public class ServiceOrderFormDTO {
@ApiModelProperty(value = "子订单详情") @ApiModelProperty(value = "子订单详情")
private List<ServiceOrderFormDTO> childrenRequire; private List<ServiceOrderFormDTO> childrenRequire;
@ApiModelProperty(value = "发布者基本信息")
private UserBaseInfoDTO orderRelease;
@ApiModelProperty(value = "接单人基本信息")
private UserBaseInfoDTO orderReceive;
} }
...@@ -4,10 +4,15 @@ import lombok.AllArgsConstructor; ...@@ -4,10 +4,15 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Admin
*/
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class UserBaseInfoDTO { public class UserBaseInfoDTO implements Serializable {
private Integer userAccountId; private Integer userAccountId;
private String userName; private String userName;
......
...@@ -23,14 +23,14 @@ public class CurriculumQo implements Serializable { ...@@ -23,14 +23,14 @@ public class CurriculumQo implements Serializable {
private static final long serialVersionUID = 3124398495152234751L; private static final long serialVersionUID = 3124398495152234751L;
@ApiModelProperty(value = "课程名称") @ApiModelProperty(value = "课程名称")
private String curriculumName; private String curriculumName;
@ApiModelProperty(value = "省份编码") @ApiModelProperty(value = "1级课程分类")
private Integer provinceCode; private Integer oneCourseId;
@ApiModelProperty(value = "执照id") @ApiModelProperty(value = "2级课程分类")
private Integer licenseId; private Integer twoCourseId;
@ApiModelProperty(value = "技能id") @ApiModelProperty(value = "课程属性: 0:免费 1:积分兑换 2:付费 ")
private Integer flightSkillsId; private Integer courseAttribute;
@ApiModelProperty(value = "课程类型id") @ApiModelProperty(value = "是否热门: 0:否 1:是 ")
private Integer categoriesId; private Integer isHot;
@ApiModelProperty(value = "页码", required = true) @ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = { Page.class }) @NotNull(message = "页码不能为空", groups = { Page.class })
@Min(value = 1, groups = Page.class) @Min(value = 1, groups = Page.class)
......
package com.mmc.csf.release.flyer.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update;
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 han
* 概要:课程分类
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CurriculumClassifyVO implements Serializable {
private static final long serialVersionUID = -7343885960160805850L;
@ApiModelProperty(value = "课程分类id")
private Integer id;
@ApiModelProperty(value = "分类名字")
@NotNull(message = "分类名字不能为空" ,groups = {Update.class})
private String name;
@ApiModelProperty(value = "1级课程分类")
@NotNull(message = "1级课程分类不能为空" ,groups = {Update.class})
private Integer oneCourseId;
@ApiModelProperty(value = "2级课程分类")
private Integer twoCourseId;
@ApiModelProperty(value = "分类图标")
private String classifyUrl;
@ApiModelProperty(value = "分类描述")
private String classifyDesc;
@ApiModelProperty(value = "创建时间")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.mmc.csf.release.flyer.vo; package com.mmc.csf.release.flyer.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.mmc.csf.release.model.group.Insert; import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
...@@ -12,6 +12,7 @@ import org.hibernate.validator.constraints.Length; ...@@ -12,6 +12,7 @@ import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @Author LW * @Author LW
...@@ -25,35 +26,19 @@ import java.math.BigDecimal; ...@@ -25,35 +26,19 @@ import java.math.BigDecimal;
public class CurriculumInfoVO implements Serializable { public class CurriculumInfoVO implements Serializable {
private static final long serialVersionUID = -7343885960160805850L; private static final long serialVersionUID = -7343885960160805850L;
@ApiModelProperty(value = "课程id") @ApiModelProperty(value = "课程id")
@NotNull(message = "课程id不能为空" ,groups = {Update.class})
private Integer id; private Integer id;
@ApiModelProperty(value = "价格") @ApiModelProperty(value = "1级课程分类ID")
private BigDecimal price; @NotNull(message = "1级课程分类ID不能为空" ,groups = {Insert.class})
private Integer oneCourseId;
@ApiModelProperty(value = "供应商名称") @ApiModelProperty(value = "2级课程分类ID")
private String supplierName; private Integer twoCourseId;
@ApiModelProperty(value = "课程名称,长度30") @ApiModelProperty(value = "课程名称,长度30")
@Length(max = 30) @Length(max = 30)
private String curriculumName; private String curriculumName;
@ApiModelProperty(value = "课程是否免费 0:免费 1:付费")
private Integer free;
@ApiModelProperty(value = "课程类型,二级id")
@NotNull(message = "课程类型id不能为空" ,groups = {Insert.class})
private Integer categoriesId;
@ApiModelProperty(value = "目录名称", example = "技能")
private String directoryName;
@ApiModelProperty(value = "课程类型名称", example = "通用巡检")
private String categoriesName;
@ApiModelProperty(value = "课程技能类型,二级id")
private Integer flightSkills;
@ApiModelProperty(value = "课程介绍(简介), 长度255") @ApiModelProperty(value = "课程介绍(简介), 长度255")
@Length(max = 255) @Length(max = 255)
private String curriculumDesc; private String curriculumDesc;
...@@ -64,6 +49,30 @@ public class CurriculumInfoVO implements Serializable { ...@@ -64,6 +49,30 @@ public class CurriculumInfoVO implements Serializable {
@ApiModelProperty(value = "课程视频") @ApiModelProperty(value = "课程视频")
private String videoUrl; private String videoUrl;
@ApiModelProperty(value = "课程属性: 0:免费 1:积分兑换 2:付费 ")
private Integer courseAttribute;
@ApiModelProperty(value = "价格")
private BigDecimal requireAmout;
@ApiModelProperty(value = "积分")
private Integer requireIntegral;
@ApiModelProperty(value = "课程是否热门 0:否 1:是")
private Integer isHot;
@ApiModelProperty(value = "课程详情") @ApiModelProperty(value = "课程详情")
private String detailContent; private String detailContent;
@ApiModelProperty(value = "创建时间")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "更新时间")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
@ApiModelProperty(value = "用户是否购买过")
private boolean buy;
} }
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;
}
...@@ -18,4 +18,4 @@ patches: ...@@ -18,4 +18,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: a7297ddb53d52d7ceac0649335401ef9831ae337 newTag: be3a62a563f7f863a03f934bdae13531d5c16e47
package com.mmc.csf.release.controller; 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.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.entity.curriculum.CurriculumOrderQO;
import com.mmc.csf.release.feign.PmsAppApi; 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.qo.CurriculumQo;
import com.mmc.csf.release.flyer.vo.CurriculumInfoVO; import com.mmc.csf.release.flyer.vo.*;
import com.mmc.csf.release.flyer.vo.DronePilotLicenseVO;
import com.mmc.csf.release.flyer.vo.FlightSkillsVO;
import com.mmc.csf.release.flyer.vo.RegistrationVO;
import com.mmc.csf.release.model.group.Insert; import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Update; import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.release.service.FlyerTrainingService; import com.mmc.csf.release.service.FlyerTrainingService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List; import java.util.List;
...@@ -34,6 +40,10 @@ public class FlyerTrainingController extends BaseController { ...@@ -34,6 +40,10 @@ public class FlyerTrainingController extends BaseController {
@Resource @Resource
private FlyerTrainingService flyerTrainingService; private FlyerTrainingService flyerTrainingService;
@Qualifier("com.mmc.csf.release.feign.UserAppApi")
@Autowired
private UserAppApi userAppApi;
@ApiOperation(value = "飞手报名") @ApiOperation(value = "飞手报名")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/pilotRegistration") @PostMapping("/pilotRegistration")
...@@ -94,8 +104,8 @@ public class FlyerTrainingController extends BaseController { ...@@ -94,8 +104,8 @@ public class FlyerTrainingController extends BaseController {
@ApiOperation(value = "V1.0.1课程视频详情") @ApiOperation(value = "V1.0.1课程视频详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumInfoVO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumInfoVO.class)})
@GetMapping("/curriculumDetails") @GetMapping("/curriculumDetails")
public ResultBody curriculumDetails(@ApiParam(value = "课程id") @RequestParam(value = "id") Integer id) { public ResultBody curriculumDetails(HttpServletRequest request, @ApiParam(value = "课程id") @RequestParam(value = "id") Integer id) {
return flyerTrainingService.curriculumDetails(id); return flyerTrainingService.curriculumDetails(id, this.getUserLoginInfoFromRedis(request).getUserAccountId());
} }
@ApiOperation(value = "V1.0.1新增课程") @ApiOperation(value = "V1.0.1新增课程")
...@@ -136,4 +146,81 @@ public class FlyerTrainingController extends BaseController { ...@@ -136,4 +146,81 @@ public class FlyerTrainingController extends BaseController {
public Integer getCurriculumCount() { public Integer getCurriculumCount() {
return flyerTrainingService.getCurriculumCount(); return flyerTrainingService.getCurriculumCount();
} }
@ApiOperation(value = "后台——获取课程订单列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumOrderDO.class)})
@PostMapping("getCurriculumOrderList")
public ResultBody<List<CurriculumOrderDO>> getCurriculumOrderList(@ApiParam(value = "订单查询QO", required = true) @Validated(Page.class) @RequestBody CurriculumOrderQO param) {
return flyerTrainingService.getCurriculumOrderList(param);
}
@ApiOperation(value = "小程序——获取我的课程列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumOrderDO.class)})
@PostMapping("getCurriculumOrderListByMini")
public ResultBody<List<CurriculumOrderDO>> selectCurriculumOrderList(HttpServletRequest request, @ApiParam(value = "订单查询QO", required = true) @Validated(Page.class) @RequestBody CurriculumOrderQO param) {
param.setUserAccountId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
return flyerTrainingService.getCurriculumOrderList(param);
}
@ApiOperation(value = "后台——删除课程订单详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumOrderDO.class)})
@GetMapping("deleteCurriculumOrderInfo")
public ResultBody<CurriculumOrderDO> deleteCurriculumOrderInfo(@ApiParam(value = "删除订单id", required = true) @Validated(Page.class) @RequestParam(value = "id") Integer id) {
return flyerTrainingService.deleteCurriculumOrderInfo(id);
}
@ApiOperation(value = "新增课程分类")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumClassifyVO.class)})
@PostMapping("addCurriculumClassify")
public ResultBody addCurriculumClassify(@Validated(Insert.class) @RequestBody CurriculumClassifyVO curriculumClassifyVO) {
return ResultBody.success(flyerTrainingService.addCurriculumClassify(curriculumClassifyVO));
}
@ApiOperation(value = "修改课程分类")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumClassifyVO.class)})
@PostMapping("updateCurriculumClassify")
public ResultBody updateCurriculumClassify(@Validated(Update.class) @RequestBody CurriculumClassifyVO curriculumClassifyVO) {
return ResultBody.success(flyerTrainingService.updateCurriculumClassify(curriculumClassifyVO));
}
@ApiOperation(value = "删除课程分类")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumClassifyVO.class)})
@GetMapping("removeCurriculumClassify")
public ResultBody removeCurriculumClassify(@RequestParam Integer id) {
return flyerTrainingService.removeCurriculumClassify(id);
}
@ApiOperation(value = "所有课程分类列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CurriculumClassifyVO.class)})
@GetMapping("/selectCurriculumClassify")
public ResultBody selectCurriculumClassify() {
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(this.getUserLoginInfoFromRedis(request).getUserAccountId());
curriculumOrderDO.setCurriculumInfoId(id);
curriculumOrderDO.setJifenConsume(curriculumInfo.getRequireIntegral());
// 生成支付流水号(规则"CO" + 时间戳 + 用户id + 随机数4位)
curriculumOrderDO.setOrderNo("CO" + TDateUtil.getDateStr(new Date(), "yyyyMMddHHmmss") + this.getUserLoginInfoFromRedis(request).getUserAccountId() + CodeUtil.getRandomNum(4));
return ResultBody.success(flyerTrainingService.curriculumPayByIntegral(curriculumOrderDO));
} else {
return ResultBody.error("积分不足,购买失败");
}
}
@ApiOperation(value = "购买课程-使用金额-去支付")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/curriculumPayByMoney")
public ResultBody curriculumPayByMoney(HttpServletRequest request,@RequestBody CurriculumPayVO curriculumPayVO) {
return flyerTrainingService.curriculumPayByMoney(request,curriculumPayVO,this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
} }
package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.curriculum.CurriculumOrder;
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-11 10:36:21
* @Entity com.mmc.csf.release.entity.curriculum.CurriculumOrder
*/
@Mapper
public interface CurriculumOrderDao {
int deleteByPrimaryKey(Integer id);
int insert(CurriculumOrder record);
int insertSelective(CurriculumOrder record);
CurriculumOrderDO selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(CurriculumOrder record);
int updateByPrimaryKey(CurriculumOrder record);
int getCountCurriculumOrder(CurriculumOrderQO param);
List<CurriculumOrderDO> selectOrderList(CurriculumOrderQO param);
}
package com.mmc.csf.release.dao; package com.mmc.csf.release.dao;
import java.util.List; import com.mmc.csf.release.entity.curriculum.*;
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.qo.CurriculumQo;
import com.mmc.csf.release.flyer.vo.DronePilotLicenseVO; import com.mmc.csf.release.flyer.vo.DronePilotLicenseVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* @Author LW * @Author LW
...@@ -92,4 +89,55 @@ public interface FlyerTrainingDao { ...@@ -92,4 +89,55 @@ public interface FlyerTrainingDao {
int countCurriculumInfo(Integer categoriesId); int countCurriculumInfo(Integer categoriesId);
Integer getCurriculumCount(); Integer getCurriculumCount();
/**
* 添加课程分类
*
* @param curriculumClassifyDO
*/
Integer addCurriculumClassify(CurriculumClassifyDO curriculumClassifyDO);
/**
* 修改课程分类
*
* @param curriculumClassify
*/
Integer updateCurriculumClassify(CurriculumClassifyDO curriculumClassify);
/**
* 删除课程分类
*
* @param id 课程分类id
*/
Integer removeCurriculumClassify(Integer id);
/**
* 查询一级分类的数量
* @return
*/
Integer countOneCourseClassify();
/**
* 查询当前一级分类下的二级分类的数量
* @param twoCourseId 2级课程分类
*/
Integer countTwoCourseClassify(Integer twoCourseId);
/**
* 查询所有的课程分类
* @return
*/
List<CurriculumClassifyDO> selectCurriculumClassify();
CurriculumClassifyDO selectCurriculumClassifyById(Integer id);
/**
* 根据课程ID查询课程信息
* @return
*/
CurriculumInfoDO selectCurriculumInfoById(Integer id);
int selectCountCurriculumOrder(Integer id,Integer userId);
int insertCurriculumOrder(CurriculumOrderDO record);
} }
package com.mmc.csf.release.entity.curriculum;
import com.mmc.csf.release.flyer.vo.CurriculumClassifyVO;
import com.mmc.csf.release.flyer.vo.CurriculumInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 课程基本信息(CurriculumClassifyDO)实体类
*
* @author han
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CurriculumClassifyDO implements Serializable {
private static final long serialVersionUID = 140348746605431718L;
private Integer id;
/**
* 课程类别名称
*/
private String name;
/**
* 1级课程分类
*/
private Integer oneCourseId;
/**
* 2级课程分类
*/
private Integer twoCourseId;
/**
* 分类图标
*/
private String classifyUrl;
/**
* 分类描述
*/
private String classifyDesc;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除 0:否 1:是
*/
private Integer deleted;
public CurriculumClassifyDO(CurriculumClassifyVO curriculumClassifyVO) {
this.id = curriculumClassifyVO.getId();
this.name = curriculumClassifyVO.getName();
this.oneCourseId = curriculumClassifyVO.getOneCourseId();
this.twoCourseId = curriculumClassifyVO.getTwoCourseId();
this.classifyUrl = curriculumClassifyVO.getClassifyUrl();
this.classifyDesc = curriculumClassifyVO.getClassifyDesc();
}
public CurriculumClassifyVO buildCurriculumClassifyVO(){
return CurriculumClassifyVO.builder().id(id).name(name)
.oneCourseId(oneCourseId).twoCourseId(twoCourseId)
.classifyUrl(classifyUrl).classifyDesc(classifyDesc)
.createTime(createTime).updateTime(updateTime).build();
}
}
package com.mmc.csf.release.entity.curriculum; package com.mmc.csf.release.entity.curriculum;
import com.mmc.csf.release.flyer.vo.CurriculumInfoVO; import com.mmc.csf.release.flyer.vo.CurriculumInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -22,23 +23,51 @@ public class CurriculumInfoDO implements Serializable { ...@@ -22,23 +23,51 @@ public class CurriculumInfoDO implements Serializable {
private static final long serialVersionUID = 140348746605431718L; private static final long serialVersionUID = 140348746605431718L;
private Integer id; private Integer id;
/** /**
* 课程名称 * 1级课程分类ID
*/ */
private String curriculumName; private Integer oneCourseId;
/** /**
* 课程供应商(id),用户id * 2级课程分类ID
*/ */
private Integer supplierId; private Integer twoCourseId;
/** /**
* 课程价格 * 课程名称
*/ */
private BigDecimal curriculumPrice; private String curriculumName;
/** /**
* 课程简介 * 课程简介
*/ */
private String curriculumDesc; private String curriculumDesc;
/**
* 课程封面
*/
private String surfaceUrl;
/**
* 课程视频
*/
private String videoUrl;
/**
* 课程属性
*/
private Integer courseAttribute;
/**
* 课程所需金额
*/
private BigDecimal requireAmout;
/**
* 课程所需积分
*/
private Integer requireIntegral;
/**
* 课程是否热门 0:否 1:是
*/
private Integer isHot;
/**
* 课程详情
*/
private String detailContent;
/** /**
* 创建时间 * 创建时间
*/ */
...@@ -52,32 +81,30 @@ public class CurriculumInfoDO implements Serializable { ...@@ -52,32 +81,30 @@ public class CurriculumInfoDO implements Serializable {
*/ */
private Integer deleted; private Integer deleted;
private String videoUrl;
private String surfaceUrl;
private String detailContent;
/**
* 课程类型id
*/
private Integer categoriesId;
public CurriculumInfoDO(CurriculumInfoVO curriculumInfoVO) { public CurriculumInfoDO(CurriculumInfoVO curriculumInfoVO) {
this.id = curriculumInfoVO.getId(); this.id = curriculumInfoVO.getId();
this.oneCourseId = curriculumInfoVO.getOneCourseId();
this.twoCourseId = curriculumInfoVO.getTwoCourseId();
this.curriculumName = curriculumInfoVO.getCurriculumName(); this.curriculumName = curriculumInfoVO.getCurriculumName();
this.curriculumDesc = curriculumInfoVO.getCurriculumDesc(); this.curriculumDesc = curriculumInfoVO.getCurriculumDesc();
this.surfaceUrl = curriculumInfoVO.getSurfaceUrl(); this.surfaceUrl = curriculumInfoVO.getSurfaceUrl();
this.detailContent = curriculumInfoVO.getDetailContent();
this.videoUrl = curriculumInfoVO.getVideoUrl(); this.videoUrl = curriculumInfoVO.getVideoUrl();
this.categoriesId = curriculumInfoVO.getCategoriesId(); this.courseAttribute = curriculumInfoVO.getCourseAttribute();
this.requireAmout = curriculumInfoVO.getRequireAmout();
this.requireIntegral = curriculumInfoVO.getRequireIntegral();
this.isHot = curriculumInfoVO.getIsHot();
this.detailContent = curriculumInfoVO.getDetailContent();
} }
public CurriculumInfoVO buildCurriculumInfoVO(){ public CurriculumInfoVO buildCurriculumInfoVO(){
return CurriculumInfoVO.builder().id(id).curriculumDesc(curriculumDesc).price(curriculumPrice) return CurriculumInfoVO.builder().id(id).curriculumDesc(curriculumDesc)
.supplierName("浙江科比特创新科技有限公司").curriculumName(curriculumName) .curriculumName(curriculumName)
.videoUrl(videoUrl).surfaceUrl(this.surfaceUrl).detailContent(this.detailContent) .videoUrl(videoUrl).surfaceUrl(this.surfaceUrl).detailContent(this.detailContent)
.categoriesId(this.categoriesId).build(); .requireAmout(this.requireAmout).courseAttribute(courseAttribute)
.requireIntegral(this.requireIntegral).isHot(this.isHot)
.oneCourseId(this.oneCourseId).twoCourseId(this.twoCourseId)
.createTime(createTime).updateTime(updateTime).build();
} }
} }
......
package com.mmc.csf.release.entity.curriculum;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName curriculum_order
*/
@Data
public class CurriculumOrder implements Serializable {
/**
*
*/
private Integer id;
/**
* 订单编号
*/
private String orderNo;
/**
* 下单用户id
*/
private Integer userAccountId;
/**
* 订单总金额
*/
private BigDecimal orderTotalAmount;
/**
* 抵扣佣金金额
*/
private BigDecimal salaryAmount;
/**
* 抵扣云享金金额
*/
private BigDecimal cashAmount;
/**
* 微信支付
*/
private BigDecimal weChat;
/**
* 发布者微信支付订单
*/
private String wechatPayOrderNumber;
/**
* 生成订单时间(下单时间)
*/
private Date createTime;
/**
* 最近修改时间
*/
private Date updateTime;
/**
* 课程id
*/
private Integer curriculumInfoId;
/**
* 消耗多少积分
*/
private Integer jifenConsume;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.mmc.csf.release.entity.curriculum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author Admin
* @TableName curriculum_order
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CurriculumOrderDO implements Serializable {
/**
*
*/
@ApiModelProperty(value = "课程订单id")
private Integer id;
/**
* 订单编号
*/
@ApiModelProperty(value = "课程订单编号")
private String orderNo;
/**
* 下单用户id
*/
@ApiModelProperty(value = "购买用户的id")
private Integer userAccountId;
/**
* 订单总金额
*/
@ApiModelProperty(value = "订单总金额")
private BigDecimal orderTotalAmount;
/**
* 抵扣佣金金额
*/
@ApiModelProperty(value = "抵扣佣金金额")
private BigDecimal salaryAmount;
/**
* 抵扣云享金金额
*/
@ApiModelProperty(value = "抵扣云享金金额")
private BigDecimal cashAmount;
/**
* 微信支付金额
*/
@ApiModelProperty(value = "微信支付金额")
private BigDecimal weChat;
/**
* 发布者微信支付订单
*/
@ApiModelProperty(value = "发布者微信支付订单")
private String wechatPayOrderNumber;
/**
* 课程ID
*/
@ApiModelProperty(value = "课程ID")
private Integer curriculumInfoId;
/**
* 所需积分
*/
@ApiModelProperty(value = "所需积分")
private int jifenConsume;
private String curriculumName;
/**
* 课程简介
*/
private String curriculumDesc;
/**
* 课程封面
*/
private String surfaceUrl;
/**
* 课程视频
*/
private String videoUrl;
/**
* 课程所需金额
*/
private BigDecimal requireAmout;
/**
* 课程所需积分
*/
private Integer requireIntegral;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.mmc.csf.release.entity.curriculum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author Admin
* @date 2023/12/07
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CurriculumOrderQO implements Serializable {
private final static long serialVersionUID = 1L;
@ApiModelProperty(value = "页码", required = true,example = "1")
@NotNull(message = "页码不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true,example = "10")
@NotNull(message = "每页显示数不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageSize;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "课程id")
private Integer curriculumInfoId;
@ApiModelProperty(value = "用户id")
@JsonIgnore
private Integer userAccountId;
private Integer courseAttribute;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
...@@ -8,11 +8,13 @@ import com.mmc.csf.infomation.dto.UserBaseInfoDTO; ...@@ -8,11 +8,13 @@ import com.mmc.csf.infomation.dto.UserBaseInfoDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO; import com.mmc.csf.release.auth.qo.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO; import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.feign.hystrix.UserAppApiHystrix; import com.mmc.csf.release.feign.hystrix.UserAppApiHystrix;
import com.mmc.csf.release.flyer.vo.CurriculumOrderLogVO;
import com.mmc.csf.user.vo.ChangeUserPointVO; import com.mmc.csf.user.vo.ChangeUserPointVO;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
/** /**
...@@ -81,4 +83,10 @@ public interface UserAppApi { ...@@ -81,4 +83,10 @@ public interface UserAppApi {
@GetMapping("/userapp/user-account/feignGetUserBaseInfo") @GetMapping("/userapp/user-account/feignGetUserBaseInfo")
UserBaseInfoDTO feignGetUserBaseInfo(@RequestParam Integer userAccountId); 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);
@PostMapping("/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; ...@@ -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.BUserAccountQO;
import com.mmc.csf.release.auth.qo.UserAccountQO; import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.feign.UserAppApi; import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.flyer.vo.CurriculumOrderLogVO;
import com.mmc.csf.user.vo.ChangeUserPointVO; import com.mmc.csf.user.vo.ChangeUserPointVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
...@@ -68,5 +71,16 @@ public class UserAppApiHystrix implements UserAppApi { ...@@ -68,5 +71,16 @@ public class UserAppApiHystrix implements UserAppApi {
return null; 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;
}
} }
...@@ -11,7 +11,7 @@ import com.mmc.csf.release.forum.qo.DynamicQO; ...@@ -11,7 +11,7 @@ import com.mmc.csf.release.forum.qo.DynamicQO;
* @date 2023/6/19 10:47 概要: * @date 2023/6/19 10:47 概要:
*/ */
public interface BackstageForumService { public interface BackstageForumService {
PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request); PageResult listDynamic (DynamicQO dynamic, HttpServletRequest request);
ResultBody getDynamicAuditSum(); ResultBody getDynamicAuditSum();
ResultBody deleteDynamic(Integer dynamicId); ResultBody deleteDynamic(Integer dynamicId);
......
...@@ -2,10 +2,16 @@ package com.mmc.csf.release.service; ...@@ -2,10 +2,16 @@ package com.mmc.csf.release.service;
import com.mmc.csf.common.util.page.PageResult; import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody; 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.entity.curriculum.CurriculumOrderQO;
import com.mmc.csf.release.flyer.qo.CurriculumQo; 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.CurriculumInfoVO;
import com.mmc.csf.release.flyer.vo.CurriculumPayVO;
import com.mmc.csf.release.flyer.vo.RegistrationVO; import com.mmc.csf.release.flyer.vo.RegistrationVO;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
/** /**
...@@ -52,7 +58,7 @@ public interface FlyerTrainingService { ...@@ -52,7 +58,7 @@ public interface FlyerTrainingService {
*/ */
ResultBody licenseOrSkillQueryCurriculum(Integer type); ResultBody licenseOrSkillQueryCurriculum(Integer type);
ResultBody curriculumDetails(Integer id); ResultBody curriculumDetails(Integer id,Integer userId);
/** /**
* 添加课程 * 添加课程
...@@ -93,4 +99,68 @@ public interface FlyerTrainingService { ...@@ -93,4 +99,68 @@ public interface FlyerTrainingService {
int feignCountCurriculumInfo(Integer categoriesId); int feignCountCurriculumInfo(Integer categoriesId);
Integer getCurriculumCount(); Integer getCurriculumCount();
/**
* 添加课程分类
*
* @param curriculumClassify
*/
Integer addCurriculumClassify(CurriculumClassifyVO curriculumClassify);
/**
* 修改课程分类
*
* @param curriculumClassify
*/
Integer updateCurriculumClassify(CurriculumClassifyVO curriculumClassify);
/**
* 删除课程分类
*
* @param oneCourseId 1级课程分类
* @param twoCourseId 2级课程分类
*/
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, Integer accountId);
/**
* 分页查询订单列表
* @param param
* @return {@link List}<{@link CurriculumOrderDO}>
*/
ResultBody getCurriculumOrderList(CurriculumOrderQO param);
/**
* 删除订单
* @param id 删除对应订单的id
* @return {@link ResultBody}
*/
ResultBody deleteCurriculumOrderInfo(Integer id);
} }
...@@ -73,7 +73,39 @@ public class BackRequirementsServiceImpl implements BackRequirementsService { ...@@ -73,7 +73,39 @@ public class BackRequirementsServiceImpl implements BackRequirementsService {
.map(serviceOrderFormDTO -> { .map(serviceOrderFormDTO -> {
Integer id = serviceOrderFormDTO.getId(); Integer id = serviceOrderFormDTO.getId();
List<ServiceOrderFormDO> listSon = backRequirementsDao.getSonFromFatherRequireId(id); List<ServiceOrderFormDO> listSon = backRequirementsDao.getSonFromFatherRequireId(id);
List<ServiceOrderFormDTO> childrenList = listSon.stream().map(ServiceOrderFormDO::buildServiceOrderForm).collect(Collectors.toList()); //如果没有子订单 那就为总订单添加发单人和接单人信息
if(listSon == null || listSon.isEmpty()) {
//获取发单人信息
Integer userIdByRequireId = requirementsDao.getUserIdByRequireId(id);
UserBaseInfoDTO userBaseInfoDTO = userAppApi.feignGetUserBaseInfo(userIdByRequireId);
serviceOrderFormDTO.setOrderRelease(userBaseInfoDTO);
//获取接单人信息
Integer pilotUserIdByRequireId = requirementsDao.getPilotUserIdByRequireId(id);
if (pilotUserIdByRequireId == null) {
serviceOrderFormDTO.setOrderReceive(null);
}else {
UserBaseInfoDTO pilotUserBaseInfoDTO = userAppApi.feignGetUserBaseInfo(pilotUserIdByRequireId);
serviceOrderFormDTO.setOrderReceive(pilotUserBaseInfoDTO);
}
return serviceOrderFormDTO;
}
List<ServiceOrderFormDTO> childrenList = listSon.stream().map(ServiceOrderFormDO::buildServiceOrderForm).
map(serviceOrderFormDTO1 -> {
//获取发单人信息
Integer userIdByRequireId = requirementsDao.getUserIdByRequireId(serviceOrderFormDTO1.getId());
UserBaseInfoDTO userBaseInfoDTO = userAppApi.feignGetUserBaseInfo(userIdByRequireId);
serviceOrderFormDTO1.setOrderRelease(userBaseInfoDTO);
//获取接单人信息
Integer pilotUserIdByRequireId = requirementsDao.getPilotUserIdByRequireId(serviceOrderFormDTO1.getId());
if (pilotUserIdByRequireId == null) {
serviceOrderFormDTO1.setOrderReceive(null);
}else {
UserBaseInfoDTO pilotUserBaseInfoDTO = userAppApi.feignGetUserBaseInfo(pilotUserIdByRequireId);
serviceOrderFormDTO1.setOrderReceive(pilotUserBaseInfoDTO);
}
return serviceOrderFormDTO1;
}).
collect(Collectors.toList());
serviceOrderFormDTO.setChildrenRequire(childrenList); serviceOrderFormDTO.setChildrenRequire(childrenList);
return serviceOrderFormDTO; return serviceOrderFormDTO;
}) })
......
<?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.mmc.csf.release.dao.CurriculumOrderDao">
<sql id="Base_Column_List">
id,order_no,user_account_id,
order_total_amount,salary_amount,
cash_amount,we_chat,wechat_pay_order_number
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer">
select
<include refid="Base_Column_List"/>
from curriculum_order
where id = #{id,jdbcType=INTEGER}
</select>
<select id="getCountCurriculumOrder" resultType="java.lang.Integer">
select count(ci.id) from curriculum_order
left join curriculum_info ci on ci.id = curriculum_order.curriculum_info_id
where 1=1
<if test="orderNo!=null">
and order_no = #{orderNo}
</if>
<if test="curriculumInfoId != null">
and curriculum_info_id = #{curriculumInfoId}
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
</if>
<if test="courseAttribute != null">
and ci.course_attribute = #{courseAttribute}
</if>
</select>
<select id="selectOrderList" resultType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO">
select
co.id,order_no,user_account_id,
order_total_amount,salary_amount,
cash_amount,we_chat,wechat_pay_order_number,jifen_consume,curriculum_info_id,
ci.surface_url,
ci.video_url,
ci.curriculum_name,
ci.curriculum_desc,
ci.require_amout,
ci.require_integral,
ci.course_attribute
from curriculum_order co left join curriculum_info ci on ci.id = co.curriculum_info_id
where 1=1
<if test="orderNo!=null">
and order_no = #{orderNo}
</if>
<if test="curriculumInfoId != null">
and curriculum_info_id = #{curriculumInfoId}
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
<if test="courseAttribute != null">
and ci.course_attribute = #{courseAttribute}
</if>
</if>
order by co.create_time desc
limit #{pageNo},#{pageSize}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete
from curriculum_order
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" keyColumn="id" keyProperty="id"
parameterType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO" useGeneratedKeys="true">
insert into curriculum_order
( id, order_no, user_account_id
, order_total_amount, salary_amount
, cash_amount, we_chat, wechat_pay_order_number
, create_time, update_time)
values ( #{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{userAccountId,jdbcType=INTEGER}
, #{backUserId,jdbcType=INTEGER}, #{orderTotalAmount,jdbcType=DECIMAL}, #{salaryAmount,jdbcType=DECIMAL}
, #{cashAmount,jdbcType=DECIMAL}, #{weChat,jdbcType=DECIMAL}, #{wechatPayOrderNumber,jdbcType=VARCHAR}
, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id"
parameterType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO" useGeneratedKeys="true">
insert into curriculum_order
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="orderNo != null">order_no,</if>
<if test="userAccountId != null">user_account_id,</if>
<if test="orderTotalAmount != null">order_total_amount,</if>
<if test="salaryAmount != null">salary_amount,</if>
<if test="cashAmount != null">cash_amount,</if>
<if test="weChat != null">we_chat,</if>
<if test="wechatPayOrderNumber != null">wechat_pay_order_number,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id,jdbcType=INTEGER},</if>
<if test="orderNo != null">#{orderNo,jdbcType=VARCHAR},</if>
<if test="userAccountId != null">#{userAccountId,jdbcType=INTEGER},</if>
<if test="orderTotalAmount != null">#{orderTotalAmount,jdbcType=DECIMAL},</if>
<if test="salaryAmount != null">#{salaryAmount,jdbcType=DECIMAL},</if>
<if test="cashAmount != null">#{cashAmount,jdbcType=DECIMAL},</if>
<if test="weChat != null">#{weChat,jdbcType=DECIMAL},</if>
<if test="wechatPayOrderNumber != null">#{wechatPayOrderNumber,jdbcType=VARCHAR},</if>
<if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
<if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO">
update curriculum_order
<set>
<if test="orderNo != null">
order_no = #{orderNo,jdbcType=VARCHAR},
</if>
<if test="userAccountId != null">
user_account_id = #{userAccountId,jdbcType=INTEGER},
</if>
<if test="orderTotalAmount != null">
order_total_amount = #{orderTotalAmount,jdbcType=DECIMAL},
</if>
<if test="salaryAmount != null">
salary_amount = #{salaryAmount,jdbcType=DECIMAL},
</if>
<if test="cashAmount != null">
cash_amount = #{cashAmount,jdbcType=DECIMAL},
</if>
<if test="weChat != null">
we_chat = #{weChat,jdbcType=DECIMAL},
</if>
<if test="wechatPayOrderNumber != null">
wechat_pay_order_number = #{wechatPayOrderNumber,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumOrderDO">
update curriculum_order
set order_no = #{orderNo,jdbcType=VARCHAR},
user_account_id = #{userAccountId,jdbcType=INTEGER},
order_total_amount = #{orderTotalAmount,jdbcType=DECIMAL},
salary_amount = #{salaryAmount,jdbcType=DECIMAL},
cash_amount = #{cashAmount,jdbcType=DECIMAL},
we_chat = #{weChat,jdbcType=DECIMAL},
wechat_pay_order_number = #{wechatPayOrderNumber,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
...@@ -27,39 +27,80 @@ ...@@ -27,39 +27,80 @@
<insert id="addCurriculum" keyProperty="id" useGeneratedKeys="true" <insert id="addCurriculum" keyProperty="id" useGeneratedKeys="true"
parameterType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO"> parameterType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO">
INSERT INTO `curriculum_info`(`curriculum_name`, `supplier_id`, `curriculum_desc`, `drone_pilot_license_id`, INSERT INTO `curriculum_info`(`one_course_id`, `two_course_id`, `curriculum_name`, `curriculum_desc`,
`flight_skills`, `categories_id`, `surface_url`, `video_url`, `detail_content`) `surface_url`, `video_url`, `course_attribute`, `require_amout`, `require_integral`, `is_hot`, `detail_content`)
VALUES (#{curriculumName}, #{supplierId}, #{curriculumDesc}, #{dronePilotLicenseId}, #{flightSkills}, VALUES (#{oneCourseId}, #{twoCourseId}, #{curriculumName}, #{curriculumDesc}, #{surfaceUrl},
#{categoriesId}, #{surfaceUrl}, #{videoUrl}, #{detailContent}); #{videoUrl}, #{courseAttribute}, #{requireAmout}, #{requireIntegral}, #{isHot}, #{detailContent});
</insert>
<insert id="addCurriculumClassify" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO">
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
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="orderNo != null">order_no,</if>
<if test="userAccountId != null">user_account_id,</if>
<if test="orderTotalAmount != null">order_total_amount,</if>
<if test="salaryAmount != null">salary_amount,</if>
<if test="cashAmount != null">cash_amount,</if>
<if test="weChat != null">we_chat,</if>
<if test="wechatPayOrderNumber != null">wechat_pay_order_number,</if>
<if test="curriculumInfoId != null">curriculum_info_id,</if>
<if test="jifenConsume != null">jifen_consume,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id,jdbcType=INTEGER},</if>
<if test="orderNo != null">#{orderNo,jdbcType=VARCHAR},</if>
<if test="userAccountId != null">#{userAccountId,jdbcType=INTEGER},</if>
<if test="orderTotalAmount != null">#{orderTotalAmount,jdbcType=DECIMAL},</if>
<if test="salaryAmount != null">#{salaryAmount,jdbcType=DECIMAL},</if>
<if test="cashAmount != null">#{cashAmount,jdbcType=DECIMAL},</if>
<if test="weChat != null">#{weChat,jdbcType=DECIMAL},</if>
<if test="wechatPayOrderNumber != null">#{wechatPayOrderNumber,jdbcType=VARCHAR},</if>
<if test="curriculumInfoId != null">#{curriculumInfoId,jdbcType=VARCHAR},</if>
<if test="jifenConsume != null">#{jifenConsume,jdbcType=VARCHAR}</if>
</trim>
</insert> </insert>
<update id="updateCurriculum" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO"> <update id="updateCurriculum" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO">
UPDATE curriculum_info UPDATE curriculum_info
<set> <set>
<if test="oneCourseId != null">
one_course_id = #{oneCourseId},
</if>
<if test="twoCourseId != null">
two_course_id = #{twoCourseId},
</if>
<if test="curriculumName != null"> <if test="curriculumName != null">
curriculum_name = #{curriculumName}, curriculum_name = #{curriculumName},
</if> </if>
<if test="curriculumDesc != null"> <if test="curriculumDesc != null">
curriculum_desc = #{curriculumDesc}, curriculum_desc = #{curriculumDesc},
</if> </if>
<if test="dronePilotLicenseId != null">
drone_pilot_license_id = #{dronePilotLicenseId},
</if>
<if test="flightSkills != null">
flight_skills = #{flightSkills},
</if>
<if test="categoriesId != null">
categories_id = #{categoriesId},
</if>
<if test="surfaceUrl != null"> <if test="surfaceUrl != null">
surface_url = #{surfaceUrl}, surface_url = #{surfaceUrl},
</if> </if>
<if test="videoUrl != null"> <if test="videoUrl != null">
video_url = #{videoUrl}, video_url = #{videoUrl},
</if> </if>
<if test="detailContent "> <if test="courseAttribute != null">
course_attribute = #{courseAttribute},
</if>
<if test="requireAmout != null">
require_amout = #{requireAmout},
</if>
<if test="requireIntegral != null">
require_integral = #{requireIntegral},
</if>
<if test="isHot != null">
is_hot = #{isHot},
</if>
<if test="detailContent != null ">
detail_content = #{detailContent}, detail_content = #{detailContent},
</if> </if>
update_time = NOW()
</set> </set>
<where> <where>
id = #{id} id = #{id}
...@@ -71,6 +112,36 @@ ...@@ -71,6 +112,36 @@
set is_deleted = 1 set is_deleted = 1
where id = #{id} where id = #{id}
</update> </update>
<update id="updateCurriculumClassify" parameterType="com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO">
UPDATE course_classify
<set>
<if test="name != null">
name = #{name},
</if>
<if test="classifyUrl != null">
classify_url = #{classifyUrl},
</if>
<if test="classifyDesc != null">
classify_desc = #{classifyDesc},
</if>
update_time = NOW()
</set>
<where>
one_course_id = #{oneCourseId}
<if test="twoCourseId != null">
and two_course_id = #{twoCourseId}
</if>
</where>
</update>
<update id="removeCurriculumClassify">
UPDATE course_classify
<set>
is_deleted = 1
</set>
<where>
id = #{id}
</where>
</update>
<select id="selectAllLicenses" resultType="com.mmc.csf.release.flyer.vo.DronePilotLicenseVO"> <select id="selectAllLicenses" resultType="com.mmc.csf.release.flyer.vo.DronePilotLicenseVO">
select id, select id,
parent_id, parent_id,
...@@ -96,42 +167,39 @@ ...@@ -96,42 +167,39 @@
<if test="curriculumName != null"> <if test="curriculumName != null">
and ci.curriculum_name like CONCAT("%", #{curriculumName}, "%") and ci.curriculum_name like CONCAT("%", #{curriculumName}, "%")
</if> </if>
<if test="licenseId != null"> <if test="oneCourseId != null">
and ci.drone_pilot_license_id = #{licenseId} and ci.one_course_id = #{oneCourseId}
</if>
<if test="twoCourseId != null">
and ci.two_course_id = #{twoCourseId}
</if> </if>
<if test="flightSkillsId != null"> <if test="courseAttribute != null">
and ci.flight_skills = #{flightSkillsId} and ci.course_attribute = #{courseAttribute}
</if>
<if test="isHot != null">
and ci.is_hot = #{isHot}
</if> </if>
</where> </where>
</select> </select>
<select id="listPageCurriculumInfo" resultType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO"> <select id="listPageCurriculumInfo" resultType="com.mmc.csf.release.entity.curriculum.CurriculumInfoDO">
SELECT SELECT *
ci.id,
ci.curriculum_name,
ci.supplier_id,
ci.curriculum_price,
ci.curriculum_desc,
ci.is_free free,
ci.drone_pilot_license_id,
ci.flight_skills,
ci.detail_content,
ci.video_url,
ci.categories_id,
ci.surface_url
from curriculum_info ci from curriculum_info ci
<where> <where>
and ci.is_deleted = 0 and ci.is_deleted = 0
<if test="curriculumName != null"> <if test="curriculumName != null">
and ci.curriculum_name like CONCAT("%", #{curriculumName}, "%") and ci.curriculum_name like CONCAT("%", #{curriculumName}, "%")
</if> </if>
<if test="licenseId != null"> <if test="oneCourseId != null">
and drone_pilot_license_id = #{licenseId} and ci.one_course_id = #{oneCourseId}
</if>
<if test="twoCourseId != null">
and ci.two_course_id = #{twoCourseId}
</if> </if>
<if test="flightSkillsId != null"> <if test="courseAttribute != null">
and flight_skills = #{flightSkillsId} and ci.course_attribute = #{courseAttribute}
</if> </if>
<if test="categoriesId != null"> <if test="isHot != null">
and categories_id = #{categoriesId} and ci.is_hot = #{isHot}
</if> </if>
</where> </where>
order by ci.create_time desc order by ci.create_time desc
...@@ -204,4 +272,30 @@ ...@@ -204,4 +272,30 @@
from curriculum_info from curriculum_info
where is_deleted = 0 where is_deleted = 0
</select> </select>
<select id="countOneCourseClassify" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM course_classify
WHERE two_course_id IS NULL
</select>
<select id="countTwoCourseClassify" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM course_classify
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} and is_deleted = 0
</select>
<select id="selectCurriculumClassifyById"
resultType="com.mmc.csf.release.entity.curriculum.CurriculumClassifyDO">
select * from course_classify where id = #{id} and is_deleted = 0
</select>
<select id="selectCountCurriculumOrder" resultType="java.lang.Integer">
select count(id) from curriculum_order
where user_account_id = #{userId} and curriculum_info_id = #{id}
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论