diff --git a/src/main/java/com/gxwebsoft/booking/controller/IntegralController.java b/src/main/java/com/gxwebsoft/booking/controller/IntegralController.java index ebfac64..516f5d6 100644 --- a/src/main/java/com/gxwebsoft/booking/controller/IntegralController.java +++ b/src/main/java/com/gxwebsoft/booking/controller/IntegralController.java @@ -1,5 +1,12 @@ package com.gxwebsoft.booking.controller; +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpRequest; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.security.JwtSubject; +import com.gxwebsoft.common.core.security.JwtUtil; +import com.gxwebsoft.common.core.utils.JSONUtil; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.booking.service.IntegralService; import com.gxwebsoft.booking.entity.Integral; @@ -10,12 +17,18 @@ import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; import java.util.List; /** @@ -30,6 +43,8 @@ import java.util.List; public class IntegralController extends BaseController { @Resource private IntegralService integralService; + @Resource + private ConfigProperties configProperties; @ApiOperation("分页查询签到积分") @GetMapping("/page") @@ -44,6 +59,18 @@ public class IntegralController extends BaseController { // 使用关联查询 return success(integralService.listRel(param)); } + @ApiOperation("本月签到数据") + @GetMapping("/getSignData") + public ApiResult getSignData(IntegralParam param) { + System.out.println("param.getDateTime() = " + param.getDateTime()); + final User loginUser = getLoginUser(); + if(loginUser == null){ + return fail("请先登录"); + } + String message = integralService.count(new LambdaUpdateWrapper().eq(Integral::getUserId,getLoginUser().getUserId()).eq(Integral::getDateTime, DateUtil.today())) > 0 ? "您今天已经签到过了" : "操作成功"; + final List list = integralService.list(new LambdaUpdateWrapper().eq(Integral::getUserId,loginUser.getUserId()).like(Integral::getDateTime, param.getDateTime())); + return success(message,list); + } @PreAuthorize("hasAuthority('booking:integral:list')") @ApiOperation("根据id查询签到积分") @@ -55,16 +82,41 @@ public class IntegralController extends BaseController { @ApiOperation("添加签到积分") @PostMapping() - public ApiResult save(@RequestBody Integral integral) { + public ApiResult save(@RequestBody Integral integral, HttpServletRequest request) { // 记录当前登录用户id - // User loginUser = getLoginUser(); - // if (loginUser != null) { - // integral.setUserId(loginUser.getUserId()); - // } - if (integralService.save(integral)) { - return success("添加成功"); - } - return fail("添加失败"); + User loginUser = getLoginUser(); + if (loginUser != null) { + integral.setUserId(loginUser.getUserId()); + integral.setUsername(loginUser.getNickname()); + integral.setPhone(loginUser.getPhone()); + integral.setIntegral(new BigDecimal("1")); + integral.setDateTime(DateUtil.today()); + integral.setDay(DateUtil.thisDayOfMonth()); + integral.setCreateTime(DateUtil.currentSeconds()); + + if (integralService.count(new LambdaUpdateWrapper().eq(Integral::getUserId,getLoginUser().getUserId()).eq(Integral::getDateTime, DateUtil.today())) > 0) { +// return fail("您今天已经签到过了."); + } + if (integralService.save(integral)) { + // 累计积分 + String access_token = JwtUtil.getAccessToken(request); + Claims claims = JwtUtil.parseToken(access_token, configProperties.getTokenKey()); + JwtSubject jwtSubject = JwtUtil.getJwtSubject(claims); + HashMap map = new HashMap<>(); + map.put("userId", loginUser.getUserId()); + map.put("points",loginUser.getPoints() + 1); + map.put("tenantId", jwtSubject.getTenantId()); + // 链式构建请求 + String result = HttpRequest.post("https://server.gxwebsoft.com/api/system/user/update") + .header("Authorization", access_token) + .header("Tenantid", jwtSubject.getTenantId().toString()) + .body(JSONUtil.toJSONString(map))//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + return success("签到成功"); + } + } + return fail("签到失败"); } @ApiOperation("修改签到积分") diff --git a/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java b/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java index 51f11c5..06f4800 100644 --- a/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java +++ b/src/main/java/com/gxwebsoft/booking/controller/UserCouponController.java @@ -47,6 +47,7 @@ public class UserCouponController extends BaseController { @GetMapping("/page") public ApiResult> page(UserCouponParam param) { // 使用关联查询 + param.setUserId(getLoginUserId()); return success(userCouponService.pageRel(param)); } diff --git a/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java b/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java new file mode 100644 index 0000000..40e9dd7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/controller/UserInvoiceController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.booking.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.booking.service.UserInvoiceService; +import com.gxwebsoft.booking.entity.UserInvoice; +import com.gxwebsoft.booking.param.UserInvoiceParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 发票控制器 + * + * @author 科技小王子 + * @since 2024-05-23 16:27:08 + */ +@Api(tags = "发票管理") +@RestController +@RequestMapping("/api/booking/user-invoice") +public class UserInvoiceController extends BaseController { + @Resource + private UserInvoiceService userInvoiceService; + + @ApiOperation("分页查询发票") + @GetMapping("/page") + public ApiResult> page(UserInvoiceParam param) { + // 使用关联查询 + return success(userInvoiceService.pageRel(param)); + } + + @ApiOperation("查询全部发票") + @GetMapping() + public ApiResult> list(UserInvoiceParam param) { + // 使用关联查询 + return success(userInvoiceService.listRel(param)); + } + + @PreAuthorize("hasAuthority('booking:userInvoice:list')") + @ApiOperation("根据id查询发票") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(userInvoiceService.getByIdRel(id)); + } + + @ApiOperation("添加发票") + @PostMapping() + public ApiResult save(@RequestBody UserInvoice userInvoice) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + userInvoice.setUserId(loginUser.getUserId()); + } + if (userInvoiceService.save(userInvoice)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改发票") + @PutMapping() + public ApiResult update(@RequestBody UserInvoice userInvoice) { + if (userInvoiceService.updateById(userInvoice)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除发票") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (userInvoiceService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加发票") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (userInvoiceService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改发票") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userInvoiceService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除发票") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (userInvoiceService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/booking/entity/Integral.java b/src/main/java/com/gxwebsoft/booking/entity/Integral.java index 1a929f5..affba20 100644 --- a/src/main/java/com/gxwebsoft/booking/entity/Integral.java +++ b/src/main/java/com/gxwebsoft/booking/entity/Integral.java @@ -42,12 +42,12 @@ public class Integral implements Serializable { private String dateTime; @ApiModelProperty(value = "天") - private String day; + private Integer day; @ApiModelProperty(value = "租户id") private Integer tenantId; @ApiModelProperty(value = "签到时间") - private Integer createTime; + private Long createTime; } diff --git a/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java b/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java new file mode 100644 index 0000000..53853a2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/entity/UserInvoice.java @@ -0,0 +1,86 @@ +package com.gxwebsoft.booking.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 发票 + * + * @author 科技小王子 + * @since 2024-05-23 16:27:08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "UserInvoice对象", description = "发票") +public class UserInvoice implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "发票类型(0纸质 1电子)") + private Integer type; + + @ApiModelProperty(value = "发票名称") + private String name; + + @ApiModelProperty(value = "开票类型(0铺票 1专票)") + private Integer invoiceType; + + @ApiModelProperty(value = "税号") + private String invoiceCode; + + @ApiModelProperty(value = "公司地址") + private String address; + + @ApiModelProperty(value = "公司电话") + private String tel; + + @ApiModelProperty(value = "开户行") + private String bankName; + + @ApiModelProperty(value = "开户账号") + private String bankAccount; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "电子邮箱") + private String email; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0待使用, 1已使用, 2已失效") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java b/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java new file mode 100644 index 0000000..3c93ff7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/UserInvoiceMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.booking.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.booking.entity.UserInvoice; +import com.gxwebsoft.booking.param.UserInvoiceParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 发票Mapper + * + * @author 科技小王子 + * @since 2024-05-23 16:27:08 + */ +public interface UserInvoiceMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserInvoiceParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserInvoiceParam param); + +} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCouponMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCouponMapper.xml index 198a295..2e7c175 100644 --- a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCouponMapper.xml +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserCouponMapper.xml @@ -5,7 +5,7 @@ SELECT a.* - FROM user_coupon a + FROM booking_user_coupon a AND a.id = #{param.id} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml new file mode 100644 index 0000000..ea66284 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/UserInvoiceMapper.xml @@ -0,0 +1,84 @@ + + + + + + + SELECT a.* + FROM user_invoice a + + + AND a.id = #{param.id} + + + AND a.type = #{param.type} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.invoice_type = #{param.invoiceType} + + + AND a.invoice_code LIKE CONCAT('%', #{param.invoiceCode}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.tel LIKE CONCAT('%', #{param.tel}, '%') + + + AND a.bank_name LIKE CONCAT('%', #{param.bankName}, '%') + + + AND a.bank_account LIKE CONCAT('%', #{param.bankAccount}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.email LIKE CONCAT('%', #{param.email}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.user_id = #{param.userId} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java b/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java new file mode 100644 index 0000000..7fa6645 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/param/UserInvoiceParam.java @@ -0,0 +1,80 @@ +package com.gxwebsoft.booking.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 发票查询参数 + * + * @author 科技小王子 + * @since 2024-05-23 16:27:07 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "UserInvoiceParam对象", description = "发票查询参数") +public class UserInvoiceParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "id") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "发票类型(0纸质 1电子)") + @QueryField(type = QueryType.EQ) + private Integer type; + + @ApiModelProperty(value = "发票名称") + private String name; + + @ApiModelProperty(value = "开票类型(0铺票 1专票)") + private Integer invoiceType; + + @ApiModelProperty(value = "税号") + private String invoiceCode; + + @ApiModelProperty(value = "公司地址") + private String address; + + @ApiModelProperty(value = "公司电话") + private String tel; + + @ApiModelProperty(value = "开户行") + private String bankName; + + @ApiModelProperty(value = "开户账号") + private String bankAccount; + + @ApiModelProperty(value = "手机号码") + private String phone; + + @ApiModelProperty(value = "电子邮箱") + private String email; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0待使用, 1已使用, 2已失效") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java b/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java new file mode 100644 index 0000000..425a060 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/UserInvoiceService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.booking.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.booking.entity.UserInvoice; +import com.gxwebsoft.booking.param.UserInvoiceParam; + +import java.util.List; + +/** + * 发票Service + * + * @author 科技小王子 + * @since 2024-05-23 16:27:08 + */ +public interface UserInvoiceService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserInvoiceParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserInvoiceParam param); + + /** + * 根据id查询 + * + * @param id id + * @return UserInvoice + */ + UserInvoice getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/IntegralLogServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/IntegralLogServiceImpl.java index 7ceef5b..ce00a9f 100644 --- a/src/main/java/com/gxwebsoft/booking/service/impl/IntegralLogServiceImpl.java +++ b/src/main/java/com/gxwebsoft/booking/service/impl/IntegralLogServiceImpl.java @@ -23,7 +23,7 @@ public class IntegralLogServiceImpl extends ServiceImpl pageRel(IntegralLogParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); + page.setDefaultOrder("create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,7 +33,7 @@ public class IntegralLogServiceImpl extends ServiceImpl list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); + page.setDefaultOrder("create_time desc"); return page.sortRecords(list); } diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/IntegralServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/IntegralServiceImpl.java index 3a3b89e..2cce512 100644 --- a/src/main/java/com/gxwebsoft/booking/service/impl/IntegralServiceImpl.java +++ b/src/main/java/com/gxwebsoft/booking/service/impl/IntegralServiceImpl.java @@ -23,7 +23,7 @@ public class IntegralServiceImpl extends ServiceImpl i @Override public PageResult pageRel(IntegralParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); + page.setDefaultOrder("create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,7 +33,7 @@ public class IntegralServiceImpl extends ServiceImpl i List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); + page.setDefaultOrder("create_time desc"); return page.sortRecords(list); } diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java new file mode 100644 index 0000000..8a52a72 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/impl/UserInvoiceServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.booking.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.booking.mapper.UserInvoiceMapper; +import com.gxwebsoft.booking.service.UserInvoiceService; +import com.gxwebsoft.booking.entity.UserInvoice; +import com.gxwebsoft.booking.param.UserInvoiceParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 发票Service实现 + * + * @author 科技小王子 + * @since 2024-05-23 16:27:08 + */ +@Service +public class UserInvoiceServiceImpl extends ServiceImpl implements UserInvoiceService { + + @Override + public PageResult pageRel(UserInvoiceParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserInvoiceParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public UserInvoice getByIdRel(Integer id) { + UserInvoiceParam param = new UserInvoiceParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java index 17d5997..52033ad 100644 --- a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java @@ -57,7 +57,9 @@ public class BookingGenerator { // "booking_integral_log" // "booking_order" // "booking_emergency", - "user_coupon" +// "user_coupon", +// "user_invoice" + "user_card" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{