市场模块:事务管理模块
数据模块:1.续费模块;2.放心学模块
This commit is contained in:
parent
ea4513f266
commit
b3e956b96c
@ -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<EasyLearnOrderDetail> 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<EasyLearnOrderDetail> page(@ApiParam("分页信息") Page<EasyLearnOrderDetail> page) {
|
||||
return easyLearnOrderDetailService.page(page);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderExtend> 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<EasyLearnOrderExtend> page(@ApiParam("分页信息") Page<EasyLearnOrderExtend> page) {
|
||||
return easyLearnOrderExtendService.page(page);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrdre> 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<EasyLearnOrdre> page(@ApiParam("分页信息") Page<EasyLearnOrdre> page) {
|
||||
return easyLearnOrdreService.page(page);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderDetail> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderExtend> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrdre> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderDetail> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderExtend> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrdre> {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderDetailMapper, EasyLearnOrderDetail> implements EasyLearnOrderDetailService {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrderExtendMapper, EasyLearnOrderExtend> implements EasyLearnOrderExtendService {
|
||||
|
||||
}
|
||||
@ -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<EasyLearnOrdreMapper, EasyLearnOrdre> implements EasyLearnOrdreService {
|
||||
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
<?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.cpop.jambox.business.mapper.EasyLearnOrderDetailMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?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.cpop.jambox.business.mapper.EasyLearnOrderExtendMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?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.cpop.jambox.business.mapper.EasyLearnOrdreMapper">
|
||||
|
||||
</mapper>
|
||||
@ -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<String> storeCloudIds;
|
||||
try {
|
||||
DataSourceKey.use("jambox");
|
||||
List<Row> rowList = DbChain.table("t_mechanism_info").select("store_id").where("test = 1").list();
|
||||
List<Row> 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<String> 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<Row> 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<String, String> storeExtendMap = storeExtendService.list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||
rowList.forEach(item -> {
|
||||
item.set("id", storeExtendMap.get(item.getString("storeCloudId")));
|
||||
});
|
||||
List<Store> 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<Row> 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<String, String> 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<StoreSign> entityList = RowUtil.toEntityList(rowList, StoreSign.class);
|
||||
Set<StoreSign> 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<Row> 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<String, String> 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<StoreRenew> entityList = RowUtil.toEntityList(rowList, StoreRenew.class);
|
||||
Set<StoreRenew> 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<Row> 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<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||
Map<String, String> 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<EasyLearnOrdre> 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<Row> 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<String, String> storeMap = SpringUtils.getBean(StoreExtendService.class).list().stream().collect(Collectors.toMap(StoreExtend::getStoreCloudId, StoreExtend::getStoreId));
|
||||
Map<String, String> 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<EasyLearnOrdre> 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 {
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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<LocalDate> startAndEnd;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ -60,15 +63,9 @@ public class BusinessDistributeBo {
|
||||
*/
|
||||
@ApiModelProperty(value = "签约列表")
|
||||
private List<Sign> 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
|
||||
*/
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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<Void>
|
||||
*/
|
||||
@DeleteMapping("/businessRemove")
|
||||
@ApiOperation("事务详情删除")
|
||||
public R<Void> businessRemove(@Validated @RequestBody BusinessRemoveBo bo) {
|
||||
businessService.businessRemove(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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<Business> {
|
||||
* @param bo 请求
|
||||
*/
|
||||
void businessDispose(BusinessDisposeBo bo);
|
||||
|
||||
/**
|
||||
* 事务详情删除
|
||||
* @author DB
|
||||
* @since 2023/12/14
|
||||
* @param bo 删除参数
|
||||
*/
|
||||
void businessRemove(BusinessRemoveBo bo);
|
||||
}
|
||||
|
||||
@ -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<BusinessMapper, Business> 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<BusinessMapper, Business> 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<BusinessMapper, Business> 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<BusinessMapper, Business> 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<BusinessMapper, Business> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,6 +74,13 @@ public class BusinessInfoPageVo {
|
||||
*/
|
||||
@ApiModelProperty(value = "校区名")
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 校区Id
|
||||
*/
|
||||
@ApiModelProperty(value = "校区Id")
|
||||
private String storeId;
|
||||
|
||||
/**
|
||||
* 事务详情id
|
||||
*/
|
||||
|
||||
@ -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:已完成)
|
||||
*/
|
||||
|
||||
@ -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<LocalDate> renewStartAndEnd;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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<StoreSign>
|
||||
*/
|
||||
@GetMapping("/getStoreRenewPage")
|
||||
@ApiOperation("分页查询校区续费")
|
||||
public R<Page<StoreRenewPageVo>> getStoreRenewPage(@ApiParam("分页信息") @Validated StoreRenewPageBo bo) {
|
||||
Page<StoreRenewPageVo> page = storeSignService.getStoreRenewPage(bo);
|
||||
return R.ok(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构/店铺流失
|
||||
* @author DB
|
||||
* @since 2023/12/14
|
||||
* @param bo 请求参数
|
||||
* @return R<Void>
|
||||
*/
|
||||
@PostMapping("/runOff")
|
||||
@ApiOperation("机构流失")
|
||||
public R<Void> 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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -55,11 +55,6 @@ public class Store extends BaseEntity implements Serializable {
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 到期日期
|
||||
*/
|
||||
private String expireDate;
|
||||
|
||||
/**
|
||||
* 是否有顾问
|
||||
*/
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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<StoreRenew> {
|
||||
|
||||
}
|
||||
@ -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<StoreSign> {
|
||||
|
||||
}
|
||||
@ -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<StoreRenew> {
|
||||
|
||||
}
|
||||
@ -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<StoreSign> {
|
||||
|
||||
/**
|
||||
* 分页查询校区续费
|
||||
* @author DB
|
||||
* @since 2023/12/14
|
||||
* @param bo 请求参数
|
||||
* @return Page<StoreSign>
|
||||
*/
|
||||
Page<StoreRenewPageVo> 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<StoreRenewDto>
|
||||
*/
|
||||
List<StoreRenewDto> getRenewXml(StoreRenewXmlBo bo);
|
||||
}
|
||||
@ -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<StoreRenewMapper, StoreRenew> implements StoreRenewService {
|
||||
|
||||
}
|
||||
@ -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<StoreMapper, Store> implements
|
||||
public Page<StorePageVo> 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);
|
||||
|
||||
@ -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<StoreSignMapper, StoreSign> implements StoreSignService {
|
||||
|
||||
/**
|
||||
* 分页查询校区续费
|
||||
* @author DB
|
||||
* @since 2023/12/14
|
||||
* @param bo 请求参数
|
||||
* @return Page<StoreSign>
|
||||
*/
|
||||
@Override
|
||||
public Page<StoreRenewPageVo> 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<StoreRenewDto>
|
||||
*/
|
||||
@Override
|
||||
public List<StoreRenewDto> getRenewXml(StoreRenewXmlBo bo) {
|
||||
List<StoreRenewDto> 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;
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
<?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.cpop.system.business.mapper.StoreRenewMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,7 @@
|
||||
<?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.cpop.system.business.mapper.StoreSignMapper">
|
||||
|
||||
</mapper>
|
||||
Loading…
x
Reference in New Issue
Block a user