diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java index 6f73c4173..02921ee09 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java @@ -56,6 +56,18 @@ public class WxOfflineActivityRecordController extends BaseController { return new ResultData(page); } + @ApiOperation("新增修改接口") + @PostMapping("saveOrUpdate") + public ResultData saveOrUpdate(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { + if(wxOfflineActivityRecord.getId() == null){ + return new ResultData(Result.ERROR,"id不能为空"); + } + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantEntity); + wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord); + return new ResultData(); + } + @ApiOperation("获取待审批数量") @GetMapping("waitAudiCount") public ResultData waitAudiCount() { diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java index 9bdacbd63..45def129a 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java @@ -6,6 +6,8 @@ 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.enums.EnumOfflineActivityRecordStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -57,10 +59,18 @@ public class WxOfflineActivityRecordController extends BaseController { if (null == wxOfflineActivityRecord.getOrderMoney() ) { return new ResultData(Result.ERROR,"订单金额不能为空"); } + if(wxOfflineActivityRecord.getId() != null){ + WxOfflineActivityRecord record = wxOfflineActivityRecordService.getById(wxOfflineActivityRecord.getId(),wxOfflineActivityRecord.getTenantId()); + if(!EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(record.getAuditStatus())){ + throw new MallinkException(Result.ERROR,"订单状态不允许修改"); + } + wxOfflineActivityRecord.setAuditRemark(""); + } TenantEntity tenantEntity = getTenantInfo(); wxOfflineActivityRecord.updateTenantInfo(tenantEntity); wxOfflineActivityRecord.setCreateBy(getMerchantBUserId()); wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); + wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivity.java index e3f9b0234..f99c2ee6b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivity.java @@ -139,6 +139,12 @@ public class WxLegionActivity extends TenantEntity { @TableField(exist = false) private List legionList; + /** + * 线下活动 + */ + @TableField(exist = false) + private List offlineActivityList; + @TableField(exist = false) private Integer legionCount; @TableField(exist = false) 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/domain/po/WxLegionActivityOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java index b5b39128b..eb473681e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java @@ -49,8 +49,8 @@ public class WxLegionActivityOrder extends TenantEntity { /** * 订单金额 */ - @io.swagger.annotations.ApiModelProperty(value="已收定金",name="orderMoney") - @Excel(name = "已收定金", width = 20, orderNum = "10") + @io.swagger.annotations.ApiModelProperty(value="订单金额",name="orderMoney") + @Excel(name = "订单金额", width = 20, orderNum = "10") @TableField(value = "order_money") private BigDecimal orderMoney; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java index 28f02aef2..34178ad11 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java @@ -33,6 +33,12 @@ public class WxOfflineActivityRecord extends TenantEntity { @TableId(value = "id") private Long id; + /** + * 来源订单号 + */ + @TableId(value = "from_order_id") + private Long fromOrderId; + /** * 订单号 */ 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/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java index 95e982fb0..dd5d21087 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -18,6 +18,7 @@ import com.iformall.service.*; import jodd.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -52,6 +53,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe @Autowired private WxLegionActivityMerchantConfigMapper wxLegionActivityMerchantConfigMapper; + @Autowired + private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; + @Autowired private WxMerchantMapper wxMerchantMapper; @@ -290,12 +294,17 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe } @Override + @Transactional(rollbackFor = Exception.class) public void auditRecord(WxLegionActivityOrder wxLegionActivityOrder, Long userId) { Date now = new Date(); wxLegionActivityOrder.setUpdateDate(now); wxLegionActivityOrder.setAuditTime(now); wxLegionActivityOrder.setAuditBy(userId); wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); + + //同步订单 + WxLegionActivityOrder legionActivityOrder = wxLegionActivityOrderMapper.selectById(wxLegionActivityOrder.getId(), wxLegionActivityOrder.getTenantId()); + wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(legionActivityOrder); } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java index f3f59b249..8535de949 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityServiceImpl.java @@ -48,6 +48,12 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ @Autowired private WxLegionActivityMerchantConfigService wxLegionActivityMerchantConfigService; + @Autowired + private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; + + @Autowired + private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; + @Autowired private WxLegionActivityOrderService wxLegionActivityOrderService; @@ -180,6 +186,8 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ wxLegionActivity.setUpdateDate(now); wxLegionActivityMapper.updateById(wxLegionActivity); } + //处理线下活动配置 + wxLegionActivityOfflineConfigService.handleOfflineConfig(wxLegionActivity); //处理军团配置 wxLegionActivityConfigService.handleLegionConfig(wxLegionActivity); @@ -196,6 +204,8 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ if(activity == null){ return activity; } + //获取活动发奖配置 + activity.setOfflineActivityList(wxLegionActivityOfflineConfigService.getOfflineActivityList(activity)); //获取军团配置 WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); legionConfigQ.updateTenantInfo(activity); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java index 06f5eb5c1..478b3e730 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java @@ -168,16 +168,12 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco wxOfflineActivityRecord.setId(idWorker.nextId()); wxOfflineActivityRecord.setCreateDate(now); wxOfflineActivityRecord.setUpdateDate(now); - wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); +// wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); wxOfflineActivityRecordMapper.insert(wxOfflineActivityRecord); } else{ - WxOfflineActivityRecord record = wxOfflineActivityRecordMapper.selectById(wxOfflineActivityRecord.getId(),wxOfflineActivityRecord.getTenantId()); - if(!EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(record.getAuditStatus())){ - throw new MallinkException(Result.ERROR,"订单状态不允许修改"); - } - wxOfflineActivityRecord.setAuditRemark(""); - wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); +// wxOfflineActivityRecord.setAuditRemark(""); +// wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); wxOfflineActivityRecord.setUpdateDate(now); wxOfflineActivityRecordMapper.updateById(wxOfflineActivityRecord); } 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}) + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml index 4d8a93076..20b1b562d 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml @@ -8,6 +8,7 @@ + @@ -31,7 +32,7 @@ id,tenant_id,parent_tenant_id, - order_no,order_money,cus_name, + from_order_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, @@ -66,6 +67,10 @@ and `cus_phone` = #{cusPhone} + + and `from_order_id` = #{fromOrderId} + + and `order_no` like concat('%', #{orderNo},'%')