From 72954ae79cad4151d324ab911294493d6a5070b3 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Mon, 30 Sep 2024 15:19:19 +0800 Subject: [PATCH] //legionActivity --- .../po/WxLegionActivityOfflineConfig.java | 53 +++++++++ .../WxLegionActivityOfflineConfigMapper.java | 29 +++++ .../WxLegionActivityOfflineConfigService.java | 23 ++++ ...egionActivityOfflineConfigServiceImpl.java | 109 ++++++++++++++++++ .../WxLegionActivityOfflineConfigMapper.xml | 80 +++++++++++++ 5 files changed, 294 insertions(+) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOfflineConfig.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOfflineConfigMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxLegionActivityOfflineConfigMapper.xml diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOfflineConfig.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOfflineConfig.java new file mode 100644 index 000000000..ce80e08ad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOfflineConfig.java @@ -0,0 +1,53 @@ +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_legion_activity_offline_config + */ +@TableName(value ="wx_legion_activity_offline_config") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxLegionActivityOfflineConfig extends TenantEntity { + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 租户ID + */ + @TableField(value = "tenant_id") + private String tenantId; + + /** + * 父租户ID + */ + @TableField(value = "parent_tenant_id") + private String parentTenantId; + + /** + * 活动id + */ + @TableField(value = "legion_activity_id") + private Long legionActivityId; + + /** + * 军团id + */ + @TableField(value = "offline_activity_id") + private Long offlineActivityId; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOfflineConfigMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOfflineConfigMapper.java new file mode 100644 index 000000000..dabccd0c2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxLegionActivityOfflineConfigMapper.java @@ -0,0 +1,29 @@ +package com.iformall.mapper; + +import com.iformall.domain.po.WxLegionActivityMerchantConfig; +import com.iformall.domain.po.WxLegionActivityOfflineConfig; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Mapper +* @createDate 2024-09-30 12:22:26 +* @Entity com.iformall.domain.po.WxLegionActivityOfflineConfig +*/ +public interface WxLegionActivityOfflineConfigMapper extends BaseMapper { + + void deleteByLegionActivity(@Param("legionActivityId")Long legionActivityId, @Param("tenantId")String tenantId); + + void insertList(@Param("configList")List legionActivityOfflineConfigList); + + List findList(WxLegionActivityOfflineConfig offlineConfig); + + List getOfflineActivityIds(@Param("legionActivityId")Long legionActivityId, @Param("tenantId")String tenantId); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java new file mode 100644 index 000000000..9115e542d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxLegionActivityOfflineConfigService.java @@ -0,0 +1,23 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxLegionActivity; +import com.iformall.domain.po.WxLegionActivityOfflineConfig; +import com.baomidou.mybatisplus.extension.service.IService; +import com.iformall.domain.po.WxLegionActivityOrder; +import com.iformall.domain.po.WxOfflineActivity; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Service +* @createDate 2024-09-30 12:22:26 +*/ +public interface WxLegionActivityOfflineConfigService { + + void handleOfflineConfig(WxLegionActivity wxLegionActivity); + + List getOfflineActivityList(WxLegionActivity wxLegionActivity); + + void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java new file mode 100644 index 000000000..d72fe730f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOfflineConfigServiceImpl.java @@ -0,0 +1,109 @@ +package com.iformall.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.*; +import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.mapper.WxLegionActivityOrderMapper; +import com.iformall.mapper.WxOfflineActivityMapper; +import com.iformall.mapper.WxOfflineActivityRecordMapper; +import com.iformall.service.WxLegionActivityOfflineConfigService; +import com.iformall.mapper.WxLegionActivityOfflineConfigMapper; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxOfflineActivityRecordService; +import com.iformall.service.WxOfflineActivityService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_legion_activity_offline_config(军团活动配置线下活动)】的数据库操作Service实现 +* @createDate 2024-09-30 12:22:26 +*/ +@Service +public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivityOfflineConfigService{ + + @Autowired + private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; + + @Autowired + private WxOfflineActivityMapper wxOfflineActivityMapper; + + @Autowired + private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; + + @Autowired + private WxMerchantService wxMerchantService; + + @Override + public void handleOfflineConfig(WxLegionActivity wxLegionActivity) { + wxLegionActivityOfflineConfigMapper.deleteByLegionActivity(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); + if(wxLegionActivity.getOfflineActivityList() == null || wxLegionActivity.getOfflineActivityList().isEmpty()){ + return; + } + final IdWorker idWorker = IdWorker.get(); + List legionActivityOfflineConfigList = new ArrayList<>(); + for (WxOfflineActivity wxOfflineActivity : wxLegionActivity.getOfflineActivityList()) { + WxLegionActivityOfflineConfig wxLegionActivityOfflineConfig = new WxLegionActivityOfflineConfig(); + wxLegionActivityOfflineConfig.setId(idWorker.nextId()); + wxLegionActivityOfflineConfig.updateTenantInfo(wxLegionActivity); + wxLegionActivityOfflineConfig.setLegionActivityId(wxLegionActivity.getId()); + wxLegionActivityOfflineConfig.setOfflineActivityId(wxOfflineActivity.getId()); + legionActivityOfflineConfigList.add(wxLegionActivityOfflineConfig); + } + + wxLegionActivityOfflineConfigMapper.insertList(legionActivityOfflineConfigList); + } + + @Override + public List getOfflineActivityList(WxLegionActivity wxLegionActivity) { + + List OfflineActivityIds = wxLegionActivityOfflineConfigMapper.getOfflineActivityIds(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); + if(OfflineActivityIds == null || OfflineActivityIds.isEmpty()){ + return Collections.emptyList(); + } + WxOfflineActivity wxOfflineActivity = new WxOfflineActivity(); + wxOfflineActivity.updateTenantInfo(wxLegionActivity); + wxOfflineActivity.setIds(OfflineActivityIds); + + return wxOfflineActivityMapper.findList(wxOfflineActivity); + } + + @Override + public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { + + + //所有都同步(绑定线下活动意义不大) + IdWorker idWorker = IdWorker.get(); + WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); + activityRecord.setId(idWorker.nextId()); + activityRecord.updateTenantInfo(legionActivityOrder); + activityRecord.setFromOrderId(legionActivityOrder.getId()); + activityRecord.setOrderNo(legionActivityOrder.getOrderNo()); + activityRecord.setOrderMoney(legionActivityOrder.getOrderMoney()); + activityRecord.setCusName(legionActivityOrder.getCusName()); + activityRecord.setCusPhone(legionActivityOrder.getCusAddress()); + activityRecord.setCreateBy(legionActivityOrder.getCreateBy()); + activityRecord.setMerchantId(legionActivityOrder.getMerchantId()); + if(activityRecord.getMerchantId() != null){ + WxMerchant merchant = wxMerchantService.selectById(activityRecord.getMerchantId()); + activityRecord.setBusinessId(merchant.getBusinessId()); + } + activityRecord.setCreateDate(legionActivityOrder.getCreateDate()); + activityRecord.setUpdateDate(legionActivityOrder.getUpdateDate()); +// activityRecord.setAuditRemark(legionActivityOrder.getAuditRemark()); + activityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); + activityRecord.setAuditBy(legionActivityOrder.getAuditBy()); + activityRecord.setAuditTime(legionActivityOrder.getAuditTime()); + wxOfflineActivityRecordMapper.insert(activityRecord); + } + +} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxLegionActivityOfflineConfigMapper.xml b/mallinkService/src/main/resources/mapper/WxLegionActivityOfflineConfigMapper.xml new file mode 100644 index 000000000..353b8f1f0 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxLegionActivityOfflineConfigMapper.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + legion_activity_id,offline_activity_id + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + and `legion_activity_id` = #{legionActivityId} + + + and `offline_activity_id` = #{offlineActivityId} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + delete from wx_legion_activity_offline_config + where `legion_activity_id` = #{legionActivityId} + + and `tenant_id` = #{tenantId} + + + + + insert into wx_legion_activity_offline_config + (id, + legion_activity_id,offline_activity_id) + values + + (#{item.id,jdbcType=BIGINT}, + #{item.legionActivityId,jdbcType=BIGINT},#{item.offlineActivityId,jdbcType=BIGINT}) + + +