From fc05608e70c314487f8a8ef7c936b6833daac202 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Fri, 9 Aug 2024 18:55:10 +0800 Subject: [PATCH] //OfflineActivity --- .../WxOfflineActivityGrantController.java | 75 +++++++ .../WxOfflineActivityRecordController.java | 94 +++++++++ .../WxOfflineActivityRecordController.java | 90 +++++++++ .../po/WxOfflineActivityGrantAward.java | 113 +++++++++++ .../domain/po/WxOfflineActivityGrantItem.java | 157 +++++++++++++++ .../po/WxOfflineActivityGrantSettlement.java | 133 +++++++++++++ .../domain/po/WxOfflineActivityRecord.java | 164 ++++++++++++++++ .../po/WxOfflineActivityRecordGrant.java | 41 ++++ .../vo/OfflineActivityRecordStatistics.java | 15 ++ .../EnumOfflineActivityRecordStatus.java | 38 ++++ .../WxOfflineActivityGrantAwardMapper.java | 19 ++ .../WxOfflineActivityGrantItemMapper.java | 19 ++ ...xOfflineActivityGrantSettlementMapper.java | 19 ++ .../WxOfflineActivityRecordGrantMapper.java | 22 +++ .../mapper/WxOfflineActivityRecordMapper.java | 30 +++ .../WxOfflineActivityGrantAwardService.java | 20 ++ .../WxOfflineActivityGrantItemService.java | 13 ++ ...OfflineActivityGrantSettlementService.java | 13 ++ .../WxOfflineActivityRecordGrantService.java | 13 ++ .../WxOfflineActivityRecordService.java | 28 +++ ...xOfflineActivityGrantAwardServiceImpl.java | 119 +++++++++++ ...WxOfflineActivityGrantItemServiceImpl.java | 21 ++ ...ineActivityGrantSettlementServiceImpl.java | 21 ++ ...OfflineActivityRecordGrantServiceImpl.java | 21 ++ .../WxOfflineActivityRecordServiceImpl.java | 120 ++++++++++++ .../WxOfflineActivityGrantAwardMapper.xml | 35 ++++ .../WxOfflineActivityGrantItemMapper.xml | 44 +++++ ...WxOfflineActivityGrantSettlementMapper.xml | 39 ++++ .../WxOfflineActivityRecordGrantMapper.xml | 26 +++ .../mapper/WxOfflineActivityRecordMapper.xml | 185 ++++++++++++++++++ 30 files changed, 1747 insertions(+) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java create mode 100644 mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityRecordStatus.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java new file mode 100644 index 000000000..59c796489 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java @@ -0,0 +1,75 @@ +package com.iformall.controller.market; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.iformall.domain.po.base.BaseEntity.SortField; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.service.WxOfflineActivityGrantAwardService; +import com.iformall.service.WxOfflineActivityRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import jodd.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @author alascor + * + */ +@RestController +@RequestMapping("/offlineGrant") +@Api(description = "线下活动登记相关接口") +public class WxOfflineActivityGrantController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxOfflineActivityGrantAwardService wxOfflineActivityGrantAwardService; + + @ApiOperation("参加活动用户订单统计") + @GetMapping("recordStatistics") + public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { + if(wxOfflineActivityRecord.getActivityId() == null){ + return new ResultData(Result.ERROR,"请选择活动"); + } + if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){ + return new ResultData(Result.ERROR,"请输入用户手机号"); + } + + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + Map statisticsMap = wxOfflineActivityGrantAwardService.getRecordStatistics(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord); + return new ResultData(statisticsMap); + } + + @ApiOperation("参加活动用户订单列表") + @GetMapping("recordList") + @ApiImplicitParams({}) + public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { + if(wxOfflineActivityRecord.getActivityId() == null){ + return new ResultData(Result.ERROR,"请选择活动"); + } + if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){ + return new ResultData(Result.ERROR,"请输入用户手机号"); + } + + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); + List recordList = wxOfflineActivityGrantAwardService.getRecordList(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord); + + return new ResultData(recordList); + } + + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java new file mode 100644 index 000000000..2058cd839 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java @@ -0,0 +1,94 @@ +package com.iformall.controller.market; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityAwardsItem; +import com.iformall.domain.po.WxOfflineActivityItem; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.iformall.domain.po.base.BaseEntity.SortField; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; +import com.iformall.enums.EnumOfflineActivityMerchantType; +import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.enums.EnumOfflineActivityStatus; +import com.iformall.service.WxOfflineActivityRecordService; +import com.iformall.service.WxOfflineActivityService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import jodd.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; + +/** + * @author alascor + * + */ +@RestController +@RequestMapping("/offlineRecord") +@Api(description = "线下活动登记相关接口") +public class WxOfflineActivityRecordController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxOfflineActivityRecordService wxOfflineActivityRecordService; + + @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 WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) { + if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); + final PageInfo page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize); + + return new ResultData(page); + } + + @ApiOperation("审核通过") + @PostMapping("audiPass") + public ResultData audiPass(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantEntity); + wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); + wxOfflineActivityRecordService.auditRecord(wxOfflineActivityRecord,getUserId()); + return new ResultData(); + } + + @ApiOperation("审核驳回") + @PostMapping("audtFail") + public ResultData audtFail(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { + + if(StringUtil.isBlank(wxOfflineActivityRecord.getAuditRemark())){ + return new ResultData(Result.ERROR,"驳回意见不能为空"); + } + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantEntity); + wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode()); + wxOfflineActivityRecordService.auditRecord(wxOfflineActivityRecord,getUserId()); + return new ResultData(); + } + + @ApiOperation("查询详情") + @GetMapping("getInfoById") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getInfoById(Long id) { + TenantEntity tenantInfo = getTenantInfo(); + WxOfflineActivityRecord record = wxOfflineActivityRecordService.getInfoById(id, tenantInfo.getTenantId()); + return new ResultData(record); + } + + +} diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java new file mode 100644 index 000000000..9bdacbd63 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java @@ -0,0 +1,90 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.iformall.domain.po.base.BaseEntity.SortField; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.service.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import jodd.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author alascor + * + */ +@RestController +@RequestMapping("/api/offlineRecord") +@Api(description = "线下活动登记相关接口") +public class WxOfflineActivityRecordController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxOfflineActivityRecordService wxOfflineActivityRecordService; + + + @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 WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) { + if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); + wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); + final PageInfo page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("新增修改接口") + @PostMapping("saveOrUpdate") + public ResultData saveOrUpdate(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { + if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){ + return new ResultData(Result.ERROR,"客户手机号不能为空"); + } + if (null == wxOfflineActivityRecord.getOrderMoney() ) { + return new ResultData(Result.ERROR,"订单金额不能为空"); + } + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantEntity); + wxOfflineActivityRecord.setCreateBy(getMerchantBUserId()); + wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); + wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord); + return new ResultData(); + } + + @ApiOperation("查询当前信息详情") + @GetMapping("getInfoById") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getInfoById(Long id) { + TenantEntity tenantInfo = getTenantInfo(); + WxOfflineActivityRecord activity = wxOfflineActivityRecordService.getById(id, tenantInfo.getTenantId()); + return new ResultData(activity); + } + + @ApiOperation("查询当前信息统计") + @GetMapping("statistics") + public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); + Map statisticsMap = wxOfflineActivityRecordService.getStatistics(wxOfflineActivityRecord); + return new ResultData(statisticsMap); + } + + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java new file mode 100644 index 000000000..8df625d6b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java @@ -0,0 +1,113 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动发放奖励 + * @TableName wx_offline_activity_grant_award + */ +@TableName(value ="wx_offline_activity_grant_award") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityGrantAward extends TenantEntity{ + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 活动ID + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 订单总金额 + */ + @TableField(value = "order_money_sum") + private Integer orderMoneySum; + + /** + * 订单数量 + */ + @TableField(value = "order_count") + private Integer orderCount; + + /** + * 客户姓名 + */ + @TableField(value = "cus_name") + private String cusName; + + /** + * 客户电话 + */ + @TableField(value = "cus_phone") + private String cusPhone; + + /** + * 实际领奖人 + */ + @TableField(value = "real_name") + private String realName; + + /** + * 实际领奖人身份证号 + */ + @TableField(value = "real_card") + private String realCard; + + /** + * 签名图片 + */ + @TableField(value = "sign_img") + private String signImg; + + /** + * + */ + @TableField(value = "create_by") + private Long createBy; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + + /** + * 抽奖券编码 + */ + @TableField(value = "lottery_num") + private Object lotteryNum; + + /** + * 抽奖券数量 + */ + @TableField(value = "lottery_count") + private Integer lotteryCount; + + /** + * 周年庆抽奖编码 + */ + @TableField(value = "anniversary_lottery_num") + private Object anniversaryLotteryNum; +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java new file mode 100644 index 000000000..b2d182145 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java @@ -0,0 +1,157 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动发放奖励 + * @TableName wx_offline_activity_grant_item + */ +@TableName(value ="wx_offline_activity_grant_item") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityGrantItem extends TenantEntity { + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 发放id + */ + @TableField(value = "grant_id") + private Long grantId; + + /** + * 活动id + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 活动名称 + */ + @TableField(value = "activity_name") + private String activityName; + + /** + * 活动项id + */ + @TableField(value = "activity_item_id") + private Long activityItemId; + + /** + * 活动项名称 + */ + @TableField(value = "activity_item_name") + private Integer activityItemName; + + /** + * 活动项类型 + */ + @TableField(value = "activity_item_type") + private Integer activityItemType; + + /** + * 奖项id + */ + @TableField(value = "award_itam_id") + private Long awardItamId; + + /** + * 奖项名称 + */ + @TableField(value = "award_name") + private String awardName; + + /** + * 奖项等级 + */ + @TableField(value = "award_grade") + private Integer awardGrade; + + /** + * 奖项限制最小金额 + */ + @TableField(value = "award_min_amount") + private Integer awardMinAmount; + + /** + * 奖项限制最大金额 + */ + @TableField(value = "award_max_amount") + private Integer awardMaxAmount; + + /** + * 返现比例 + */ + @TableField(value = "cash_back_ratio") + private BigDecimal cashBackRatio; + + /** + * 奖项价值 + */ + @TableField(value = "award_price") + private Integer awardPrice; + + /** + * 奖项数量 + */ + @TableField(value = "award_count") + private Integer awardCount; + + /** + * 分担规则(0-商管 1-商户 2-分担) + */ + @TableField(value = "money_rule") + private Integer moneyRule; + + /** + * 商管分担比例 + */ + @TableField(value = "mall_share_rate") + private BigDecimal mallShareRate; + + /** + * + */ + @TableField(value = "mall_share_price") + private Integer mallSharePrice; + + /** + * 商户分担比例 + */ + @TableField(value = "merchant_share_rate") + private BigDecimal merchantShareRate; + + /** + * + */ + @TableField(value = "merchant_share_price") + private Integer merchantSharePrice; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java new file mode 100644 index 000000000..c8c580b36 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java @@ -0,0 +1,133 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动发放奖励结算 + * @TableName wx_offline_activity_grant_settlement + */ +@TableName(value ="wx_offline_activity_grant_settlement") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityGrantSettlement extends TenantEntity { + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 参与记录id + */ + @TableField(value = "record_id") + private Long recordId; + + /** + * 订单编号 + */ + @TableField(value = "order_no") + private String orderNo; + + /** + * 订单金额 + */ + @TableField(value = "order_money") + private Integer orderMoney; + + /** + * 商户id + */ + @TableField(value = "merchant_id") + private Long merchantId; + + /** + * 活动id + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 活动项id + */ + @TableField(value = "activity_item_id") + private Long activityItemId; + + /** + * 奖项id + */ + @TableField(value = "award_itam_id") + private Long awardItamId; + + /** + * 发放id + */ + @TableField(value = "grant_id") + private Long grantId; + + /** + * 发放总价值 + */ + @TableField(value = "grant_price") + private Integer grantPrice; + + /** + * 商管承担总金额 + */ + @TableField(value = "mall_share_price") + private Integer mallSharePrice; + + /** + * 商户承担总金额 + */ + @TableField(value = "merchant_share_price") + private Integer merchantSharePrice; + + /** + * 订单占比 + */ + @TableField(value = "order_ratio") + private BigDecimal orderRatio; + + /** + * 实际发放总价值 + */ + @TableField(value = "real_grant_price") + private Integer realGrantPrice; + + /** + * 实际商管承担总金额 + */ + @TableField(value = "real_mall_share_price") + private BigDecimal realMallSharePrice; + + /** + * 实际商户承担总金额 + */ + @TableField(value = "real_merchant_share_price") + private BigDecimal realMerchantSharePrice; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java new file mode 100644 index 000000000..c2749348d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java @@ -0,0 +1,164 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动参与登记 + * @TableName wx_offline_activity_record + */ +@TableName(value ="wx_offline_activity_record") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityRecord extends TenantEntity { + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 订单号 + */ + @TableField(value = "order_no") + private String orderNo; + + /** + * 订单金额 + */ + @TableField(value = "order_money") + private Integer orderMoney; + + /** + * 客户姓名 + */ + @TableField(value = "cus_name") + private String cusName; + + /** + * + */ + @TableField(value = "real_cus_name") + private String realCusName; + + /** + * 客户电话 + */ + @TableField(value = "cus_phone") + private String cusPhone; + + /** + * 客户地址 + */ + @TableField(value = "cus_address") + private String cusAddress; + + /** + * 身份证号 + */ + @TableField(value = "cus_card") + private String cusCard; + + /** + * 抽奖券编码 + */ + @TableField(value = "lottery_num") + private String lotteryNum; + + /** + * 抽奖券数量 + */ + @TableField(value = "lottery_count") + private Integer lotteryCount; + + /** + * 周年庆抽奖编码 + */ + @TableField(value = "anniversary_lottery_num") + private String anniversaryLotteryNum; + + /** + * + */ + @TableField(value = "create_by") + private Long createBy; + + /** + * 商户编号 + */ + @TableField(value = "merchant_id") + private Long merchantId; + + @TableField(exist = false) + private String merchantName; + + @TableField(exist = false) + private List merchantIdList; + + @TableField(value = "business_id") + private Integer businessId; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + @TableField(exist = false) + private Date createDateBegin; + @TableField(exist = false) + private Date createDateEnd; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + + /** + * 审批意见 + */ + @TableField(value = "audit_remark") + private String auditRemark; + + /** + * 审批状态 + */ + @TableField(value = "audit_status") + private Integer auditStatus; + + /** + * 审核人 + */ + @TableField(value = "audit_by") + private Long auditBy; + + @TableField(exist = false) + private String auditByName; + + /** + * 审核时间 + */ + @TableField(value = "audit_time") + private Date auditTime; + + @TableField(exist = false) + private Date auditTimeBegin; + @TableField(exist = false) + private Date auditTimeEnd; + + @TableField(exist = false) + private Long activityId; +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java new file mode 100644 index 000000000..4142ef748 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java @@ -0,0 +1,41 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动参与登记与发放关联表 + * @TableName wx_offline_activity_record_grant + */ +@TableName(value ="wx_offline_activity_record_grant") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityRecordGrant extends TenantEntity { + + /** + * 活动id + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 参与记录id + */ + @TableField(value = "record_id") + private Long recordId; + + /** + * 发放id + */ + @TableField(value = "grant_id") + private Long grantId; +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java new file mode 100644 index 000000000..8c8c69376 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java @@ -0,0 +1,15 @@ +package com.iformall.domain.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class OfflineActivityRecordStatistics implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer auditStatus; + private Integer count; + private Integer sumMoney; +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityRecordStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityRecordStatus.java new file mode 100644 index 000000000..f35718ac5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityRecordStatus.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityRecordStatus { + + AUDTING(0, "审核中"), + AUDI_SUCCESS(1, "审批通过"), + AUDT_FAIL(2, "审批拒绝"), + IS_GRANT(10, "已发奖"),; + + public static EnumOfflineActivityRecordStatus getEnum(Integer code) { + for (EnumOfflineActivityRecordStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityRecordStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java new file mode 100644 index 000000000..9b49f77ad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java @@ -0,0 +1,19 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantAward; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityGrantAward +*/ +public interface WxOfflineActivityGrantAwardMapper extends CommonMapper { + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java new file mode 100644 index 000000000..07b70c38f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java @@ -0,0 +1,19 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantItem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityGrantItem +*/ +public interface WxOfflineActivityGrantItemMapper extends CommonMapper { + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java new file mode 100644 index 000000000..4e6658dc0 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java @@ -0,0 +1,19 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantSettlement; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityGrantSettlement +*/ +public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper { + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java new file mode 100644 index 000000000..e1082caec --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java @@ -0,0 +1,22 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityRecordGrant; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityRecordGrant +*/ +public interface WxOfflineActivityRecordGrantMapper extends CommonMapper { + + Integer selectGrantCount(@Param("tenantId")String tenantId, @Param("activityId")Long activityId, @Param("recordId")Long recordId); + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java new file mode 100644 index 000000000..44dd1192a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java @@ -0,0 +1,30 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.iformall.domain.vo.OfflineActivityRecordStatistics; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityRecord +*/ +public interface WxOfflineActivityRecordMapper extends CommonMapper { + + List findList(WxOfflineActivityRecord record); + + WxOfflineActivityRecord selectById(@Param("id")Long id, @Param("tenantId")String tenantId); + + List auditStatusStatistics(WxOfflineActivityRecord wxOfflineActivityRecord); + + void updateAuditStatus(WxOfflineActivityRecord record); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java new file mode 100644 index 000000000..90cf05b2c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java @@ -0,0 +1,20 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivityGrantAward; +import com.baomidou.mybatisplus.extension.service.IService; +import com.iformall.domain.po.WxOfflineActivityRecord; + +import java.util.List; +import java.util.Map; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service +* @createDate 2024-08-09 00:13:44 +*/ +public interface WxOfflineActivityGrantAwardService { + + Map getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord); + + List getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java new file mode 100644 index 000000000..b25751e15 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java @@ -0,0 +1,13 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivityGrantItem; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Service +* @createDate 2024-08-09 00:13:44 +*/ +public interface WxOfflineActivityGrantItemService { + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java new file mode 100644 index 000000000..87ba6a884 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java @@ -0,0 +1,13 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivityGrantSettlement; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Service +* @createDate 2024-08-09 00:13:44 +*/ +public interface WxOfflineActivityGrantSettlementService { + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java new file mode 100644 index 000000000..b7b103304 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java @@ -0,0 +1,13 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivityRecordGrant; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Service +* @createDate 2024-08-09 00:13:44 +*/ +public interface WxOfflineActivityRecordGrantService{ + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java new file mode 100644 index 000000000..6cb92467f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java @@ -0,0 +1,28 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import com.iformall.domain.po.WxRaffleActivityRecord; + +import java.util.Map; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Service +* @createDate 2024-08-09 00:13:44 +*/ +public interface WxOfflineActivityRecordService { + + PageInfo listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize); + + void saveOrUpdate(WxOfflineActivityRecord wxOfflineActivityRecord); + + WxOfflineActivityRecord getById(Long id, String tenantId); + WxOfflineActivityRecord getInfoById(Long id, String tenantId); + + Map getStatistics(WxOfflineActivityRecord wxOfflineActivityRecord); + + void auditRecord(WxOfflineActivityRecord wxOfflineActivityRecord, Long userId); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java new file mode 100644 index 000000000..e46313296 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -0,0 +1,119 @@ +package com.iformall.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.OfflineActivityRecordStatistics; +import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.mapper.WxOfflineActivityMapper; +import com.iformall.mapper.WxOfflineActivityRecordGrantMapper; +import com.iformall.mapper.WxOfflineActivityRecordMapper; +import com.iformall.service.MallUserInfoService; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxOfflineActivityGrantAwardService; +import com.iformall.mapper.WxOfflineActivityGrantAwardMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service实现 +* @createDate 2024-08-09 00:13:44 +*/ +@Service +public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivityGrantAwardService{ + + @Autowired + private WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper; + + @Autowired + WxOfflineActivityMapper wxOfflineActivityMapper; + + @Autowired + WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; + + @Autowired + WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper; + + @Autowired + WxMerchantService wxMerchantService; + @Autowired + MallUserInfoService mallUserInfoService; + + @Override + public Map getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) { + WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId()); + if (activity == null) { + return Collections.emptyMap(); + } + wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime()); + wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime()); + List recordStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord); + + Map result = new HashMap<>(); + Integer audting = 0, audi_success = 0, audt_fail = 0,sum_success = 0, sum_fail = 0; + for(OfflineActivityRecordStatistics statistics : recordStatistics){ + if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ + audting = statistics.getCount(); + } else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { + audi_success = statistics.getCount(); + sum_success = statistics.getSumMoney(); + } else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { + audt_fail = statistics.getCount(); + } + } + result.put("audting",audting); + result.put("audi_success",audi_success); + result.put("sum_success",sum_success); + result.put("audt_fail",audt_fail); + result.put("sum_count",audting+audi_success+audt_fail); + return result; + } + + @Override + public List getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) { + WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId()); + if (activity == null) { + return Collections.emptyList(); + } + wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime()); + wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime()); + List recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); + handleRecordList(wxOfflineActivityRecord,activity,recordList); + return recordList; + } + + private void handleRecordList(TenantEntity tenantEntity, WxOfflineActivity activity, List recordList) { + if (recordList == null || recordList.isEmpty()) { + return; + } + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(tenantEntity); + Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); + MallUserInfo userInfoQ = new MallUserInfo(); + userInfoQ.updateTenantInfo(tenantEntity); + Map userMap = mallUserInfoService.getUserMap(userInfoQ); + + for (WxOfflineActivityRecord record : recordList) { + record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); + if(record.getAuditBy() != null){ + record.setAuditByName(userMap.get(record.getAuditBy()).getName()); + } + //判断订单是否发奖 + Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(tenantEntity.getTenantId(),activity.getId(),record.getId()); + if(grantCount >= 1){ + record.setAuditStatus(EnumOfflineActivityRecordStatus.IS_GRANT.getCode()); + } + + } + } +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java new file mode 100644 index 000000000..08c5e95ee --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java @@ -0,0 +1,21 @@ +package com.iformall.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iformall.domain.po.WxOfflineActivityGrantItem; +import com.iformall.service.WxOfflineActivityGrantItemService; +import com.iformall.mapper.WxOfflineActivityGrantItemMapper; +import org.springframework.stereotype.Service; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Service实现 +* @createDate 2024-08-09 00:13:44 +*/ +@Service +public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityGrantItemService{ + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java new file mode 100644 index 000000000..4ea64a791 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -0,0 +1,21 @@ +package com.iformall.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iformall.domain.po.WxOfflineActivityGrantSettlement; +import com.iformall.service.WxOfflineActivityGrantSettlementService; +import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper; +import org.springframework.stereotype.Service; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Service实现 +* @createDate 2024-08-09 00:13:44 +*/ +@Service +public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineActivityGrantSettlementService{ + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java new file mode 100644 index 000000000..86a3ff4b2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java @@ -0,0 +1,21 @@ +package com.iformall.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iformall.domain.po.WxOfflineActivityRecordGrant; +import com.iformall.service.WxOfflineActivityRecordGrantService; +import com.iformall.mapper.WxOfflineActivityRecordGrantMapper; +import org.springframework.stereotype.Service; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Service实现 +* @createDate 2024-08-09 00:13:44 +*/ +@Service +public class WxOfflineActivityRecordGrantServiceImpl implements WxOfflineActivityRecordGrantService{ + +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java new file mode 100644 index 000000000..c869b773c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java @@ -0,0 +1,120 @@ +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.WxMerchant; +import com.iformall.domain.po.WxOfflineActivityRecord; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.OfflineActivityRecordStatistics; +import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxOfflineActivityRecordService; +import com.iformall.mapper.WxOfflineActivityRecordMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Service实现 +* @createDate 2024-08-09 00:13:44 +*/ +@Service +public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityRecordService{ + + @Autowired + private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; + + @Autowired + WxMerchantService wxMerchantService; + + @Override + public PageInfo listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { + PageInfo recordPageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxOfflineActivityRecordMapper.findList(record)); + handlerRecordList(record,recordPageInfo.getList()); + return recordPageInfo; + } + + private void handlerRecordList(TenantEntity tenantEntity,List recordList) { + if (recordList != null && recordList.size() > 0) { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(tenantEntity); + Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); + for (WxOfflineActivityRecord record : recordList) { + record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); + } + } + } + + @Override + public void saveOrUpdate(WxOfflineActivityRecord wxOfflineActivityRecord) { + if(wxOfflineActivityRecord.getMerchantId() != null){ + WxMerchant merchant = wxMerchantService.selectById(wxOfflineActivityRecord.getMerchantId()); + wxOfflineActivityRecord.setBusinessId(merchant.getBusinessId()); + } + Date now = new Date(); + if(wxOfflineActivityRecord.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + wxOfflineActivityRecord.setId(idWorker.nextId()); + wxOfflineActivityRecord.setCreateDate(now); + wxOfflineActivityRecord.setUpdateDate(now); + wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); + wxOfflineActivityRecordMapper.insert(wxOfflineActivityRecord); + } + else{ + wxOfflineActivityRecord.setUpdateDate(now); + wxOfflineActivityRecordMapper.updateById(wxOfflineActivityRecord); + } + } + + @Override + public WxOfflineActivityRecord getById(Long id, String tenantId) { + return wxOfflineActivityRecordMapper.selectById(id,tenantId); + } + + @Override + public WxOfflineActivityRecord getInfoById(Long id, String tenantId) { + WxOfflineActivityRecord record = wxOfflineActivityRecordMapper.selectById(id, tenantId); + if(record != null){ + WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId()); + record.setMerchantName(merchant.getName()); + } + return record; + } + + @Override + public Map getStatistics(WxOfflineActivityRecord wxOfflineActivityRecord) { + List auditStatusStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord); + Map result = new HashMap<>(); + Integer audting = 0, audi_success = 0, audt_fail = 0; + for(OfflineActivityRecordStatistics statistics : auditStatusStatistics){ + if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ + audting = statistics.getCount(); + } else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { + audi_success = statistics.getCount(); + } else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { + audt_fail = statistics.getCount(); + } + } + result.put("audting",audting); + result.put("audi_success",audi_success); + result.put("audt_fail",audt_fail); + result.put("sum_count",audting+audi_success+audt_fail); + return result; + } + + @Override + public void auditRecord(WxOfflineActivityRecord record, Long userId) { + Date now = new Date(); + record.setUpdateDate(now); + record.setAuditTime(now); + record.setAuditBy(userId); + wxOfflineActivityRecordMapper.updateAuditStatus(record); + } +} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml new file mode 100644 index 000000000..3c0c995aa --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + activity_id,order_money_sum,order_count, + cus_name,cus_phone,real_name, + real_card,sign_img,create_by, + create_date,update_date,lottery_num, + lottery_count,anniversary_lottery_num + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml new file mode 100644 index 000000000..b8d898e2f --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + grant_id,activity_id,activity_name, + activity_item_id,activity_item_name,activity_item_type, + award_itam_id,award_name,award_grade, + award_min_amount,award_max_amount,cash_back_ratio, + award_price,award_count,money_rule, + mall_share_rate,mall_share_price,merchant_share_rate, + merchant_share_price,create_date,update_date + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml new file mode 100644 index 000000000..eba0b006c --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + record_id,order_no,order_money, + merchant_id,activity_id,activity_item_id, + award_itam_id,grant_id,grant_price, + mall_share_price,merchant_share_price,order_ratio, + real_grant_price,real_mall_share_price,real_merchant_share_price, + create_date,update_date + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml new file mode 100644 index 000000000..b3c7a757f --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + tenant_id,parent_tenant_id,activity_id, + record_id,grant_id + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml new file mode 100644 index 000000000..89ff9f663 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + order_no,order_money,cus_name, + real_cus_name,cus_phone,cus_address, + cus_card,lottery_num,lottery_count, + anniversary_lottery_num,create_by,merchant_id,business_id, + create_date,update_date,audit_remark, + audit_status,audit_by,audit_time + + + + where 1 = 1 + + + and `id` = #{id} + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + and `merchant_id` = #{merchantId} + + + and `business_id` = #{businessId} + + + + and `cus_name` like concat('%', #{cusName},'%') + + + + and `cus_phone` = #{cusPhone} + + + + and `order_no` like concat('%', #{orderNo},'%') + + + + + and `create_date` >= #{createDateBegin} + + + + and `create_date` <= #{createDateEnd} + + + + and `audit_time` >= #{auditTimeBegin} + + + + and `audit_time` <= #{auditTimeEnd} + + + + and `audit_status` = #{auditStatus} + + + + and merchant_id in + + #{midItem} + + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + + update wx_offline_activity_record + set `audit_status` = #{auditStatus}, + + + `lottery_num` = #{lotteryNum}, + + + `lottery_Count` = #{lotteryCount}, + + + `anniversary_lottery_num` = #{anniversaryLotteryNum}, + + + + `audit_remark` = #{auditRemark}, + + + `audit_time` = #{auditTime}, + + + `audit_by` = #{auditBy}, + + `update_date` = #{updateDate} + where id=#{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + +