From b3e956b96c64f3e5e9862380f87b74b98405adb2 Mon Sep 17 00:00:00 2001 From: DB <2502523450@qq.com> Date: Fri, 15 Dec 2023 09:16:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=A8=A1=E5=9D=97:=E4=BA=8B?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=A8=A1=E5=9D=97=EF=BC=9A1.=E7=BB=AD=E8=B4=B9?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=EF=BC=9B2.=E6=94=BE=E5=BF=83=E5=AD=A6?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EasyLearnOrderDetailController.java | 106 +++++++++ .../EasyLearnOrderExtendController.java | 106 +++++++++ .../controller/EasyLearnOrdreController.java | 106 +++++++++ .../business/entity/EasyLearnOrderDetail.java | 74 ++++++ .../business/entity/EasyLearnOrderExtend.java | 65 ++++++ .../business/entity/EasyLearnOrdre.java | 98 ++++++++ .../mapper/EasyLearnOrderDetailMapper.java | 14 ++ .../mapper/EasyLearnOrderExtendMapper.java | 14 ++ .../business/mapper/EasyLearnOrdreMapper.java | 14 ++ .../service/EasyLearnOrderDetailService.java | 14 ++ .../service/EasyLearnOrderExtendService.java | 14 ++ .../service/EasyLearnOrdreService.java | 14 ++ .../impl/EasyLearnOrderDetailServiceImpl.java | 18 ++ .../impl/EasyLearnOrderExtendServiceImpl.java | 18 ++ .../impl/EasyLearnOrdreServiceImpl.java | 18 ++ .../mapper/EasyLearnOrderDetailMapper.xml | 7 + .../mapper/EasyLearnOrderExtendMapper.xml | 7 + .../resources/mapper/EasyLearnOrdreMapper.xml | 7 + .../com/cpop/oam/web/CpopImportTests.java | 220 +++++++++++++++++- .../oam/business/bo/BusinessDisposeBo.java | 5 +- .../oam/business/bo/BusinessDistributeBo.java | 19 +- .../oam/business/bo/BusinessRemoveBo.java | 39 ++++ .../backstage/BusinessController.java | 14 ++ .../cpop/oam/business/entity/Business.java | 5 +- .../oam/business/service/BusinessService.java | 9 + .../service/impl/BusinessServiceImpl.java | 51 +++- .../oam/business/vo/BusinessInfoPageVo.java | 7 + .../cpop/oam/business/vo/BusinessPageVo.java | 8 +- .../system/business/bo/StoreRenewPageBo.java | 45 ++++ .../system/business/bo/StoreRenewXmlBo.java | 43 ++++ .../system/business/bo/StoreRunOffBo.java | 33 +++ .../controller/StoreSignController.java | 85 +++++++ .../system/business/dto/StoreRenewDto.java | 76 ++++++ .../cpop/system/business/entity/Store.java | 5 - .../system/business/entity/StoreRenew.java | 72 ++++++ .../system/business/entity/StoreSign.java | 75 ++++++ .../business/mapper/StoreRenewMapper.java | 14 ++ .../business/mapper/StoreSignMapper.java | 14 ++ .../business/service/StoreRenewService.java | 14 ++ .../business/service/StoreSignService.java | 48 ++++ .../service/impl/StoreRenewServiceImpl.java | 18 ++ .../service/impl/StoreServiceImpl.java | 5 +- .../service/impl/StoreSignServiceImpl.java | 138 +++++++++++ .../cpop/system/business/vo/StorePageVo.java | 10 +- .../system/business/vo/StoreRenewPageVo.java | 89 +++++++ .../resources/mapper/StoreRenewMapper.xml | 7 + .../main/resources/mapper/StoreSignMapper.xml | 7 + 47 files changed, 1848 insertions(+), 41 deletions(-) create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderDetailController.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderExtendController.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrdreController.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderDetail.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderExtend.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrdre.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderDetailMapper.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderExtendMapper.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrdreMapper.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderDetailService.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderExtendService.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrdreService.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderDetailServiceImpl.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderExtendServiceImpl.java create mode 100644 Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrdreServiceImpl.java create mode 100644 Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderDetailMapper.xml create mode 100644 Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderExtendMapper.xml create mode 100644 Cpop-Jambox/src/main/resources/mapper/EasyLearnOrdreMapper.xml create mode 100644 Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessRemoveBo.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewPageBo.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewXmlBo.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRunOffBo.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/controller/StoreSignController.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/dto/StoreRenewDto.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/entity/StoreRenew.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/entity/StoreSign.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreRenewMapper.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreSignMapper.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/service/StoreRenewService.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/service/StoreSignService.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreRenewServiceImpl.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreSignServiceImpl.java create mode 100644 Cpop-System/src/main/java/com/cpop/system/business/vo/StoreRenewPageVo.java create mode 100644 Cpop-System/src/main/resources/mapper/StoreRenewMapper.xml create mode 100644 Cpop-System/src/main/resources/mapper/StoreSignMapper.xml diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderDetailController.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderDetailController.java new file mode 100644 index 0000000..eabaa95 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderDetailController.java @@ -0,0 +1,106 @@ +package com.cpop.jambox.business.controller; + +import com.mybatisflex.core.paginate.Page; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import com.cpop.jambox.business.entity.EasyLearnOrderDetail; +import com.cpop.jambox.business.service.EasyLearnOrderDetailService; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.io.Serializable; +import java.util.List; + +/** + * 果酱-放心学订单详情表 控制层。 + * + * @author DB + * @since 2023-12-14 + */ +@RestController +@Api(tags = "果酱-放心学订单详情表接口") +@RequestMapping("/easyLearnOrderDetail") +public class EasyLearnOrderDetailController { + + @Autowired + private EasyLearnOrderDetailService easyLearnOrderDetailService; + + /** + * 添加果酱-放心学订单详情表。 + * + * @param easyLearnOrderDetail 果酱-放心学订单详情表 + * @return {@code true} 添加成功,{@code false} 添加失败 + */ + @PostMapping("/save") + @ApiOperation("保存果酱-放心学订单详情表") + public boolean save(@RequestBody @ApiParam("果酱-放心学订单详情表") EasyLearnOrderDetail easyLearnOrderDetail) { + return easyLearnOrderDetailService.save(easyLearnOrderDetail); + } + + /** + * 根据主键删除果酱-放心学订单详情表。 + * + * @param id 主键 + * @return {@code true} 删除成功,{@code false} 删除失败 + */ + @DeleteMapping("/remove/{id}") + @ApiOperation("根据主键果酱-放心学订单详情表") + public boolean remove(@PathVariable @ApiParam("果酱-放心学订单详情表主键") Serializable id) { + return easyLearnOrderDetailService.removeById(id); + } + + /** + * 根据主键更新果酱-放心学订单详情表。 + * + * @param easyLearnOrderDetail 果酱-放心学订单详情表 + * @return {@code true} 更新成功,{@code false} 更新失败 + */ + @PutMapping("/update") + @ApiOperation("根据主键更新果酱-放心学订单详情表") + public boolean update(@RequestBody @ApiParam("果酱-放心学订单详情表主键") EasyLearnOrderDetail easyLearnOrderDetail) { + return easyLearnOrderDetailService.updateById(easyLearnOrderDetail); + } + + /** + * 查询所有果酱-放心学订单详情表。 + * + * @return 所有数据 + */ + @GetMapping("/list") + @ApiOperation("查询所有果酱-放心学订单详情表") + public List list() { + return easyLearnOrderDetailService.list(); + } + + /** + * 根据果酱-放心学订单详情表主键获取详细信息。 + * + * @param id 果酱-放心学订单详情表主键 + * @return 果酱-放心学订单详情表详情 + */ + @GetMapping("/getInfo/{id}") + @ApiOperation("根据主键获取果酱-放心学订单详情表") + public EasyLearnOrderDetail getInfo(@PathVariable @ApiParam("果酱-放心学订单详情表主键") Serializable id) { + return easyLearnOrderDetailService.getById(id); + } + + /** + * 分页查询果酱-放心学订单详情表。 + * + * @param page 分页对象 + * @return 分页对象 + */ + @GetMapping("/page") + @ApiOperation("分页查询果酱-放心学订单详情表") + public Page page(@ApiParam("分页信息") Page page) { + return easyLearnOrderDetailService.page(page); + } + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderExtendController.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderExtendController.java new file mode 100644 index 0000000..675cf39 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrderExtendController.java @@ -0,0 +1,106 @@ +package com.cpop.jambox.business.controller; + +import com.mybatisflex.core.paginate.Page; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import com.cpop.jambox.business.entity.EasyLearnOrderExtend; +import com.cpop.jambox.business.service.EasyLearnOrderExtendService; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.io.Serializable; +import java.util.List; + +/** + * 果酱-放心学-订单拓展 控制层。 + * + * @author DB + * @since 2023-12-14 + */ +@RestController +@Api(tags = "果酱-放心学-订单拓展接口") +@RequestMapping("/easyLearnOrderExtend") +public class EasyLearnOrderExtendController { + + @Autowired + private EasyLearnOrderExtendService easyLearnOrderExtendService; + + /** + * 添加果酱-放心学-订单拓展。 + * + * @param easyLearnOrderExtend 果酱-放心学-订单拓展 + * @return {@code true} 添加成功,{@code false} 添加失败 + */ + @PostMapping("/save") + @ApiOperation("保存果酱-放心学-订单拓展") + public boolean save(@RequestBody @ApiParam("果酱-放心学-订单拓展") EasyLearnOrderExtend easyLearnOrderExtend) { + return easyLearnOrderExtendService.save(easyLearnOrderExtend); + } + + /** + * 根据主键删除果酱-放心学-订单拓展。 + * + * @param id 主键 + * @return {@code true} 删除成功,{@code false} 删除失败 + */ + @DeleteMapping("/remove/{id}") + @ApiOperation("根据主键果酱-放心学-订单拓展") + public boolean remove(@PathVariable @ApiParam("果酱-放心学-订单拓展主键") Serializable id) { + return easyLearnOrderExtendService.removeById(id); + } + + /** + * 根据主键更新果酱-放心学-订单拓展。 + * + * @param easyLearnOrderExtend 果酱-放心学-订单拓展 + * @return {@code true} 更新成功,{@code false} 更新失败 + */ + @PutMapping("/update") + @ApiOperation("根据主键更新果酱-放心学-订单拓展") + public boolean update(@RequestBody @ApiParam("果酱-放心学-订单拓展主键") EasyLearnOrderExtend easyLearnOrderExtend) { + return easyLearnOrderExtendService.updateById(easyLearnOrderExtend); + } + + /** + * 查询所有果酱-放心学-订单拓展。 + * + * @return 所有数据 + */ + @GetMapping("/list") + @ApiOperation("查询所有果酱-放心学-订单拓展") + public List list() { + return easyLearnOrderExtendService.list(); + } + + /** + * 根据果酱-放心学-订单拓展主键获取详细信息。 + * + * @param id 果酱-放心学-订单拓展主键 + * @return 果酱-放心学-订单拓展详情 + */ + @GetMapping("/getInfo/{id}") + @ApiOperation("根据主键获取果酱-放心学-订单拓展") + public EasyLearnOrderExtend getInfo(@PathVariable @ApiParam("果酱-放心学-订单拓展主键") Serializable id) { + return easyLearnOrderExtendService.getById(id); + } + + /** + * 分页查询果酱-放心学-订单拓展。 + * + * @param page 分页对象 + * @return 分页对象 + */ + @GetMapping("/page") + @ApiOperation("分页查询果酱-放心学-订单拓展") + public Page page(@ApiParam("分页信息") Page page) { + return easyLearnOrderExtendService.page(page); + } + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrdreController.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrdreController.java new file mode 100644 index 0000000..5aa24d1 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/controller/EasyLearnOrdreController.java @@ -0,0 +1,106 @@ +package com.cpop.jambox.business.controller; + +import com.mybatisflex.core.paginate.Page; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import com.cpop.jambox.business.entity.EasyLearnOrdre; +import com.cpop.jambox.business.service.EasyLearnOrdreService; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.io.Serializable; +import java.util.List; + +/** + * 果酱-放心学订单表 控制层。 + * + * @author DB + * @since 2023-12-14 + */ +@RestController +@Api(tags = "果酱-放心学订单表接口") +@RequestMapping("/easyLearnOrdre") +public class EasyLearnOrdreController { + + @Autowired + private EasyLearnOrdreService easyLearnOrdreService; + + /** + * 添加果酱-放心学订单表。 + * + * @param easyLearnOrdre 果酱-放心学订单表 + * @return {@code true} 添加成功,{@code false} 添加失败 + */ + @PostMapping("/save") + @ApiOperation("保存果酱-放心学订单表") + public boolean save(@RequestBody @ApiParam("果酱-放心学订单表") EasyLearnOrdre easyLearnOrdre) { + return easyLearnOrdreService.save(easyLearnOrdre); + } + + /** + * 根据主键删除果酱-放心学订单表。 + * + * @param id 主键 + * @return {@code true} 删除成功,{@code false} 删除失败 + */ + @DeleteMapping("/remove/{id}") + @ApiOperation("根据主键果酱-放心学订单表") + public boolean remove(@PathVariable @ApiParam("果酱-放心学订单表主键") Serializable id) { + return easyLearnOrdreService.removeById(id); + } + + /** + * 根据主键更新果酱-放心学订单表。 + * + * @param easyLearnOrdre 果酱-放心学订单表 + * @return {@code true} 更新成功,{@code false} 更新失败 + */ + @PutMapping("/update") + @ApiOperation("根据主键更新果酱-放心学订单表") + public boolean update(@RequestBody @ApiParam("果酱-放心学订单表主键") EasyLearnOrdre easyLearnOrdre) { + return easyLearnOrdreService.updateById(easyLearnOrdre); + } + + /** + * 查询所有果酱-放心学订单表。 + * + * @return 所有数据 + */ + @GetMapping("/list") + @ApiOperation("查询所有果酱-放心学订单表") + public List list() { + return easyLearnOrdreService.list(); + } + + /** + * 根据果酱-放心学订单表主键获取详细信息。 + * + * @param id 果酱-放心学订单表主键 + * @return 果酱-放心学订单表详情 + */ + @GetMapping("/getInfo/{id}") + @ApiOperation("根据主键获取果酱-放心学订单表") + public EasyLearnOrdre getInfo(@PathVariable @ApiParam("果酱-放心学订单表主键") Serializable id) { + return easyLearnOrdreService.getById(id); + } + + /** + * 分页查询果酱-放心学订单表。 + * + * @param page 分页对象 + * @return 分页对象 + */ + @GetMapping("/page") + @ApiOperation("分页查询果酱-放心学订单表") + public Page page(@ApiParam("分页信息") Page page) { + return easyLearnOrdreService.page(page); + } + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderDetail.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderDetail.java new file mode 100644 index 0000000..25f0ed8 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderDetail.java @@ -0,0 +1,74 @@ +package com.cpop.jambox.business.entity; + +import com.cpop.core.base.entity.BaseEntity; +import com.cpop.core.base.entity.BaseInsertListener; +import com.cpop.core.base.entity.BaseUpdateListener; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 果酱-放心学订单详情表 实体类。 + * + * @author DB + * @since 2023-12-14 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@Table(value = "cp_j_easy_learn_order_detail", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false) +public class EasyLearnOrderDetail extends BaseEntity implements Serializable { + + /** + * 主键 + */ + @Id + private String id; + + /** + * 放心学订单id + */ + @Id + private String orderId; + + /** + * 外部订单号 + */ + private String outOrderNo; + + /** + * 期号 + */ + private Integer periodNo; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 详情描述 + */ + private String detailDesc; + + + + + + /** + * 逻辑删除(0否1是) + */ + @Column(isLogicDelete = true) + private Boolean isDelete; + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderExtend.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderExtend.java new file mode 100644 index 0000000..abf3ac5 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrderExtend.java @@ -0,0 +1,65 @@ +package com.cpop.jambox.business.entity; + +import com.cpop.core.base.entity.BaseEntity; +import com.cpop.core.base.entity.BaseInsertListener; +import com.cpop.core.base.entity.BaseUpdateListener; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Date; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 果酱-放心学-订单拓展 实体类。 + * + * @author DB + * @since 2023-12-14 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@Table(value = "cp_j_easy_learn_order_extend", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false) +public class EasyLearnOrderExtend extends BaseEntity implements Serializable { + + /** + * 放心学订单id + */ + @Id + private String orderId; + + /** + * 期数 + */ + private Integer periodNumber; + + /** + * 下期还款日 + */ + private Date nextRepaymentDate; + + /** + * 下期还款金额 + */ + private BigDecimal nextRepaymentAmount; + + /** + * 子商户id + */ + private String subMchId; + + /** + * 逻辑删除(0否1是) + */ + @Column(isLogicDelete = true) + private Boolean isDelete; + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrdre.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrdre.java new file mode 100644 index 0000000..5dc7c0b --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/entity/EasyLearnOrdre.java @@ -0,0 +1,98 @@ +package com.cpop.jambox.business.entity; + +import com.cpop.core.base.entity.BaseEntity; +import com.cpop.core.base.entity.BaseInsertListener; +import com.cpop.core.base.entity.BaseUpdateListener; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 果酱-放心学订单表 实体类。 + * + * @author DB + * @since 2023-12-14 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@Table(value = "cp_j_easy_learn_ordre", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false) +public class EasyLearnOrdre extends BaseEntity implements Serializable { + + /** + * 主键 + */ + @Id + private String id; + + /** + * 外部订单号 + */ + private String outOrderNo; + + /** + * 品牌id + */ + private String brandId; + + /** + * 校区id + */ + private String storeId; + + /** + * 客户名 + */ + private String customerName; + + /** + * 客户电话 + */ + private String customerPhone; + + /** + * 产品/课卡id + */ + private String productId; + + /** + * 总金额 + */ + private BigDecimal totalAmount; + + /** + * 总支付金额 + */ + private BigDecimal totalPayAmount; + + /** + * 员工id + */ + private String staffId; + + /** + * 订单类型(0:先学后付;1:月付;2:微信支付;3:数币支付;4:机构会员) + */ + private Integer orderType; + + + + + + /** + * 逻辑删除(0否1是) + */ + @Column(isLogicDelete = true) + private Boolean isDelete; + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderDetailMapper.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderDetailMapper.java new file mode 100644 index 0000000..04774e1 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderDetailMapper.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cpop.jambox.business.entity.EasyLearnOrderDetail; + +/** + * 果酱-放心学订单详情表 映射层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrderDetailMapper extends BaseMapper { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderExtendMapper.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderExtendMapper.java new file mode 100644 index 0000000..ed84eba --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrderExtendMapper.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cpop.jambox.business.entity.EasyLearnOrderExtend; + +/** + * 果酱-放心学-订单拓展 映射层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrderExtendMapper extends BaseMapper { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrdreMapper.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrdreMapper.java new file mode 100644 index 0000000..25830dc --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/mapper/EasyLearnOrdreMapper.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cpop.jambox.business.entity.EasyLearnOrdre; + +/** + * 果酱-放心学订单表 映射层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrdreMapper extends BaseMapper { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderDetailService.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderDetailService.java new file mode 100644 index 0000000..46fad70 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderDetailService.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.service; + +import com.mybatisflex.core.service.IService; +import com.cpop.jambox.business.entity.EasyLearnOrderDetail; + +/** + * 果酱-放心学订单详情表 服务层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrderDetailService extends IService { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderExtendService.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderExtendService.java new file mode 100644 index 0000000..f8cde82 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrderExtendService.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.service; + +import com.mybatisflex.core.service.IService; +import com.cpop.jambox.business.entity.EasyLearnOrderExtend; + +/** + * 果酱-放心学-订单拓展 服务层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrderExtendService extends IService { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrdreService.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrdreService.java new file mode 100644 index 0000000..c242de8 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/EasyLearnOrdreService.java @@ -0,0 +1,14 @@ +package com.cpop.jambox.business.service; + +import com.mybatisflex.core.service.IService; +import com.cpop.jambox.business.entity.EasyLearnOrdre; + +/** + * 果酱-放心学订单表 服务层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface EasyLearnOrdreService extends IService { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderDetailServiceImpl.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderDetailServiceImpl.java new file mode 100644 index 0000000..f996626 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderDetailServiceImpl.java @@ -0,0 +1,18 @@ +package com.cpop.jambox.business.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.cpop.jambox.business.entity.EasyLearnOrderDetail; +import com.cpop.jambox.business.mapper.EasyLearnOrderDetailMapper; +import com.cpop.jambox.business.service.EasyLearnOrderDetailService; +import org.springframework.stereotype.Service; + +/** + * 果酱-放心学订单详情表 服务层实现。 + * + * @author DB + * @since 2023-12-14 + */ +@Service("easyLearnOrderDetailService") +public class EasyLearnOrderDetailServiceImpl extends ServiceImpl implements EasyLearnOrderDetailService { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderExtendServiceImpl.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderExtendServiceImpl.java new file mode 100644 index 0000000..219b80d --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrderExtendServiceImpl.java @@ -0,0 +1,18 @@ +package com.cpop.jambox.business.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.cpop.jambox.business.entity.EasyLearnOrderExtend; +import com.cpop.jambox.business.mapper.EasyLearnOrderExtendMapper; +import com.cpop.jambox.business.service.EasyLearnOrderExtendService; +import org.springframework.stereotype.Service; + +/** + * 果酱-放心学-订单拓展 服务层实现。 + * + * @author DB + * @since 2023-12-14 + */ +@Service("easyLearnOrderExtendService") +public class EasyLearnOrderExtendServiceImpl extends ServiceImpl implements EasyLearnOrderExtendService { + +} diff --git a/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrdreServiceImpl.java b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrdreServiceImpl.java new file mode 100644 index 0000000..f9dbf14 --- /dev/null +++ b/Cpop-Jambox/src/main/java/com/cpop/jambox/business/service/impl/EasyLearnOrdreServiceImpl.java @@ -0,0 +1,18 @@ +package com.cpop.jambox.business.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.cpop.jambox.business.entity.EasyLearnOrdre; +import com.cpop.jambox.business.mapper.EasyLearnOrdreMapper; +import com.cpop.jambox.business.service.EasyLearnOrdreService; +import org.springframework.stereotype.Service; + +/** + * 果酱-放心学订单表 服务层实现。 + * + * @author DB + * @since 2023-12-14 + */ +@Service("easyLearnOrdreService") +public class EasyLearnOrdreServiceImpl extends ServiceImpl implements EasyLearnOrdreService { + +} diff --git a/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderDetailMapper.xml b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderDetailMapper.xml new file mode 100644 index 0000000..9c5f5d2 --- /dev/null +++ b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderExtendMapper.xml b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderExtendMapper.xml new file mode 100644 index 0000000..5223f36 --- /dev/null +++ b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrderExtendMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrdreMapper.xml b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrdreMapper.xml new file mode 100644 index 0000000..4e83a73 --- /dev/null +++ b/Cpop-Jambox/src/main/resources/mapper/EasyLearnOrdreMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/CpopImportTests.java b/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/CpopImportTests.java index 74a6fc0..c8a0773 100644 --- a/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/CpopImportTests.java +++ b/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/CpopImportTests.java @@ -2,35 +2,38 @@ package com.cpop.oam.web; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import com.cpop.common.utils.StringUtils; import com.cpop.common.utils.bean.BeanUtils; import com.cpop.core.base.enums.SourceType; import com.cpop.core.utils.SpringUtils; import com.cpop.jambox.business.entity.BrandExtend; +import com.cpop.jambox.business.entity.EasyLearnOrdre; import com.cpop.jambox.business.entity.StoreExtend; import com.cpop.jambox.business.service.BrandExtendService; +import com.cpop.jambox.business.service.EasyLearnOrdreService; import com.cpop.jambox.business.service.StoreExtendService; import com.cpop.oam.business.entity.BrandManager; import com.cpop.oam.business.entity.BrandManagerStore; import com.cpop.oam.business.service.BrandManagerService; import com.cpop.oam.business.service.BrandManagerStoreService; -import com.cpop.system.business.entity.Brand; -import com.cpop.system.business.entity.Store; -import com.cpop.system.business.entity.StoreLicense; +import com.cpop.system.business.entity.*; import com.cpop.system.business.mapper.StoreMapper; -import com.cpop.system.business.service.BrandService; -import com.cpop.system.business.service.StoreLicenseService; -import com.cpop.system.business.service.StoreService; +import com.cpop.system.business.service.*; import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.core.FlexGlobalConfig; import com.mybatisflex.core.datasource.DataSourceKey; +import com.mybatisflex.core.datasource.FlexDataSource; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.row.*; +import com.zaxxer.hikari.HikariDataSource; import lombok.Data; import lombok.Value; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; @@ -52,6 +55,7 @@ import static com.cpop.system.business.entity.table.StoreTableDef.STORE; */ @Slf4j @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@ActiveProfiles(profiles = {"prod", "core"}) public class CpopImportTests { /** @@ -151,6 +155,7 @@ public class CpopImportTests { .select("tmi.charge_name as personCharge") .select("tmi.charge_phone as phone") .select("tmi.address as storeAddr") + .select("tmi.test as isTest") .select("ifnull(date_format(tsm.end_time,'%Y-%m-%d'),null) as expireDate") .select("if(tmi.clue_id is null,0,1) as haveCounselor") .select("if(of.activation is null,0,of.activation) as haveActive") @@ -234,7 +239,7 @@ public class CpopImportTests { List storeCloudIds; try { DataSourceKey.use("jambox"); - List rowList = DbChain.table("t_mechanism_info").select("store_id").where("test = 1").list(); + List rowList = DbChain.table("t_mechanism_info").select("store_id").where("test = 0").and("deleted = 1").list(); storeCloudIds = RowUtil.toEntityList(rowList, String.class); //批量修改 } finally { @@ -243,7 +248,7 @@ public class CpopImportTests { if (storeCloudIds != null) { Set storeSet = SpringUtils.getBean(StoreExtendService.class).queryChain().where(STORE_EXTEND.STORE_CLOUD_ID.in(storeCloudIds)).list() .stream().map(StoreExtend::getId).collect(Collectors.toSet()); - SpringUtils.getBean(StoreService.class).updateChain().set(STORE.IS_TEST,true).where(STORE.ID.in(storeSet)).update(); + SpringUtils.getBean(StoreService.class).updateChain().set(STORE.IS_TEST,false).where(STORE.ID.in(storeSet)).update(); } } @@ -279,6 +284,205 @@ public class CpopImportTests { SpringUtils.getBean(StoreLicenseService.class).saveBatch(licenseList); } + /** + * 批量修改校区创建时间 + * @author DB + * @since 2023/12/13 + */ + @Test + public void batchUpdateStoreCreateTime() { + List rowList; + try { + DataSourceKey.use("jambox"); + rowList = DbChain.table("t_mechanism_info").select("store_id as storeCloudId", "creation_time as createTime") + .and("deleted = 1") + .list(); + } finally { + DataSourceKey.clear(); + } + //获取所有校区数据 + StoreExtendService storeExtendService = SpringUtils.getBean(StoreExtendService.class); + Map storeExtendMap = storeExtendService.list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId)); + rowList.forEach(item -> { + item.set("id", storeExtendMap.get(item.getString("storeCloudId"))); + }); + List storeList = RowUtil.toEntityList(rowList, Store.class).stream().filter(item -> item.getId() != null).collect(Collectors.toList()); + SpringUtils.getBean(StoreService.class).updateBatch(storeList); + } + + /** + * 导入校区签约数据 + * @author DB + * @since 2023/12/13 + */ + @Test + public void importStoreSignData() { + List rowList; + try { + DataSourceKey.use("jambox"); + rowList = DbChain.table("t_mechanism_info") + .select("tmi.store_id as storeCloudId","tmi.clue_id") + .select("date_format(tsm.end_time,'%Y-%m-%d') as expireDate") + .from("t_mechanism_info").as("tmi") + .leftJoin("t_signContract_mechanism").as("tsm").on("tsm.store_id = tmi.store_id") + .and("tmi.deleted = 1") + .list(); + } finally { + DataSourceKey.clear(); + } + //获取校区 + Map storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId)); + rowList.forEach(item->{ + item.set("storeId",storeMap.get(item.getString("storeCloudId"))); + }); + List entityList = RowUtil.toEntityList(rowList, StoreSign.class); + Set filterStoreList = entityList.stream().filter(item -> item.getStoreId() != null && item.getExpireDate() != null).collect(Collectors.toSet()); + SpringUtils.getBean(StoreSignService.class).saveBatch(filterStoreList); + } + + /** + * 导入校区续费 + * @author DB + * @since 2023/12/14 + */ + @Test + public void importStoreRenew() { + List rowList; + try { + DataSourceKey.use("jambox"); + rowList = DbChain.table("OAM_clue_renew") + .select("tmi.store_id as storeCloudId") + .select("ocr.remarks as renewDesc","ocr.price as renewAmount","date_format(ocr.creation_time,'%Y-%m-%d') as renewDate") + .from("OAM_clue_renew").as("ocr") + .leftJoin("t_mechanism_info").as("tmi").on("tmi.mechanism_id = ocr.mechanism_id") + .list(); + } finally { + DataSourceKey.clear(); + } + + getTestDynamicDataSource(); + try { + DataSourceKey.use("dev"); + //获取校区 + Map storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId)); + rowList.forEach(item->{ + item.set("storeId",storeMap.get(item.getString("storeCloudId"))); + }); + List entityList = RowUtil.toEntityList(rowList, StoreRenew.class); + Set filterStoreList = entityList.stream().filter(item -> item.getStoreId() != null ).collect(Collectors.toSet()); + SpringUtils.getBean(StoreRenewService.class).saveBatch(filterStoreList); + } finally { + DataSourceKey.clear(); + } + } + + /** + * 导入旧数币订单数据 + * @author DB + * @since 2023/12/14 + */ + @Test + public void importOldSudaOrderData() { + List rowList; + try { + //数币订单 + DataSourceKey.use("jambox"); + rowList = DbChain.table("j_commodity_ticket") + .select("tbi.brand_id as brandCloudId","jct.store_id as storeCloudId","jct.wx_order_id as outOrderNo") + .select("jct.name as customerName","jct.phone as customerPhone") + .select("jct.price as totalAmount","jct.price as totalPayAmount") + .from("j_commodity_ticket").as("jct") + .leftJoin("t_brand_info").as("tbi").on("tbi.id = jct.brand_id") + .where("jct.deleted = 1") + .and("jct.pay_status = 'PAY'") + .and("jct.is_suda = 1") + .list(); + } finally { + DataSourceKey.clear(); + } + getTestDynamicDataSource(); + try { + //获取校区 + Map storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId)); + Map brandMap = SpringUtils.getBean(BrandExtendService.class).list().stream().collect(Collectors.toMap(BrandExtend::getBrandCloudId, BrandExtend::getBrandId)); + rowList.forEach(item->{ + item.set("orderType",3); + item.set("brandId",brandMap.get(item.getString("brandCloudId"))); + item.set("storeId",storeMap.get(item.getString("storeCloudId"))); + }); + DataSourceKey.use("dev"); + List entityList = RowUtil.toEntityList(rowList, EasyLearnOrdre.class); + SpringUtils.getBean(EasyLearnOrdreService.class).saveBatch(entityList); + }finally { + DataSourceKey.clear(); + } + } + + /** + * 导入旧微信支付数据 + * @author DB + * @since 2023/12/14 + */ + @Test + public void importOldWxPayOrderData() { + List rowList; + try { + //数币订单 + DataSourceKey.use("jambox"); + rowList = DbChain.table("j_commodity_ticket") + .select("tbi.brand_id as brandCloudId","jct.store_id as storeCloudId","jct.wx_order_id as outOrderNo") + .select("jct.name as customerName","jct.phone as customerPhone") + .select("jct.price as totalAmount","jct.price as totalPayAmount") + .select("jwpp.is_month as isMonth","jwpp.class_hour as periodNumber","jwpp.sub_merch_id as subMchId") + .from("j_commodity_ticket").as("jct") + .leftJoin("t_brand_info").as("tbi").on("tbi.id = jct.brand_id") + .leftJoin("j_wechat_pay_plan").as("jwpp").on("jwpp.template_id = jct.commodity_id") + .where("jct.deleted = 1") + .and("jct.pay_status = 'PAY'") + .and("jct.ticket_type = 1") + .list(); + } finally { + DataSourceKey.clear(); + } + System.out.println(JSON.toJSONString(rowList)); + /*getTestDynamicDataSource(); + try { + //获取校区 + Map storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId)); + Map brandMap = SpringUtils.getBean(BrandExtendService.class).list().stream().collect(Collectors.toMap(BrandExtend::getBrandCloudId, BrandExtend::getBrandId)); + rowList.forEach(item->{ + item.set("orderType",3); + item.set("brandId",brandMap.get(item.getString("brandCloudId"))); + item.set("storeId",storeMap.get(item.getString("storeCloudId"))); + }); + DataSourceKey.use("dev"); + List entityList = RowUtil.toEntityList(rowList, EasyLearnOrdre.class); + SpringUtils.getBean(EasyLearnOrdreService.class).saveBatch(entityList); + }finally { + DataSourceKey.clear(); + }*/ + } + + private static final String URL = "jdbc:mysql://localhost:3306/cpop_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"; + /** + * 数据库用户名 + */ + private static final String USERNAME = "root"; + /** + * 数据库密码 + */ + private static final String PASSWORD = "root"; + + private void getTestDynamicDataSource() { + FlexDataSource flexDataSource = FlexGlobalConfig.getDefaultConfig().getDataSource(); + //新的数据源 + HikariDataSource dataSource = new HikariDataSource(); + dataSource.setJdbcUrl(URL); + dataSource.setUsername(USERNAME); + dataSource.setPassword(PASSWORD); + flexDataSource.addDataSource("dev", dataSource); + } + @Data private class JsonBrandManager implements Serializable { diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDisposeBo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDisposeBo.java index 41d906f..5ecf574 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDisposeBo.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDisposeBo.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; +import javax.validation.constraints.NotBlank; + /** * @author DB * @version 1.0.0 @@ -39,6 +41,7 @@ public class BusinessDisposeBo { /** * 事务id */ - @ApiModelProperty(value = "事务id") + @NotBlank(message = "不能为空") + @ApiModelProperty(value = "事务id", required = true) private String businessId; } diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDistributeBo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDistributeBo.java index fc0c2de..0ed582a 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDistributeBo.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessDistributeBo.java @@ -1,12 +1,15 @@ package com.cpop.oam.business.bo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.util.List; @@ -47,9 +50,9 @@ public class BusinessDistributeBo { /** * 到期时间 */ - @NotNull(message = "到期时间不能为空") - @ApiModelProperty(value = "到期时间") - private LocalDateTime endTime; + @NotEmpty(message = "开始结束时间不能为空") + @ApiModelProperty(value = "开始结束") + private List startAndEnd; /** * 备注 */ @@ -60,15 +63,9 @@ public class BusinessDistributeBo { */ @ApiModelProperty(value = "签约列表") private List sign; - /** - * 开始时间 - */ - @NotNull(message = "开始时间不能为空") - @ApiModelProperty(value = "开始时间") - private LocalDateTime startTime; @Data - public class ButtJoint { + public static class ButtJoint { /** * 文档地址 */ @@ -82,7 +79,7 @@ public class BusinessDistributeBo { } @Data - public class Sign { + public static class Sign { /** * 接收员工id */ diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessRemoveBo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessRemoveBo.java new file mode 100644 index 0000000..af26d09 --- /dev/null +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/bo/BusinessRemoveBo.java @@ -0,0 +1,39 @@ +package com.cpop.oam.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 11:21 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "BusinessRemoveBo对象",description = "事务删除对象") +public class BusinessRemoveBo { + + /** + * 事务详情id + */ + @ApiModelProperty(value = "事务详情id") + private String id; + + /** + * 校区id + */ + @NotBlank(message = "校区id不能为空") + @ApiModelProperty(value = "校区id",required = true) + private String storeId; + + /** + * 事务id + */ + @NotBlank(message = "事务id不能为空") + @ApiModelProperty(value = "事务id",required = true) + private String businessId; +} diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/controller/backstage/BusinessController.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/controller/backstage/BusinessController.java index 1925afe..6e062db 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/controller/backstage/BusinessController.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/controller/backstage/BusinessController.java @@ -6,6 +6,7 @@ import com.cpop.core.utils.SpringUtils; import com.cpop.oam.business.bo.BusinessDisposeBo; import com.cpop.oam.business.bo.BusinessDistributeBo; import com.cpop.oam.business.bo.BusinessInfoPageBo; +import com.cpop.oam.business.bo.BusinessRemoveBo; import com.cpop.oam.business.dto.BusinessDistributeDto; import com.cpop.oam.business.dto.DataImportDto; import com.cpop.oam.business.entity.Staff; @@ -147,4 +148,17 @@ public class BusinessController { return R.ok(); } + /** + * 事务详情删除 + * @author DB + * @since 2023/12/14 + * @return R + */ + @DeleteMapping("/businessRemove") + @ApiOperation("事务详情删除") + public R businessRemove(@Validated @RequestBody BusinessRemoveBo bo) { + businessService.businessRemove(bo); + return R.ok(); + } + } diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/entity/Business.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/entity/Business.java index 6fc2f04..b34694c 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/entity/Business.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/entity/Business.java @@ -7,6 +7,7 @@ import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.Table; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalDateTime; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -52,12 +53,12 @@ public class Business extends BaseEntity implements Serializable { /** * 开始时间 */ - private LocalDateTime startTime; + private LocalDate startDate; /** * 结束时间 */ - private LocalDateTime endTime; + private LocalDate endDate; /** * 分发人id diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/BusinessService.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/BusinessService.java index 9e50f7d..7145341 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/BusinessService.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/BusinessService.java @@ -3,6 +3,7 @@ package com.cpop.oam.business.service; import com.cpop.oam.business.bo.BusinessDisposeBo; import com.cpop.oam.business.bo.BusinessDistributeBo; import com.cpop.oam.business.bo.BusinessInfoPageBo; +import com.cpop.oam.business.bo.BusinessRemoveBo; import com.cpop.oam.business.vo.BusinessInfoPageVo; import com.cpop.oam.business.vo.BusinessPageVo; import com.mybatisflex.core.paginate.Page; @@ -50,4 +51,12 @@ public interface BusinessService extends IService { * @param bo 请求 */ void businessDispose(BusinessDisposeBo bo); + + /** + * 事务详情删除 + * @author DB + * @since 2023/12/14 + * @param bo 删除参数 + */ + void businessRemove(BusinessRemoveBo bo); } diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/BusinessServiceImpl.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/BusinessServiceImpl.java index 8581854..598e923 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/BusinessServiceImpl.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/BusinessServiceImpl.java @@ -16,6 +16,7 @@ import com.cpop.core.utils.sql.SqlUtils; import com.cpop.oam.business.bo.BusinessDisposeBo; import com.cpop.oam.business.bo.BusinessDistributeBo; import com.cpop.oam.business.bo.BusinessInfoPageBo; +import com.cpop.oam.business.bo.BusinessRemoveBo; import com.cpop.oam.business.dto.BusinessDistributeDto; import com.cpop.oam.business.entity.BusinessDetail; import com.cpop.oam.business.entity.BusinessStaff; @@ -73,7 +74,7 @@ public class BusinessServiceImpl extends ServiceImpl i PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), QueryWrapper.create() - .select(BUSINESS.ID, BUSINESS.BUSINESS_LEVEL, BUSINESS.BUSINESS_TYPE, BUSINESS.DESC, BUSINESS.START_TIME, BUSINESS.END_TIME, BUSINESS.ALL_SURPLUS_QUANTITY, BUSINESS.REMARK, BUSINESS.STATUS) + .select(BUSINESS.ID, BUSINESS.BUSINESS_LEVEL, BUSINESS.BUSINESS_TYPE, BUSINESS.DESC, BUSINESS.START_DATE, BUSINESS.END_DATE, BUSINESS.ALL_SURPLUS_QUANTITY, BUSINESS.REMARK, BUSINESS.STATUS) //员工表 .select(STAFF.NAME.as(BusinessPageVo::getInitiatorName)) .leftJoin(STAFF).on(STAFF.ID.eq(BUSINESS.INITIATOR_ID)) @@ -92,7 +93,9 @@ public class BusinessServiceImpl extends ServiceImpl i public void businessDistribute(BusinessDistributeBo bo) { Business business = BeanUtils.mapToClass(bo, Business.class); JSONObject loginUserInfo = SecurityUtils.getInstance().getLoginUserInfo(); - business.setInitiatorId(loginUserInfo.getString("id")); + business.setInitiatorId(loginUserInfo.getString("id")) + .setStartDate(bo.getStartAndEnd().get(0)) + .setEndDate(bo.getStartAndEnd().get(1)); this.save(business); Integer allSurplusQuantity; //机构对接 @@ -236,16 +239,17 @@ public class BusinessServiceImpl extends ServiceImpl i PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); return SpringUtils.getBean(StoreService.class).getMapper().paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), queryWrapper - .select(BUSINESS_DETAIL.ID, BUSINESS_DETAIL.DETAIL_STATUS, BUSINESS_DETAIL.DETAIL_DESC, BUSINESS_DETAIL.DETAIL_RECORD_TIME) + .select(BUSINESS_DETAIL.ID,BUSINESS_DETAIL.BUSINESS_ID, BUSINESS_DETAIL.DETAIL_STATUS, BUSINESS_DETAIL.DETAIL_DESC, BUSINESS_DETAIL.DETAIL_RECORD_TIME) //品牌 .select(BRAND.BRAND_NAME) //校区 - .select(STORE.STORE_NAME, STORE.PERSON_CHARGE, STORE.PHONE) + .select(STORE.STORE_NAME, STORE.PERSON_CHARGE, STORE.PHONE, STORE.ID.as(BusinessInfoPageVo::getStoreId)) //营业执照 .select(STORE_LICENSE.LICENSE_NAME, STORE_LICENSE.LICENSE_USER_NAME, STORE_LICENSE.LICENSE_ADDR) .leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID)) .leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID)) .leftJoin(BUSINESS_DETAIL).on(BUSINESS_DETAIL.STORE_ID.eq(STORE.ID)) + .leftJoin(BUSINESS_STAFF).on(BUSINESS_STAFF.BUSINESS_ID.eq(BUSINESS_DETAIL.BUSINESS_ID)) .leftJoin(STAFF).on(STAFF.ID.eq(BUSINESS_STAFF.STAFF_ID)) //品牌或校区名模糊查询 .and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore()))) @@ -284,7 +288,7 @@ public class BusinessServiceImpl extends ServiceImpl i //品牌 .select(BRAND.BRAND_NAME) //校区 - .select(STORE.STORE_NAME, STORE.PERSON_CHARGE, STORE.PHONE) + .select(STORE.STORE_NAME, STORE.PERSON_CHARGE, STORE.PHONE, STORE.ID.as(BusinessInfoPageVo::getStoreId)) //营业执照 .select(STORE_LICENSE.LICENSE_NAME, STORE_LICENSE.LICENSE_USER_NAME, STORE_LICENSE.LICENSE_ADDR) .leftJoin(BUSINESS_STAFF).on(BUSINESS_STAFF.BUSINESS_ID.eq(BUSINESS_DETAIL.BUSINESS_ID)) @@ -342,4 +346,41 @@ public class BusinessServiceImpl extends ServiceImpl i .update(); } } + + /** + * 事务详情删除 + * @author DB + * @since 2023/12/14 + * @param bo 删除参数 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void businessRemove(BusinessRemoveBo bo) { + Business business = this.getById(bo.getBusinessId()); + if (bo.getId() == null) { + //将校区改为测试校区 + SpringUtils.getBean(StoreService.class).updateChain() + .set(STORE.IS_TEST, true) + .where(STORE.ID.eq(bo.getStoreId())) + .update(); + } else { + BusinessDetailService businessDetailService = SpringUtils.getBean(BusinessDetailService.class); + BusinessDetail businessDetail = businessDetailService.getById(bo.getId()); + //机构签约 + if (business.getBusinessType() == 1) { + //将校区改为测试校区 + SpringUtils.getBean(StoreService.class).updateChain() + .set(STORE.IS_TEST, true) + .where(STORE.ID.eq(businessDetail.getStoreId())) + .update(); + } + businessDetailService.removeById(bo.getId()); + } + //所有任务都完成 + if (business.getAllSurplusQuantity() - 1 == 0) { + business.setStatus(1); + } + business.setAllSurplusQuantity(business.getAllSurplusQuantity() - 1); + this.updateById(business); + } } diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessInfoPageVo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessInfoPageVo.java index a893150..6969768 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessInfoPageVo.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessInfoPageVo.java @@ -74,6 +74,13 @@ public class BusinessInfoPageVo { */ @ApiModelProperty(value = "校区名") private String storeName; + + /** + * 校区Id + */ + @ApiModelProperty(value = "校区Id") + private String storeId; + /** * 事务详情id */ diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessPageVo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessPageVo.java index 2c20b47..3deba78 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessPageVo.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/BusinessPageVo.java @@ -1,10 +1,12 @@ package com.cpop.oam.business.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.OffsetDateTime; @@ -42,7 +44,8 @@ public class BusinessPageVo { * 结束时间 */ @ApiModelProperty(value = "结束时间") - private LocalDateTime endTime; + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate endDate; /** * 事务id */ @@ -61,8 +64,9 @@ public class BusinessPageVo { /** * 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "开始时间") - private OffsetDateTime startTime; + private LocalDate startDate; /** * 状态,状态(0:进行中;1:已完成) */ diff --git a/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewPageBo.java b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewPageBo.java new file mode 100644 index 0000000..e60e13d --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewPageBo.java @@ -0,0 +1,45 @@ +package com.cpop.system.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.List; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 9:51 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "校区续费分页请求", description = "校区续费分页请求") +public class StoreRenewPageBo { + + /** + * 校区地址或校区名模糊查询 + */ + @ApiModelProperty(value = "校区地址或校区名模糊查询") + private String addrOrName; + /** + * 品牌或校区名模糊查询 + */ + @ApiModelProperty(value = "品牌或校区名模糊查询") + private String brandOrStore; + /** + * 0:待续费;1:已续费;2:已流失 + */ + @NotNull(message = "续费状态不能为空") + @ApiModelProperty(value = "续费状态",required = true) + private Integer renewStatus; + + /** + * 续费结束日期 + */ + @ApiModelProperty(value = "续费结束日期") + private List renewStartAndEnd; + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewXmlBo.java b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewXmlBo.java new file mode 100644 index 0000000..822baef --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRenewXmlBo.java @@ -0,0 +1,43 @@ +package com.cpop.system.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.time.LocalDate; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 16:22 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "校区续费导出请求", description = "校区续费导出请求") +public class StoreRenewXmlBo { + + /** + * 校区地址或校区名模糊查询 + */ + @ApiModelProperty(value = "校区地址或校区名模糊查询") + private String addrOrName; + /** + * 品牌或校区名模糊查询 + */ + @ApiModelProperty(value = "品牌或校区名模糊查询") + private String brandOrStore; + + /** + * 续费结束日期 + */ + @ApiModelProperty(value = "续费结束日期") + private LocalDate renewStartDate; + + /** + * 续费开始日期 + */ + @ApiModelProperty(value = "续费开始日期") + private LocalDate renewEndDate; +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRunOffBo.java b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRunOffBo.java new file mode 100644 index 0000000..1410fa3 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/bo/StoreRunOffBo.java @@ -0,0 +1,33 @@ +package com.cpop.system.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 10:58 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "校区/店铺流失请求", description = "校区/店铺请求") +public class StoreRunOffBo { + + /** + * 主键 + */ + @NotBlank(message = "主键不能为空") + @ApiModelProperty(value = "主键",required = true) + private String id; + + /** + * 流失原因 + */ + @NotBlank(message = "流失原因不能为空") + @ApiModelProperty(value = "流失原因",required = true) + private String runOffReason; +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/controller/StoreSignController.java b/Cpop-System/src/main/java/com/cpop/system/business/controller/StoreSignController.java new file mode 100644 index 0000000..98643ea --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/controller/StoreSignController.java @@ -0,0 +1,85 @@ +package com.cpop.system.business.controller; + +import com.alibaba.excel.EasyExcel; +import com.cpop.core.base.R; +import com.cpop.system.business.bo.StoreRenewPageBo; +import com.cpop.system.business.bo.StoreRenewXmlBo; +import com.cpop.system.business.bo.StoreRunOffBo; +import com.cpop.system.business.dto.StoreRenewDto; +import com.cpop.system.business.vo.StoreRenewPageVo; +import com.mybatisflex.core.paginate.Page; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import com.cpop.system.business.service.StoreSignService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; + +/** + * 校区-签约表 控制层。 + * + * @author DB + * @since 2023-12-13 + */ +@RestController +@Api(tags = "校区签约续费接口") +@RequestMapping("/storeSign") +public class StoreSignController { + + @Autowired + private StoreSignService storeSignService; + + /** + * 分页查询校区续费 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + * @return Page + */ + @GetMapping("/getStoreRenewPage") + @ApiOperation("分页查询校区续费") + public R> getStoreRenewPage(@ApiParam("分页信息") @Validated StoreRenewPageBo bo) { + Page page = storeSignService.getStoreRenewPage(bo); + return R.ok(page); + } + + /** + * 机构/店铺流失 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + * @return R + */ + @PostMapping("/runOff") + @ApiOperation("机构流失") + public R runOff(@RequestBody @ApiParam("分页信息") @Validated StoreRunOffBo bo) { + storeSignService.runOff(bo); + return R.ok(); + } + + /** + * 获取已续费导出数据 + * @author DB + * @since 2023/12/14 + * @param response 响应 + * @param bo 请求参数 + */ + @GetMapping("/getRenewXml") + @ApiOperation("获取已续费导出数据") + public void getRenewXml(HttpServletResponse response, @ApiParam("分页信息") @Validated StoreRenewXmlBo bo) throws IOException { + // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyExcel没有关系 + String fileName = URLEncoder.encode("已续费数据", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), StoreRenewDto.class).sheet("记录").doWrite(storeSignService.getRenewXml(bo)); + } + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/dto/StoreRenewDto.java b/Cpop-System/src/main/java/com/cpop/system/business/dto/StoreRenewDto.java new file mode 100644 index 0000000..865e34f --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/dto/StoreRenewDto.java @@ -0,0 +1,76 @@ +package com.cpop.system.business.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.security.core.parameters.P; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 16:12 + */ +@Data +public class StoreRenewDto { + + /** + * 品牌名 + */ + @ExcelProperty(value = "品牌") + private String brandName; + /** + * 校区名 + */ + @ExcelProperty(value = "校区") + private String storeName; + /** + * 营业执照公司 + */ + @ExcelProperty(value = "营业执照公司") + private String licenseName; + /** + * 营业执照法人 + */ + @ExcelProperty(value = "营业执照法人") + private String licenseUserName; + /** + * 营业执照地址 + */ + @ExcelProperty(value = "营业执照地址") + private String licenseAddr; + /** + * 到期日期 + */ + @ExcelProperty(value = "到期日期") + private LocalDate expireDate; + /** + * 注册时间 + */ + @ExcelProperty(value = "注册时间") + private LocalDateTime createTime; + + /** + * 续费时间 + */ + @ExcelProperty(value = "续费时间") + private String renewDate; + + /** + * 续费金额 + */ + @ExcelProperty(value = "续费金额") + private BigDecimal renewAmount; + /** + * 续费人 + */ + @ExcelProperty(value = "续费人") + private String renewStaffName; + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/entity/Store.java b/Cpop-System/src/main/java/com/cpop/system/business/entity/Store.java index 752cc82..2c2b519 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/entity/Store.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/entity/Store.java @@ -55,11 +55,6 @@ public class Store extends BaseEntity implements Serializable { */ private String phone; - /** - * 到期日期 - */ - private String expireDate; - /** * 是否有顾问 */ diff --git a/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreRenew.java b/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreRenew.java new file mode 100644 index 0000000..fd0cfbe --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreRenew.java @@ -0,0 +1,72 @@ +package com.cpop.system.business.entity; + +import com.cpop.core.base.entity.BaseEntity; +import com.cpop.core.base.entity.BaseInsertListener; +import com.cpop.core.base.entity.BaseUpdateListener; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Date; +import java.time.LocalDate; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 校区续费表 实体类。 + * + * @author DB + * @since 2023-12-14 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@Table(value = "cp_sys_store_renew", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false) +public class StoreRenew extends BaseEntity implements Serializable { + + /** + * 主键 + */ + @Id + private String id; + + /** + * 校区id + */ + @Id + private String storeId; + + /** + * 续费金额 + */ + private BigDecimal renewAmount; + + /** + * 续费人 + */ + private String renewStaffId; + + /** + * 续费日期 + */ + private LocalDate renewDate; + + /** + * 续费描述 + */ + private String renewDesc; + + /** + * 逻辑删除(0否1是) + */ + @Column(isLogicDelete = true) + private Boolean isDelete; + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreSign.java b/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreSign.java new file mode 100644 index 0000000..2703fb5 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/entity/StoreSign.java @@ -0,0 +1,75 @@ +package com.cpop.system.business.entity; + +import com.cpop.core.base.entity.BaseEntity; +import com.cpop.core.base.entity.BaseInsertListener; +import com.cpop.core.base.entity.BaseUpdateListener; +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.sql.Date; +import java.time.LocalDate; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 校区-签约表 实体类。 + * + * @author DB + * @since 2023-12-13 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@Table(value = "cp_sys_store_sign", onInsert = BaseInsertListener.class, onUpdate = BaseUpdateListener.class, mapperGenerateEnable = false) +public class StoreSign extends BaseEntity implements Serializable { + + /** + * 主键 + */ + @Id + private String id; + + /** + * 校区/店铺id + */ + private String storeId; + + /** + * 到期日期 + */ + private LocalDate expireDate; + + /** + * 签约员工id + */ + private String signStaffId; + + /** + * 是否流失 + */ + private Boolean isLoss; + + /** + * 流失日期 + */ + private LocalDate runOffDate; + + /** + * 流失原因 + */ + private String runOffReason; + + /** + * 逻辑删除(0否1是) + */ + @Column(isLogicDelete = true) + private Boolean isDelete; + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreRenewMapper.java b/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreRenewMapper.java new file mode 100644 index 0000000..3d938e4 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreRenewMapper.java @@ -0,0 +1,14 @@ +package com.cpop.system.business.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cpop.system.business.entity.StoreRenew; + +/** + * 校区续费表 映射层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface StoreRenewMapper extends BaseMapper { + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreSignMapper.java b/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreSignMapper.java new file mode 100644 index 0000000..a198f13 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/mapper/StoreSignMapper.java @@ -0,0 +1,14 @@ +package com.cpop.system.business.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.cpop.system.business.entity.StoreSign; + +/** + * 校区-签约表 映射层。 + * + * @author DB + * @since 2023-12-13 + */ +public interface StoreSignMapper extends BaseMapper { + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/StoreRenewService.java b/Cpop-System/src/main/java/com/cpop/system/business/service/StoreRenewService.java new file mode 100644 index 0000000..55e611d --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/StoreRenewService.java @@ -0,0 +1,14 @@ +package com.cpop.system.business.service; + +import com.mybatisflex.core.service.IService; +import com.cpop.system.business.entity.StoreRenew; + +/** + * 校区续费表 服务层。 + * + * @author DB + * @since 2023-12-14 + */ +public interface StoreRenewService extends IService { + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/StoreSignService.java b/Cpop-System/src/main/java/com/cpop/system/business/service/StoreSignService.java new file mode 100644 index 0000000..a6eb260 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/StoreSignService.java @@ -0,0 +1,48 @@ +package com.cpop.system.business.service; + +import com.cpop.system.business.bo.StoreRenewPageBo; +import com.cpop.system.business.bo.StoreRenewXmlBo; +import com.cpop.system.business.bo.StoreRunOffBo; +import com.cpop.system.business.dto.StoreRenewDto; +import com.cpop.system.business.vo.StoreRenewPageVo; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.service.IService; +import com.cpop.system.business.entity.StoreSign; + +import java.util.Collection; +import java.util.List; + +/** + * 校区-签约表 服务层。 + * + * @author DB + * @since 2023-12-13 + */ +public interface StoreSignService extends IService { + + /** + * 分页查询校区续费 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + * @return Page + */ + Page getStoreRenewPage(StoreRenewPageBo bo); + + /** + * 机构/店铺流失 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + */ + void runOff(StoreRunOffBo bo); + + /** + * 获取已续费导出数据 + * @author DB + * @since 2023/12/14 + * @param bo 请求 + * @return List + */ + List getRenewXml(StoreRenewXmlBo bo); +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreRenewServiceImpl.java b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreRenewServiceImpl.java new file mode 100644 index 0000000..4674da7 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreRenewServiceImpl.java @@ -0,0 +1,18 @@ +package com.cpop.system.business.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.cpop.system.business.entity.StoreRenew; +import com.cpop.system.business.mapper.StoreRenewMapper; +import com.cpop.system.business.service.StoreRenewService; +import org.springframework.stereotype.Service; + +/** + * 校区续费表 服务层实现。 + * + * @author DB + * @since 2023-12-14 + */ +@Service("storeRenewService") +public class StoreRenewServiceImpl extends ServiceImpl implements StoreRenewService { + +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreServiceImpl.java b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreServiceImpl.java index 02b08fe..12976a6 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreServiceImpl.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import com.mybatisflex.core.query.QueryWrapper; import static com.cpop.system.business.entity.table.BrandTableDef.BRAND; +import static com.cpop.system.business.entity.table.StoreSignTableDef.STORE_SIGN; import static com.cpop.system.business.entity.table.StoreTableDef.STORE; /** @@ -41,9 +42,11 @@ public class StoreServiceImpl extends ServiceImpl implements public Page getStorePage(StorePageBo bo) { PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); return this.getMapper().paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), - QueryWrapper.create().select(STORE.ALL_COLUMNS) + QueryWrapper.create().select(STORE.ID, STORE.STORE_NAME, STORE.SOURCE_TYPE, STORE.CREATE_TIME, STORE.STORE_ADDR, STORE.PERSON_CHARGE, STORE.PHONE, STORE.HAVE_ACTIVE, STORE.HAVE_COUNSELOR) + .select(STORE_SIGN.EXPIRE_DATE) .select(BRAND.BRAND_NAME).from(STORE) .select("cp_j_store_extend.store_cloud_id as storeCloudId") + .leftJoin(STORE_SIGN).on(STORE_SIGN.STORE_ID.eq(STORE.ID)) .leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID)) .leftJoin("cp_j_store_extend").on("`cp_j_store_extend`.`store_id` = `cp_sys_store`.`id`"), StorePageVo.class); diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreSignServiceImpl.java b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreSignServiceImpl.java new file mode 100644 index 0000000..d11a00c --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/StoreSignServiceImpl.java @@ -0,0 +1,138 @@ +package com.cpop.system.business.service.impl; + +import com.cpop.core.base.entity.PageDomain; +import com.cpop.core.utils.SpringUtils; +import com.cpop.core.utils.sql.SqlUtils; +import com.cpop.system.business.bo.StoreRenewPageBo; +import com.cpop.system.business.bo.StoreRenewXmlBo; +import com.cpop.system.business.bo.StoreRunOffBo; +import com.cpop.system.business.dto.StoreRenewDto; +import com.cpop.system.business.service.StoreRenewService; +import com.cpop.system.business.vo.StoreRenewPageVo; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.cpop.system.business.entity.StoreSign; +import com.cpop.system.business.mapper.StoreSignMapper; +import com.cpop.system.business.service.StoreSignService; +import org.apache.poi.ss.formula.functions.T; +import org.joda.time.LocalDate; +import org.springframework.stereotype.Service; + +import java.util.List; + +import static com.cpop.system.business.entity.table.BrandTableDef.BRAND; +import static com.cpop.system.business.entity.table.StoreLicenseTableDef.STORE_LICENSE; +import static com.cpop.system.business.entity.table.StoreRenewTableDef.STORE_RENEW; +import static com.cpop.system.business.entity.table.StoreSignTableDef.STORE_SIGN; +import static com.cpop.system.business.entity.table.StoreTableDef.STORE; +import static com.mybatisflex.core.query.QueryMethods.now; +import static com.mybatisflex.core.query.QueryMethods.subDate; + +/** + * 校区-签约表 服务层实现。 + * + * @author DB + * @since 2023-12-13 + */ +@Service("storeSignService") +public class StoreSignServiceImpl extends ServiceImpl implements StoreSignService { + + /** + * 分页查询校区续费 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + * @return Page + */ + @Override + public Page getStoreRenewPage(StoreRenewPageBo bo) { + PageDomain pageDomain = SqlUtils.getInstance().getPageDomain(); + QueryWrapper queryWrapper = QueryWrapper.create(); + switch (bo.getRenewStatus()){ + //待续费 + case 0: + queryWrapper.and(subDate(STORE_SIGN.EXPIRE_DATE, now()).le(90)).and(STORE_SIGN.IS_LOSS.eq(false)); + break; + //已续费 + case 1: + return SpringUtils.getBean(StoreRenewService.class).getMapper().paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), + QueryWrapper.create() + .select(BRAND.BRAND_NAME) + .select(STORE.CREATE_TIME, STORE.PERSON_CHARGE, STORE.PHONE, STORE.STORE_NAME) + .select(STORE_SIGN.EXPIRE_DATE, STORE_SIGN.ID) + .select(STORE_LICENSE.LICENSE_ADDR, STORE_LICENSE.LICENSE_NAME, STORE_LICENSE.LICENSE_USER_NAME) + .select(STORE_RENEW.RENEW_DATE, STORE_RENEW.RENEW_AMOUNT) + .select("cos.name as renewStaffName") + .leftJoin(STORE).on(STORE.ID.eq(STORE_RENEW.STORE_ID)) + .leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID)) + .leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID)) + .leftJoin(STORE_SIGN).on(STORE_SIGN.STORE_ID.eq(STORE.ID)) + .leftJoin("cp_oam_staff").as("cos").on("cos.id = `cp_sys_store_renew`.`renew_staff_id`") + .and(STORE_RENEW.RENEW_DATE.between(bo.getRenewStartAndEnd().get(0), bo.getRenewStartAndEnd().get(1))) + .and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore()))) + .and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName()))), + StoreRenewPageVo.class); + //已流失 + default: + queryWrapper.and(STORE_SIGN.IS_LOSS.eq(true)); + } + return this.mapper.paginateAs(Page.of(pageDomain.getPageNum(), pageDomain.getPageSize()), + queryWrapper + .select(BRAND.BRAND_NAME) + .select(STORE.CREATE_TIME, STORE.PERSON_CHARGE, STORE.PHONE, STORE.STORE_NAME) + .select(STORE_SIGN.EXPIRE_DATE, STORE_SIGN.ID) + .select(STORE_LICENSE.LICENSE_ADDR, STORE_LICENSE.LICENSE_NAME, STORE_LICENSE.LICENSE_USER_NAME) + .select(STORE_RENEW.RENEW_DATE,STORE_RENEW.RENEW_AMOUNT) + .select("cos.name as renewStaffName") + .leftJoin(STORE).on(STORE.ID.eq(STORE_SIGN.STORE_ID)) + .leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID)) + .leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID)) + .leftJoin(STORE_RENEW).on(STORE_RENEW.STORE_ID.eq(STORE.ID)) + .leftJoin("cp_oam_staff").as("cos").on("cos.id = " + STORE_RENEW.RENEW_STAFF_ID) + .and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore()))) + .and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName()))), + StoreRenewPageVo.class); + } + + /** + * 机构/店铺流失 + * @author DB + * @since 2023/12/14 + * @param bo 请求参数 + */ + @Override + public void runOff(StoreRunOffBo bo) { + this.updateChain().set(STORE_SIGN.RUN_OFF_REASON, bo.getRunOffReason()) + .set(STORE_SIGN.RUN_OFF_DATE, LocalDate.now()) + .where(STORE_SIGN.ID.eq(bo.getId())).update(); + } + + /** + * 获取已续费导出数据 + * @author DB + * @since 2023/12/14 + * @param bo 请求 + * @return List + */ + @Override + public List getRenewXml(StoreRenewXmlBo bo) { + List storeRenewDtos = SpringUtils.getBean(StoreRenewService.class).listAs(QueryWrapper.create() + .select(BRAND.BRAND_NAME) + .select(STORE.CREATE_TIME.as(StoreRenewDto::getCreateTime), STORE.PERSON_CHARGE, STORE.PHONE, STORE.STORE_NAME) + .select(STORE_SIGN.EXPIRE_DATE, STORE_SIGN.ID) + .select(STORE_LICENSE.LICENSE_ADDR, STORE_LICENSE.LICENSE_NAME, STORE_LICENSE.LICENSE_USER_NAME) + .select(STORE_RENEW.RENEW_DATE, STORE_RENEW.RENEW_AMOUNT) + .select("cos.name as renewStaffName") + .leftJoin(STORE).on(STORE.ID.eq(STORE_RENEW.STORE_ID)) + .leftJoin(BRAND).on(BRAND.ID.eq(STORE.BRAND_ID)) + .leftJoin(STORE_LICENSE).on(STORE_LICENSE.STORE_ID.eq(STORE.ID)) + .leftJoin(STORE_SIGN).on(STORE_SIGN.STORE_ID.eq(STORE.ID)) + .leftJoin("cp_oam_staff").as("cos").on("cos.id = `cp_sys_store_renew`.`renew_staff_id`") + .and(STORE_RENEW.RENEW_DATE.between(bo.getRenewStartDate(), bo.getRenewEndDate())) + .and(BRAND.BRAND_NAME.like(bo.getBrandOrStore()).or(STORE.STORE_NAME.like(bo.getBrandOrStore()))) + .and(STORE_LICENSE.LICENSE_ADDR.like(bo.getAddrOrName()).or(STORE_LICENSE.LICENSE_NAME.like(bo.getAddrOrName()))), + StoreRenewDto.class); + return storeRenewDtos; + } +} diff --git a/Cpop-System/src/main/java/com/cpop/system/business/vo/StorePageVo.java b/Cpop-System/src/main/java/com/cpop/system/business/vo/StorePageVo.java index cb16310..a7069ee 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/vo/StorePageVo.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/vo/StorePageVo.java @@ -11,12 +11,10 @@ import java.time.LocalDateTime; import com.cpop.core.base.enums.SourceType; -/* - * @Author: DB - * - * @Date: 2023-11-23 15:05:53 - * - * @Description: 店铺分页返回对象 +/** + * 校区/店铺分页返回对象 + * @author DB + * @since 2023/12/14 */ @Data @Accessors(chain = true) diff --git a/Cpop-System/src/main/java/com/cpop/system/business/vo/StoreRenewPageVo.java b/Cpop-System/src/main/java/com/cpop/system/business/vo/StoreRenewPageVo.java new file mode 100644 index 0000000..1088fd6 --- /dev/null +++ b/Cpop-System/src/main/java/com/cpop/system/business/vo/StoreRenewPageVo.java @@ -0,0 +1,89 @@ +package com.cpop.system.business.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.OffsetDateTime; + +/** + * @author DB + * @version 1.0.0 + * @since 2023-12-14 9:54 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "校区/店铺对象", description = "校区/店铺对象") +public class StoreRenewPageVo { + + /** + * 品牌名 + */ + @ApiModelProperty(value = "品牌名") + private String brandName; + /** + * 注册时间 + */ + @ApiModelProperty(value = "注册时间") + private OffsetDateTime createTime; + /** + * 到期日期 + */ + @ApiModelProperty(value = "到期日期") + private LocalDate expireDate; + /** + * 主键,主键 + */ + @ApiModelProperty(value = "主键") + private String id; + /** + * 营业执照地址 + */ + @ApiModelProperty(value = "营业执照地址") + private String licenseAddr; + /** + * 营业执照公司 + */ + @ApiModelProperty(value = "营业执照公司") + private String licenseName; + /** + * 营业执照法人 + */ + @ApiModelProperty(value = "营业执照法人") + private String licenseUserName; + /** + * 联系人 + */ + @ApiModelProperty(value = "联系人") + private String personChange; + /** + * 联系电话 + */ + @ApiModelProperty(value = "联系电话") + private String phone; + /** + * 校区名 + */ + @ApiModelProperty(value = "校区名") + private String storeName; + /** + * 续费时间 + */ + @ApiModelProperty(value = "续费时间") + private String renewDate; + + /** + * 续费金额 + */ + @ApiModelProperty(value = "续费金额") + private BigDecimal renewAmount; + /** + * 续费人 + */ + @ApiModelProperty(value = "续费人") + private String renewStaffName; +} diff --git a/Cpop-System/src/main/resources/mapper/StoreRenewMapper.xml b/Cpop-System/src/main/resources/mapper/StoreRenewMapper.xml new file mode 100644 index 0000000..c8b51cb --- /dev/null +++ b/Cpop-System/src/main/resources/mapper/StoreRenewMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/Cpop-System/src/main/resources/mapper/StoreSignMapper.xml b/Cpop-System/src/main/resources/mapper/StoreSignMapper.xml new file mode 100644 index 0000000..a3b84c0 --- /dev/null +++ b/Cpop-System/src/main/resources/mapper/StoreSignMapper.xml @@ -0,0 +1,7 @@ + + + + +