diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/AiOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/AiOrderController.java new file mode 100644 index 000000000..611d45692 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/AiOrderController.java @@ -0,0 +1,34 @@ +package com.iformall.controller.market; + +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.AiOrder; +import com.iformall.service.AiOrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("aiOrder") +@Api(description = "核销和用户卡券查询接口") +public class AiOrderController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private AiOrderService aiOrderService; + + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(@ModelAttribute AiOrder aiOrder, Integer pageNum, Integer pageSize) { + aiOrder.updateTenantInfo(getTenantInfo()); + return new ResultData(aiOrderService.listAsPage(aiOrder, pageNum, pageSize)); + } +} diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 7ea61a869..0cddc1540 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -442,6 +442,13 @@ public class BaseMyBatisConfiguration { wxEnergyReadingCalcuteResultSharding.setRule(EnumShardingRule.HASH.getCode()); shardingList.add(wxEnergyReadingCalcuteResultSharding); + ShardingSphere aiOrderSharding = new ShardingSphere(); + aiOrderSharding.setColumn("tenant_id"); + aiOrderSharding.setTableName("ai_order"); + aiOrderSharding.setCount(100); + aiOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(aiOrderSharding); + //初始化 shardingSpherePlugin.setShardingSpheres(shardingList); Properties properties = new Properties(); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/AiOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/AiOrder.java new file mode 100644 index 000000000..b93232b36 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/AiOrder.java @@ -0,0 +1,89 @@ +package com.iformall.domain.po; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.iformall.common.SortColumn; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.Date; +import java.util.List; + + +/** + * "1.创建订单时同步创建。 +2.每天凌晨查询昨天创建的订单,同步wx_coupon_order +3.coupon_order_status==0(待使用)的订单每隔2个小时同步" + */ +@TableName(value = "ai_order") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class AiOrder extends TenantEntity { + + protected Long id; + @io.swagger.annotations.ApiModelProperty(value = "订单ID(WxOrder)", name = "orderId") + private Long orderId; + @io.swagger.annotations.ApiModelProperty(value = "券码ID", name = "couponOrderId") + private Long couponOrderId; + @io.swagger.annotations.ApiModelProperty(value = "卡券ID", name = "couponId") + private Long couponId; + @io.swagger.annotations.ApiModelProperty(value = "EnumCouponType", name = "couponType") + private Integer couponType; + @io.swagger.annotations.ApiModelProperty(value = "couponTitle", name = "couponTitle") + private String couponTitle; + @io.swagger.annotations.ApiModelProperty(value = "券实际购买价格", name = "couponSalePrice") + private Integer couponSalePrice; + @io.swagger.annotations.ApiModelProperty(value = "面值", name = "couponPrice") + private Integer couponPrice; + @io.swagger.annotations.ApiModelProperty(value = "补贴", name = "couponSubsidy") + private Integer couponSubsidy; + @io.swagger.annotations.ApiModelProperty(value = "商户用户ID", name = "bUserId") + private Long bUserId; + @io.swagger.annotations.ApiModelProperty(value = "商户用户电话", name = "bUserPhone") + private String bUserPhone; + @io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "bMerchantId") + private Long bMerchantId; + @io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "bMerchantName") + private String bMerchantName; + @io.swagger.annotations.ApiModelProperty(value = "品牌ID", name = "brandId") + private Long brandId; + @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "brandName") + private String brandName; + @io.swagger.annotations.ApiModelProperty(value = "业态", name = "bussiness") + private Long bussiness; + @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "bussinessName") + private String bussinessName; + @io.swagger.annotations.ApiModelProperty(value = "店铺号", name = "shopNumber") + private String shopNumber; + @io.swagger.annotations.ApiModelProperty(value="赠券商户编号",name="sendMerchantId") + private Long sendMerchantId; + @io.swagger.annotations.ApiModelProperty(value = "赠券商户名称", name = "sendMerchantName") + private String sendMerchantName; + @io.swagger.annotations.ApiModelProperty(value = "订单创建时间(wxOrder)", name = "createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value = "订单更新时间", name = "updateDate") + private Date updateDate; + @io.swagger.annotations.ApiModelProperty(value = "核销时间", name = "verifyTime") + private Date verifyTime; + @io.swagger.annotations.ApiModelProperty(value = "过期时间", name = "expiredTime") + private Date expiredTime; + @io.swagger.annotations.ApiModelProperty(value = "持有者ID", name = "ownerId") + private Long ownerId; + @io.swagger.annotations.ApiModelProperty(value = "持有者电话", name = "ownerPhone") + private String ownerPhone; + @io.swagger.annotations.ApiModelProperty(value = "持有者昵称", name = "ownerNickName") + private String ownerNickName; + @io.swagger.annotations.ApiModelProperty(value = "EnumCouponOrderStatus", name = "couponOrderStatus") + private Integer couponOrderStatus; + @TableField(exist = false) + private List couponOrderStatusList; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/AiOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/AiOrderMapper.java new file mode 100644 index 000000000..660dcf871 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/AiOrderMapper.java @@ -0,0 +1,13 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.AiOrder; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +public interface AiOrderMapper extends CommonMapper { + + AiOrder selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(AiOrder wxCouponOrder); +} diff --git a/mallinkService/src/main/java/com/iformall/service/AiOrderService.java b/mallinkService/src/main/java/com/iformall/service/AiOrderService.java new file mode 100644 index 000000000..3fdd20257 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/AiOrderService.java @@ -0,0 +1,35 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.AiOrder; + +import java.util.List; + +public interface AiOrderService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(AiOrder record, Integer pageIndex, Integer pageSize); + + /** + * 根据Id获得实体 + * + * @param id + * @return + */ + AiOrder getById(Long id,String tenantId); + + /** + * 保存或更新实体 + * + * @param record + */ + void saveOrUpdate(AiOrder record); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/AiOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/AiOrderServiceImpl.java new file mode 100644 index 000000000..c55c313ae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/AiOrderServiceImpl.java @@ -0,0 +1,44 @@ +package com.iformall.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.AiOrder; +import com.iformall.mapper.AiOrderMapper; +import com.iformall.service.AiOrderService; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class AiOrderServiceImpl implements AiOrderService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + AiOrderMapper aiOrderMapper; + + @Override + public PageInfo listAsPage(AiOrder record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> aiOrderMapper.findList(record)); + } + + @Override + public AiOrder getById(Long id,String tenantId) { + return aiOrderMapper.selectById(id,tenantId); + } + + @Override + public void saveOrUpdate(AiOrder record) { + if (record.getId() == null) { + //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + aiOrderMapper.insert(record); + } else { + aiOrderMapper.updateById(record); + } + } +} diff --git a/mallinkService/src/main/resources/mapper/AiOrderMapper.xml b/mallinkService/src/main/resources/mapper/AiOrderMapper.xml new file mode 100644 index 000000000..3e7b470ff --- /dev/null +++ b/mallinkService/src/main/resources/mapper/AiOrderMapper.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`order_id`,`coupon_order_id`,`coupon_id`,`coupon_type`,`coupon_title`,`coupon_sale_price`, + `coupon_price`,`coupon_subsidy`,`b_user_id`,`b_user_phone`,`b_merchant_id`,`b_merchant_name`,`brand_id`,`brand_name`,`bussiness`, + `bussiness_name`,`shop_number`,`send_merchant_id`,`send_merchant_name`,`create_date`,`update_date`,`verify_time`,`expired_time`, + `owner_id`,`owner_phone`,`owner_nick_name`,`coupon_order_status` + + + + where `tenant_id` = #{tenantId} + + and `id` = #{id} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `coupon_id` = #{couponId} + + + + and `coupon_type` = #{couponType} + + + + and `owner_id` = #{ownerId} + + + + and `b_user_id` = #{bUserId} + + + + and `b_merchant_id` = #{bMerchantId} + + + + and `order_id` = #{orderId} + + + + and `coupon_order_status` = #{couponOrderStatus} + + + + and `send_merchant_id` = #{sendMerchantId} + + + + and coupon_order_status in + + #{cosidItem} + + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + \ No newline at end of file