Commit e77e83f5 authored by 吴春's avatar 吴春

提交代码

parent 1e544ca5
using Mall.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Common.Enum.Reserve
{
public enum GenderEnum
{
/// <summary>
/// 保密
/// </summary>
[EnumField("保密")]
Secrecy = 0,
/// <summary>
/// 男
/// </summary>
[EnumField("男")]
Man = 1,
/// <summary>
/// 女
/// </summary>
[EnumField("女")]
Woman = 2
}
}
using Mall.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Common.Enum.Reserve
{
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用
/// </summary>
public enum ServiceTypeEnum
{
/// <summary>
/// 指定商品类型
/// </summary>
[EnumField("指定商品类型")]
Category = 1,
/// <summary>
/// 指定商品
/// </summary>
[EnumField("指定商品")]
Product = 2,
/// <summary>
/// 全场通用
/// </summary>
[EnumField("全场通用")]
All = 3,
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 预约-预约卡实体表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_Coupon
{
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
public string Name { get; set; }
public string CouponIco { get; set; }
/// <summary>
/// 领取方式设置1-领劵中心
/// </summary>
public int PickupCenter { get; set; }
/// <summary>
/// 店铺id
/// </summary>
public int SmallShopId { get; set; }
/// <summary>
/// 是否赞羊使用0-否,1-是
/// </summary>
public int IsZanYangUse { get; set; }
/// <summary>
/// 有效期类型,1-领取后N天内有效,2-时间段
/// </summary>
public IndateTypeEnum IndateType { get; set; }
/// <summary>
/// 有效天数
/// </summary>
public int IndateDay { get; set; }
/// <summary>
/// 总核销次数
/// </summary>
public int HeXiao { get; set; }
/// <summary>
/// 可发放数量,-1 无限制
/// </summary>
public int TotalNum { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Describe { get; set; }
/// <summary>
/// 领取数量
/// </summary>
public int ReceiveNum { get; set; }
/// <summary>
/// 有效期开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 有效期结束时间
/// </summary>
public DateTime? EndDate { get; set; }
/// <summary>
/// 最高抵扣金额
/// </summary>
public decimal MaxDiscountsPrice { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 预约-预约卡指定商品/分类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CouponProduct
{ /// <summary>
/// 卡劵id
/// </summary>
public int CouponId { get; set; }
/// <summary>
/// 商品/分类id
/// </summary>
public int ProductId { get; set; }
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public UseTypeEnum ServiceType { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 自动发放预约-预约卡
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CouponSelfMotion
{
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
/// <summary>
/// 触发事件,1-分享,2-购买并付款,3-新人领券
/// </summary>
public TriggerTypeEnum TriggerType { get; set; }
/// <summary>
/// 优惠券id
/// </summary>
public int DiscountCouponId { get; set; }
/// <summary>
/// 发放次数,0-无限制
/// </summary>
public int GrantNum { get; set; }
/// <summary>
/// 0-所有人,1-指定用户
/// </summary>
public int IsAll { get; set; }
}
}
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 自动发放预约-预约卡-指定会员
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CouponSelfMotionMember
{
/// <summary>
/// 自动发放id
/// </summary>
public int SelfMotionId { get; set; }
/// <summary>
/// 会员id
/// </summary>
public int UserId { get; set; }
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 预约-预约卡实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_MemberCoupon
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 用户id
/// </summary>
public int? UserId { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description
{
get;
set;
}
/// <summary>
/// 领取时间
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
/// <summary>
/// 优惠券id
/// </summary>
public int CouponId { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 总核销次数
/// </summary>
public int HeXiao { get; set; }
/// <summary>
/// 已使用核销数
/// </summary>
public int UseHeXiao { get; set; }
public DateTime? EndDate { get; set; }
/// <summary>
/// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取,4-新人购买并付款
/// </summary>
public new int GetType { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 删除
/// </summary>
public int Status { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 会员使用预约-预约卡劵实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_MemberUseCoupon
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 用户id
/// </summary>
public int? UserId { get; set; }
/// <summary>
/// 用户优惠券id
/// </summary>
public int? MemberCouponId { get; set; }
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
/// <summary>
/// 删除
/// </summary>
public int Status { get; set; }
/// <summary>
/// 使用时间
/// </summary>
public DateTime? UseDate { get; set; }
/// <summary>
/// 订单号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 使用数
/// </summary>
public int UseHeXiao { get; set; }
}
}
using Mall.Common.Enum.GuideCar;
using Mall.Common.Enum.Reserve;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 服务人员实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_ServicePersonal
{
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
/// <summary>
/// 头像
/// </summary>
public string ServiceLogo { get; set; }
public string LableName { get; set; }
/// <summary>
/// 职务
/// </summary>
public string Major { get; set; }
/// <summary>
/// 状态1上架 2下架
/// </summary>
public int ServiceStatus { get; set; }
/// <summary>
/// 关联门店
/// </summary>
public int StoreId { get; set; }
/// <summary>
/// 性别0-保密,1-男,2-女
/// </summary>
public GenderEnum Gender { get; set; }
public ServiceTypeEnum ServiceType { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string Telephone { get; set; }
/// <summary>
/// 好评率
/// </summary>
public decimal Score { get; set; }
/// <summary>
/// 虚拟预约数量
/// </summary>
public int FictitiousReserveNum
{
get;
set;
}
/// <summary>
/// 从业年限
/// </summary>
public decimal WorkYears { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Common.Enum.Reserve;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 服务人员指定商品/分类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_ServicePersonalProduct
{ /// <summary>
/// 服务id
/// </summary>
public int ServiceId { get; set; }
/// <summary>
/// 商品/分类id
/// </summary>
public int ProductId { get; set; }
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public ServiceTypeEnum ServiceType { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.Goods;
using Mall.Common.Enum.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Reserve
{
/// <summary>
/// 服务人员排版
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_ServiceTargetDate
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 服务人员id
/// </summary>
public int ServiceId
{
get;
set;
}
/// <summary>
/// 可预定日期
/// </summary>
public DateTime? Date { get; set; }
/// <summary>
/// 是否可以预定 1是 2否
/// </summary>
public int IsReserve { get; set; }
}
}
using VT.FW.DB;
using System;
using Mall.Model.Entity.Education;
using Mall.Model.Entity.Reserve;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 自动发放优惠券-指定会员扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CSelfMotionMember_Extend : RB_Reserve_CouponSelfMotionMember
{
/// <summary>
/// 会员名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 会员头像
/// </summary>
public string Photo { get; set; }
}
}
using VT.FW.DB;
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Education;
using Mall.Model.Entity.Reserve;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 自动发放优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CSelfMotion_Extend : RB_Reserve_CouponSelfMotion
{
public List<RB_Reserve_CSelfMotionMember_Extend> UserList { get; set; }
/// <summary>
/// 优惠券名字
/// </summary>
public string DiscountCouponName { get; set; }
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Entity.Reserve;
using System;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 教育-课程卡关联的商品/分类扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CouponProduct_Extend : RB_Reserve_CouponProduct
{
/// <summary>
/// 关联信息(商品图片/分类名称)
/// </summary>
public string Relevance { get; set; }
/// <summary>
/// 商品价格(下单获取优惠券)
/// </summary>
public decimal GoodsPrice { get; set; }
/// <summary>
/// 商品分类id
/// </summary>
public int[] GoodsClassId { get; set; }
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 课程卡扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_Coupon_Extend : RB_Reserve_Coupon
{
/// <summary>
/// 商品/分类id
/// </summary>
public List<RB_Reserve_CouponProduct_Extend> ProductList { get; set; }
/// <summary>
/// 发放优惠券的时候会员ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 0-未领取 >0已领取
/// </summary>
public int MemberNum { get; set; }
/// <summary>
/// 发放数量
/// </summary>
public int GrantNum { get; set; }
/// <summary>
/// 触发事件,1-分享,2-购买并付款,3-新人领券
/// </summary>
public int TriggerType { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 会员等级
/// </summary>
public int[] MemberLevelList { get; set; }
/// <summary>
/// 订单号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 发放优惠券的时候会员id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 使用状态 0-未使用,1:已使用,2:已过期
/// </summary>
public int UseState { get; set; }
/// <summary>
/// 已使用核销数
/// </summary>
public int UseHeXiao { get; set; }
/// <summary>
/// 会员优惠券id
/// </summary>
public int MemberCouponId { get; set; }
/// <summary>
/// 商品
/// </summary>
public int[] GoodsIds { get; set; }
/// <summary>
/// 分类
/// </summary>
public int[] CategoryIds { get; set; }
/// <summary>
/// 领劵中心领取
/// </summary>
public new int GetType { get; set; }
/// <summary>
/// 微店名称
/// </summary>
public string SmallShopName { get; set; }
public DateTime? RegisterDate { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using Mall.Common.Enum.User;
using Mall.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Reserve;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 会员优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_MemberCoupon_Extend : RB_Reserve_MemberCoupon
{
public int PlatformType { get; set; }
public string CouponIco { get; set; }
/// <summary>
/// 下单时间
/// </summary>
public DateTime? OrderCreateDate { get; set; }
/// <summary>
/// 使用时间列表
/// </summary>
public List<RB_Reserve_MemberUseCoupon> MemberUseCouponList { get; set; }
/// <summary>
/// 会员昵称
/// </summary>
public string AliasName { get; set; }
/// <summary>
/// 头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 用户优惠券id
/// </summary>
public string Ids { get; set; }
}
}
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.Reserve
{
public class RB_Reserve_ServicePersonalProduct_Extend: RB_Reserve_ServicePersonalProduct
{
/// <summary>
/// 关联信息(商品图片/分类名称)
/// </summary>
public string Relevance { get; set; }
/// <summary>
/// 商品价格(下单获取优惠券)
/// </summary>
public decimal GoodsPrice { get; set; }
/// <summary>
/// 商品分类id
/// </summary>
public int[] GoodsClassId { get; set; }
}
}
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 服务人员扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_ServicePersonal_Extend : RB_Reserve_ServicePersonal
{
/// <summary>
/// 标签
/// </summary>
public List<string> LableNameList { get; set; }
/// <summary>
/// 预约数
/// </summary>
public int OrderNum { get; set; }
/// <summary>
/// 订单人数
/// </summary>
public int OrderGuestNum { get; set; }
/// <summary>
/// 商品分类id
/// </summary>
public int[] GoodsClassId { get; set; }
/// <summary>
/// 店铺名称
/// </summary>
public string StoreName { get; set; }
/// <summary>
/// 可预约时间
/// </summary>
public List<RB_Reserve_ServiceTargetDate> ServiceTargetDateList { get; set; }
/// <summary>
/// 商品/分类id
/// </summary>
public List<RB_Reserve_ServicePersonalProduct_Extend> ProductList { get; set; }
}
}
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 服务人员排班
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_ServiceTargetDate_Extend : RB_Reserve_ServiceTargetDate
{
/// <summary>
/// 服务人员ids
/// </summary>
public string ServiceIds { get; set; }
/// <summary>
/// 日期
/// </summary>
public string DateTime { get; set; }
/// <summary>
/// 月份
/// </summary>
public string Month { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndTime { get; set; }
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Mall.Repository\Mall.Repository.csproj" />
</ItemGroup>
</Project>
using Mall.Common.Plugin;
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using Mall.Repository.Reserve;
using Mall.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
namespace Mall.Module.Reserve
{
public class ReserveModule
{
/// <summary>
/// 小程序
/// </summary>
private readonly RB_MiniProgramRepository miniProgramRepository = new RB_MiniProgramRepository();
#region 套餐卡
private readonly RB_Reserve_CouponRepository discountCouponRepository = new RB_Reserve_CouponRepository();
private readonly RB_Reserve_CouponProductRepository productRepository = new RB_Reserve_CouponProductRepository();
private readonly RB_Reserve_MemberUseCouponRepository memberUseCouponRepository = new RB_Reserve_MemberUseCouponRepository();
private readonly RB_Reserve_MemberCouponRepository memberCouponRepository = new RB_Reserve_MemberCouponRepository();
private readonly RB_Reserve_CouponSelfMotionMemberRepository selfMotionMemberRepository = new RB_Reserve_CouponSelfMotionMemberRepository();
private readonly RB_Reserve_CouponSelfMotionRepository selfMotionRepository = new RB_Reserve_CouponSelfMotionRepository();
#endregion
#region 服务人员
private readonly RB_Reserve_ServicePersonalProductRepository servicePersonalProductRepository = new RB_Reserve_ServicePersonalProductRepository();
private readonly RB_Reserve_ServicePersonalRepository servicePersonalRepository = new RB_Reserve_ServicePersonalRepository();
private readonly RB_Reserve_ServiceTargetDateRepository serviceTargetDateRepository = new RB_Reserve_ServiceTargetDateRepository();
#endregion
#region 服务人员信息
/// <summary>
/// 套餐卡信息列表 订单数和商品数还未关联
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonal_Extend> GetServicePersonalPageList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_ServicePersonal_Extend query)
{
var list = servicePersonalRepository.GetServicePersonalPageList(pageIndex, pageSize, out rowCount, query);
//if (list != null && list.Any())
//{
// string Ids = string.Join(",", list.Where(x => x.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Category || x.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Product).Select(x => x.ID));
// var listProduct = servicePersonalProductRepository.GetListByServicePersonalProductIds(query, Ids);
// foreach (var item in list)
// {
// item.ProductList = new List<RB_Reserve_ServicePersonalProduct_Extend>();
// item.ProductList = listProduct.Where(x => x.ServiceId == item.ID).ToList();
// }
//}
return list;
}
/// <summary>
/// 服务人员信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonal_Extend> GetServicePersonalList(RB_Reserve_ServicePersonal_Extend query, bool IsSelectDel = false)
{
var list = servicePersonalRepository.GetServicePersonalList(query, IsSelectDel);
if (list != null && list.Any())
{
string Ids = string.Join(",", list.Where(x => x.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Category || x.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Product).Select(x => x.ID));
var listProduct = servicePersonalProductRepository.GetListByServicePersonalProductIds(query, Ids);
foreach (var item in list)
{
item.ProductList = new List<RB_Reserve_ServicePersonalProduct_Extend>();
item.ProductList = listProduct.Where(x => x.ServiceId == item.ID).ToList();
}
}
return list;
}
/// <summary>
/// 新增/修改服务人员
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateServicePersonal(RB_Reserve_ServicePersonal_Extend model)
{
bool flag = false;
var trans = servicePersonalRepository.DbTransaction;
try
{
int id = 0;
if (model.ID == 0)
{
id = servicePersonalRepository.Insert(model, trans);
if (id > 0 && model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.ServiceType = model.ServiceType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.ServiceId = id);
flag = servicePersonalProductRepository.InsertBatch(model.ProductList, trans);
}
flag = id > 0;
}
else
{
id = model.ID;
flag = servicePersonalRepository.Update(model, trans);
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_ServicePersonalProduct.Status),1},
{ nameof(RB_Reserve_ServicePersonalProduct.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Reserve_ServicePersonalProduct.ServiceId),FiledValue=id,OperatorEnum=OperatorEnum.Equal}
};
servicePersonalProductRepository.Update(fileds, whereHelpers, trans);
if (model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.ServiceType = model.ServiceType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.ServiceId = id);
flag = servicePersonalProductRepository.InsertBatch(model.ProductList, trans);
}
}
servicePersonalRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "AddOrUpdateServicePersonal");
servicePersonalRepository.DBSession.Rollback("AddOrUpdateServicePersonal");
return false;
}
return flag;
}
/// <summary>
/// 批量启用/禁用服务人员
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool EnableServicePersonalInfo(List<string> ids, int TeacherStatus, int uid, int mallBaseId)
{
var trans = servicePersonalRepository.DbTransaction;
bool flag = false;
try
{
foreach (var item in ids)
{
if (!string.IsNullOrWhiteSpace(item))
{
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_ServicePersonal.ServiceStatus),TeacherStatus},
{ nameof(RB_Reserve_ServicePersonal.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_ServicePersonal.ID),
FiledValue=Convert.ToInt32(item),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_ServicePersonal.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_ServicePersonal.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = servicePersonalRepository.Update(cols, wheres1, trans);
}
}
servicePersonalRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "EnableServicePersonalInfo");
servicePersonalRepository.DBSession.Rollback("EnableServicePersonalInfo");
return false;
}
return flag;
}
#endregion
#region 套餐卡
/// <summary>
/// 套餐卡信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetDiscountCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_Coupon_Extend query)
{
return discountCouponRepository.GetDiscountCouponPageList(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 套餐卡信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetDiscountCouponList(RB_Reserve_Coupon_Extend query)
{
var list = discountCouponRepository.GetDiscountCouponList(query);
if (list != null && list.Any())
{
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category || x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list)
{
item.ProductList = new List<RB_Reserve_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
/// <summary>
/// 套餐卡信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetAllDiscountCouponList(RB_Reserve_Coupon_Extend query)
{
return discountCouponRepository.GetDiscountCouponList(query);
}
/// <summary>
/// 新增/修改套餐卡
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateDiscountCoupon(RB_Reserve_Coupon_Extend model)
{
bool flag = false;
var trans = discountCouponRepository.DbTransaction;
try
{
int id = 0;
if (model.ID == 0)
{
id = discountCouponRepository.Insert(model, trans);
if (id > 0 && model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.ServiceType = model.UseType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.CouponId = id);
flag = productRepository.InsertBatch(model.ProductList, trans);
}
flag = id > 0;
}
else
{
id = model.ID;
flag = discountCouponRepository.Update(model, trans);
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_CouponProduct.Status),1},
{ nameof(RB_Reserve_CouponProduct.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Reserve_CouponProduct.CouponId),FiledValue=id,OperatorEnum=OperatorEnum.Equal}
};
productRepository.Update(fileds, whereHelpers, trans);
if (model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.ServiceType = model.UseType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.CouponId = id);
flag = productRepository.InsertBatch(model.ProductList, trans);
}
}
discountCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "AddOrUpdateDiscountCoupon");
discountCouponRepository.DBSession.Rollback("AddOrUpdateDiscountCoupon");
return false;
}
return flag;
}
/// <summary>
/// 删除套餐卡
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelDiscountCoupon(int id, int uid, int mallBaseId)
{
var trans = discountCouponRepository.DbTransaction;
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_Coupon.Status),1},
{ nameof(RB_Reserve_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_Coupon.Status),1},
{ nameof(RB_Reserve_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponProduct.CouponId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponProduct.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponProduct.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
productRepository.Update(cols, wheres);
discountCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountCoupon");
discountCouponRepository.DBSession.Rollback("DelDiscountCoupon");
return false;
}
return flag;
}
/// <summary>
/// 删除会员套餐卡
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelMemberCoupon(int id, int uid, int mallBaseId)
{
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_MemberCoupon.Status),1},
{ nameof(RB_Reserve_MemberCoupon.Remarks),System.DateTime.Now+"删除"},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_MemberCoupon.Id),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_MemberCoupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_MemberCoupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = memberCouponRepository.Update(cols1, wheres1);
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelMemberCoupon");
return false;
}
return flag;
}
/// <summary>
/// 领劵中心
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool UpdatePickupType(int id, int uid, int mallBaseId)
{
try
{
var model = discountCouponRepository.GetEntity(id);
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_Coupon.PickupCenter),model.PickupCenter==0?1:0},
{ nameof(RB_Reserve_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
return discountCouponRepository.Update(cols1, wheres1);
}
catch (Exception ex)
{
LogHelper.Write(ex, "UpdatePickupType");
return false;
}
}
/// <summary>
/// 发放套餐卡
/// </summary>
/// <param name="list"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool GrantCoupon(List<RB_Reserve_MemberCoupon_Extend> list, RB_Reserve_Coupon_Extend model)
{
var trans = memberCouponRepository.DbTransaction;
bool flag;
try
{
flag = memberCouponRepository.InsertBatch(list, trans);
if (model != null && flag)
{
Dictionary<string, object> cols1;
if (model.TotalNum != -1)
{
cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_Coupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_Reserve_Coupon.TotalNum),model.TotalNum - list.Count()},
{ nameof(RB_Reserve_Coupon.UpdateDate),DateTime.Now},
};
}
else
{
cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_Coupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_Reserve_Coupon.UpdateDate),DateTime.Now},
};
}
List<WhereHelper> wheres1 = new List<WhereHelper>()
{
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.ID),
FiledValue=model.ID,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.TenantId),
FiledValue=model.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_Coupon.MallBaseId),
FiledValue=model.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1, trans);
}
memberCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "GrantCoupon");
memberCouponRepository.DBSession.Rollback("GrantCoupon");
return false;
}
return flag;
}
/// <summary>
/// 根据用户id和商品分类以及商品id获取未使用的套餐卡信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetNoUseCouponList(RB_Reserve_Coupon_Extend query)
{
var list = discountCouponRepository.GetNoUseCouponList(query);
//获取特定商品或者分类的数据
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Category;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
item.ProductList = new List<RB_Reserve_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_Reserve_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
#endregion
#region 自动发放套餐卡规则
/// <summary>
/// 自动发放套餐卡规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Reserve_CSelfMotion_Extend query)
{
return selfMotionRepository.GetSelfMotionPageLis(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 自动发放套餐卡规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotion_Extend> GettRepositoryList(RB_Reserve_CSelfMotion_Extend query)
{
var list = selfMotionRepository.GettRepositoryList(query);
return list;
}
/// <summary>
/// 获取发放套餐卡的人员信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotionMember_Extend> GetSelfMotionMemberList(RB_Reserve_CSelfMotionMember_Extend query)
{
return selfMotionMemberRepository.GetListRepository(query);
}
/// <summary>
/// 新增/修改自动发放套餐卡
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateSelfMotion(RB_Reserve_CSelfMotion_Extend model)
{
bool flag = false;
var trans = selfMotionRepository.DbTransaction;
try
{
int id = 0;
if (model.ID == 0)
{
id = selfMotionRepository.Insert(model, trans);
if (id > 0 && model.UserList != null && model.UserList.Any())
{
model.UserList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.UserList.ForEach(x => x.TenantId = model.TenantId);
model.UserList.ForEach(x => x.CreateDate = model.CreateDate);
model.UserList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.UserList.ForEach(x => x.SelfMotionId = id);
flag = selfMotionMemberRepository.InsertBatch(model.UserList, trans);
}
flag = id > 0;
}
else
{
id = model.ID;
flag = selfMotionRepository.Update(model, trans);
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_CouponSelfMotionMember.Status),1},
{ nameof(RB_Reserve_CouponSelfMotionMember.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Reserve_CouponSelfMotionMember.SelfMotionId),FiledValue=model.ID,OperatorEnum=OperatorEnum.Equal},
new WhereHelper (){ FiledName=nameof(RB_Reserve_CouponSelfMotionMember.MallBaseId),FiledValue=model.MallBaseId,OperatorEnum=OperatorEnum.Equal},
new WhereHelper (){ FiledName=nameof(RB_Reserve_CouponSelfMotionMember.TenantId),FiledValue=model.TenantId,OperatorEnum=OperatorEnum.Equal}
};
selfMotionMemberRepository.Update(fileds, whereHelpers, trans);
if (model.UserList != null && model.UserList.Any())
{
model.UserList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.UserList.ForEach(x => x.TenantId = model.TenantId);
model.UserList.ForEach(x => x.CreateDate = model.CreateDate);
model.UserList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.UserList.ForEach(x => x.SelfMotionId = id);
flag = selfMotionMemberRepository.InsertBatch(model.UserList, trans);
}
}
selfMotionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "AddOrUpdateSelfMotion");
selfMotionRepository.DBSession.Rollback("AddOrUpdateSelfMotion");
return false;
}
return flag;
}
/// <summary>
/// 删除自动发放套餐卡
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelDiscountSelfMotion(int id, int uid, int mallBaseId)
{
var trans = selfMotionRepository.DbTransaction;
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_CouponSelfMotion.Status),1},
{ nameof(RB_Reserve_CouponSelfMotion.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotion.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotion.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotion.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = selfMotionRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Reserve_CouponSelfMotionMember.Status),1},
{ nameof(RB_Reserve_CouponSelfMotionMember.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotionMember.SelfMotionId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotionMember.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Reserve_CouponSelfMotionMember.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
selfMotionMemberRepository.Update(cols, wheres);
selfMotionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountSelfMotion");
selfMotionRepository.DBSession.Rollback("DelDiscountSelfMotion");
return false;
}
return flag;
}
#endregion
#region 会员套餐卡
/// <summary>
/// 我的套餐卡
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_Coupon_Extend query)
{
var list = discountCouponRepository.GetMemberDisCouponList(pageIndex, pageSize, out rowCount, query);
//获取特定商品或者分类的数据
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Category;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
item.ProductList = new List<RB_Reserve_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_Reserve_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
#endregion
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.Reserve;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_CouponProductRepository : BaseRepository<RB_Reserve_CouponProduct>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_CouponProduct); } }
/// <summary>
/// 表名称
/// </summary>
public string PCategoryTableName { get { return nameof(Model.Entity.Product.RB_Product_Category); } }
/// <summary>
/// 表名称
/// </summary>
public string GoodsTableName { get { return nameof(Model.Entity.Product.RB_Goods); } }
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CouponProduct> GetCouponProductList(RB_Reserve_CouponProduct query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Reserve_CouponProduct.Status)}=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CouponProduct.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CouponProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CouponProduct.MallBaseId)}={query.MallBaseId}");
}
if (query.CouponId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CouponProduct.CouponId)}={query.CouponId}");
}
}
return Get<RB_Reserve_CouponProduct>(builder.ToString()).ToList();
}
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CouponProduct_Extend> GetListByDiscountCouponIds(RB_Reserve_Coupon query, string DiscountCouponIds,bool IsSelectDel =false)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CouponProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CouponProduct.MallBaseId)}={query.MallBaseId}");
}
}
if (!string.IsNullOrWhiteSpace(DiscountCouponIds))
{
builder.Append($" AND a.{nameof(RB_Reserve_CouponProduct.CouponId)} in ({DiscountCouponIds})");
}
string sql = "";
if (IsSelectDel)
{
sql = $"SELECT a.* from {TableName} as a WHERE 1=1 ";
}
else {
sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_Reserve_CouponProduct.Status)}=0 {builder.ToString()} ";
}
if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Reserve_CouponProduct.Status)}=0 {builder.ToString()} ";
}
else if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {GoodsTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Reserve_CouponProduct.Status)}=0 {builder.ToString()} ";
}
return Get<RB_Reserve_CouponProduct_Extend>(sql).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Entity.User;
using Mall.Model.Extend.Reserve;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_CouponRepository : BaseRepository<RB_Reserve_Coupon>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_Coupon); } }
#region 基础信息
/// <summary>
/// 表名称
/// </summary>
public string discountCouponTableName { get { return nameof(RB_Reserve_MemberCoupon); } }
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetDiscountCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_Coupon_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT a.*,b.`Name` as SmallShopName FROM {TableName} as A LEFT JOIN rb_smallshops_info as b on a.SmallShopId=b.Id WHERE a.{nameof(RB_Reserve_Coupon_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.Name)} like '%{query.Name}%'");
}
}
builder.Append($" order by a.{nameof(RB_Reserve_Coupon_Extend.ID)} desc");
return GetPage<RB_Reserve_Coupon_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetDiscountCouponList(RB_Reserve_Coupon_Extend query, bool IsSelectDel = false)
{
StringBuilder builder = new StringBuilder();
if (IsSelectDel)
{
builder.Append($" SELECT * FROM {TableName} WHERE 1=1 ");
}
else
{
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Reserve_Coupon_Extend.Status)}=0 ");
}
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_Coupon_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Reserve_Coupon_Extend.Name)} like '%{query.Name}%'");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND {nameof(RB_Reserve_Coupon_Extend.ID)} in({query.CouponIds})");
}
}
return Get<RB_Reserve_Coupon_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据用户id和商品分类以及商品id获取未使用的优惠券信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetNoUseCouponList(RB_Reserve_Coupon_Extend query)
{
string where = $" and a.StartDate<NOW() and a.EndDate>NOW() AND (a.{nameof(RB_Reserve_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Reserve_MemberCoupon_Extend.UseHeXiao)})>0 ";
string goodsClassWhere = "";//分类
string goodsWhere = "";//商品
string allWhere = "";//通用
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND b.{nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND b.{nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Reserve_Coupon_Extend.UserId)}={query.UserId}";
}
if (query.ProductList != null && query.ProductList.Any())
{
List<int> allGoodsClass = new List<int>();
foreach (var item in query.ProductList)
{
if (!string.IsNullOrWhiteSpace(goodsWhere))
{
goodsWhere += $" or (c.ProductId = {item.ProductId} and (b.MaxDiscountsPrice>= {item.GoodsPrice} or b.MaxDiscountsPrice= 0)) ";
}
else
{
goodsWhere += $" (c.ProductId = {item.ProductId} and (b.MaxDiscountsPrice>= {item.GoodsPrice} or b.MaxDiscountsPrice= 0)) ";
}
allGoodsClass.AddRange(item.GoodsClassId.ToList());
}
goodsWhere = " and (" + goodsWhere + ")";
//分类
var goodsClassList = allGoodsClass.GroupBy(x => x);
foreach (var item in goodsClassList)
{
decimal nowPrice = 0;
foreach (var classItem in query.ProductList)
{
if (classItem.GoodsClassId.Any(x => x == item.Key))
{
nowPrice += classItem.GoodsPrice;
}
}
if (!string.IsNullOrWhiteSpace(goodsClassWhere))
{
goodsClassWhere += $" or (c.ProductId = {item.Key} and (b.MaxDiscountsPrice>= {nowPrice} or b.MaxDiscountsPrice= 0)) ";
}
else
{
goodsClassWhere += $" (c.ProductId = {item.Key} and (b.MaxDiscountsPrice>= {nowPrice} or b.MaxDiscountsPrice= 0)) ";
}
}
goodsClassWhere = " and (" + goodsClassWhere + ")";
decimal allPrice = query.ProductList.Sum(x => x.GoodsPrice);
allWhere = $" and (b.MaxDiscountsPrice>= {allPrice} or b.MaxDiscountsPrice= 0) ";
}
}
string sql = @$" SELECT a.ID as MemberCouponId,a.UserId,a.HeXiao,a.UseHeXiao,b.`Name`,b.UseType,b.MaxDiscountsPrice,b.`Describe`,b.CouponIco,a.StartDate,a.EndDate,b.ID from RB_Reserve_MemberCoupon as a
LEFT JOIN RB_Reserve_Coupon as b on a.CouponId=b.ID
LEFT JOIN RB_Reserve_CouponProduct as c on c.CouponId=b.ID
where b.UseType=1 and c.`Status`=0 {where} {goodsClassWhere}
UNION ALL
SELECT a.ID as MemberCouponId,a.UserId,a.HeXiao,a.UseHeXiao,b.`Name`,b.UseType,b.MaxDiscountsPrice,b.`Describe`,b.CouponIco,a.StartDate,a.EndDate,b.ID from RB_Reserve_MemberCoupon as a
LEFT JOIN RB_Reserve_Coupon as b on a.CouponId=b.ID
LEFT JOIN RB_Reserve_CouponProduct as c on c.CouponId=b.ID
where b.UseType=2 and c.`Status`=0 {where} {goodsWhere}
UNION all
SELECT a.ID as MemberCouponId,a.UserId,a.HeXiao,a.UseHeXiao,b.`Name`,b.UseType,b.MaxDiscountsPrice,b.`Describe`,b.CouponIco,a.StartDate,a.EndDate,b.ID from RB_Reserve_MemberCoupon as a
LEFT JOIN RB_Reserve_Coupon as b on a.CouponId=b.ID
where b.UseType=3 {where} {allWhere}";
return Get<RB_Reserve_Coupon_Extend>(sql).ToList();
}
#endregion
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_Coupon_Extend query)
{
string where = " where a.`Status`=0 and a.PickupCenter=1";
string userWhere = "";//分类
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}";
userWhere += $" AND {nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
userWhere += $" AND {nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
userWhere += $" AND {nameof(RB_Reserve_Coupon_Extend.UserId)}={query.UserId}";
}
if (query.SmallShopId > 0)
{
where += $" AND ( a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}={query.SmallShopId} or ( a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}=0 and a.{nameof(RB_Reserve_Coupon_Extend.IsZanYangUse)}=0))";
}
else
{
where += $" AND a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}=0";
}
}
string sql = @$" SELECT t.*,c.MemberNum from (SELECT a.ID,a.`Name`,a.`Describe`,a.UseType,a.StartDate,a.EndDate,a.CouponIco,a.IndateDay,a.IndateType,a.TotalNum from {TableName} as a
{where} and a.IndateType=1
UNION ALL
SELECT a.ID,a.`Name`,a.`Describe`,a.UseType,a.StartDate,a.EndDate,a.CouponIco,a.IndateDay,a.IndateType,a.TotalNum from {TableName} as a
{where} and a.IndateType=2 and a.EndDate>NOW() )
as t LEFT JOIN (SELECT CouponId,COUNT(*) as MemberNum from RB_Reserve_MemberCoupon where `Status`=0 {userWhere} GROUP BY CouponId) as c on t.ID=c.CouponId ";
return GetPage<RB_Reserve_Coupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_Coupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_Coupon_Extend query)
{
string where = " where a.`Status`=0 and b.Status=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon.TenantId)}={query.TenantId}";
where += $" AND b.{nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon.MallBaseId)}={query.MallBaseId}";
where += $" AND b.{nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon.UserId)}={query.UserId}";
}
if (query.StartDate.HasValue)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon.CreateDate)}>='{query.StartDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
if (query.EndDate.HasValue)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon.CreateDate)}<='{query.EndDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
if (query.UseState == 0)
{
where += $" AND (a.{nameof(RB_Reserve_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Reserve_MemberCoupon_Extend.UseHeXiao)})>0 AND a.{nameof(RB_Reserve_MemberCoupon_Extend.EndDate)}> NOW()";
}
else if (query.UseState == 1)
{
where += $" AND (a.{nameof(RB_Reserve_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Reserve_MemberCoupon_Extend.UseHeXiao)})=0";
}
else if (query.UseState == 2)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.EndDate)}<NOW() AND (a.{nameof(RB_Reserve_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Reserve_MemberCoupon_Extend.UseHeXiao)})>0";
}
}
string sql = @$" SELECT a.ID as MemberCouponId,a.StartDate,a.EndDate,a.HeXiao,a.UseHeXiao,b.ID,b.`Name`,b.`Describe`,b.CouponIco,b.UseType,a.GetType,a.CreateDate,
b.IndateDay,b.IndateType from RB_Reserve_MemberCoupon as a LEFT JOIN {TableName} as b
on a.CouponId=b.ID {where} ";
return GetPage<RB_Reserve_Coupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
#endregion
#region 自动发放优惠券信息
public List<RB_Reserve_Coupon_Extend> GetSelfmotionCouponList(RB_Reserve_Coupon_Extend query)
{
StringBuilder builder = new StringBuilder();
string userWhere = "";
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.TriggerType > 0)
{
builder.Append($" AND b.{nameof(RB_Reserve_Coupon_Extend.TriggerType)}={query.TriggerType}");
}
if (query.UserId > 0)
{
userWhere += $"and c.UserId={query.UserId}";
}
if (query.SmallShopId > 0)
{
builder.Append($" AND ( a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}={query.SmallShopId} or (a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}=0 and a.{nameof(RB_Reserve_Coupon_Extend.IsZanYangUse)}=0))");
}
else
{
builder.Append($" AND a.{nameof(RB_Reserve_Coupon_Extend.SmallShopId)}=0");
}
}
string sql = @$"SELECT a.*,b.TriggerType,b.GrantNum from rb_Reserve_couponselfmotion as b LEFT JOIN {TableName} as a on a.ID=b.DiscountCouponId
where (a.IndateType=1 or (a.IndateType=2 and a.EndDate>NOW()))
and a.`Status`=0 and b.`Status`=0 and IsAll=0 {builder.ToString()}
UNION ALL
SELECT a.*,b.TriggerType,b.GrantNum from rb_Reserve_couponselfmotion as b LEFT JOIN {TableName} as a on a.ID=b.DiscountCouponId
LEFT JOIN rb_Reserve_couponselfmotionmember as c on c.SelfMotionId=b.ID
where (a.IndateType=1 or (a.IndateType=2 and a.EndDate>NOW())) {builder.ToString()}
and a.`Status`=0 and b.`Status`=0 and IsAll=1 {userWhere} ";
return Get<RB_Reserve_Coupon_Extend>(sql).ToList();
}
#endregion
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Entity.User;
using Mall.Model.Extend.Reserve;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_CouponSelfMotionMemberRepository : BaseRepository<RB_Reserve_CouponSelfMotionMember>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_CouponSelfMotionMember); } }
// <summary>
/// 表名称
/// </summary>
public string UserTableName { get { return nameof(RB_Member_User); } }
/// <summary>
/// 获取发放优惠券的人员信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotionMember_Extend> GetListRepository(RB_Reserve_CSelfMotionMember_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" SELECT a.*,b.`Name`,b.Photo FROM {TableName} as a
LEFT JOIN {UserTableName} as b on a.UserId = b.ID WHERE a.{nameof(RB_Reserve_CSelfMotionMember_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotionMember_Extend.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotionMember_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.SelfMotionId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotionMember_Extend.SelfMotionId)}={query.SelfMotionId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotionMember_Extend.UserId)}={query.UserId}");
}
//if (!string.IsNullOrWhiteSpace(query.PriceIds))
//{
// builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotionMember_Extend.RulesPriceId)} in ({query.PriceIds})");
//}
}
return Get<RB_Reserve_CSelfMotionMember_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_CouponSelfMotionRepository:BaseRepository<RB_Reserve_CouponSelfMotion>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_CouponSelfMotion); } }
/// <summary>
/// 表名称
/// </summary>
public string discountCouponTableName { get { return nameof(RB_Reserve_Coupon); } }
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Reserve_CSelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" SELECT a.*,b.`Name` as DiscountCouponName from {TableName} as a LEFT JOIN {discountCouponTableName} as b
on a.DiscountCouponId = b.ID WHERE a.{nameof(RB_Reserve_CSelfMotion_Extend.Status)}=0");
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CSelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
return GetPage<RB_Reserve_CSelfMotion_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CSelfMotion_Extend> GettRepositoryList(RB_Reserve_CSelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Reserve_CSelfMotion_Extend.Status)}=0 ");
if (query != null)
{
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CSelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CSelfMotion_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CSelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CSelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
}
return Get<RB_Reserve_CSelfMotion_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_MemberCouponRepository : BaseRepository<RB_Reserve_MemberCoupon>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_MemberCoupon); } }
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Reserve_MemberCoupon_Extend> GetList(RB_Reserve_MemberCoupon_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" and a.`Status`=0 ");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.PlatformType > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.PlatformType)}={query.PlatformType}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.UserId)}={query.UserId}");
}
if (query.CouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.CouponId)}={query.CouponId}");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.CouponId)} in ({query.CouponIds})");
}
if (!string.IsNullOrEmpty(query.Ids))
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.Id)} in ({query.Ids})");
}
//if (query.UseState >= 0)
//{
// builder.Append($" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState}");
//}
}
string sql = @$" select * FROM {TableName} AS a where 1=1 {builder.ToString()} ";
return Get<RB_Reserve_MemberCoupon_Extend>(sql).ToList();
}
/// <summary>
/// 自动发放优惠券信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_MemberCoupon_Extend> GetAutoMemberCouponPageList(RB_Reserve_MemberCoupon_Extend query)
{
string where = " where a.`Status`=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.UserId)}={query.UserId}";
}
if (query.GetType > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCoupon_Extend.GetType)}={query.GetType}";
}
}
string sql = @$" SELECT a.* from rb_Reserve_membercoupon as a {where} ";
return Get<RB_Reserve_MemberCoupon_Extend>(sql).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_MemberUseCouponRepository:BaseRepository<RB_Reserve_MemberUseCoupon>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_MemberUseCoupon); } }
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Reserve_MemberUseCoupon> GetList(RB_Reserve_MemberUseCoupon query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberUseCoupon.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberUseCoupon.MallBaseId)}={query.MallBaseId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberUseCoupon.UserId)}={query.UserId}");
}
if (query.MemberCouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberUseCoupon.MemberCouponId)}={query.MemberCouponId}");
}
if (query.OrderId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberUseCoupon.OrderId)}={query.OrderId}");
}
}
string sql = @$" select * FROM {TableName} AS a where 1=1 and a.Status=0 {builder.ToString()} ";
return Get<RB_Reserve_MemberUseCoupon>(sql).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_ServicePersonalProductRepository:BaseRepository<RB_Reserve_ServicePersonalProduct>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_ServicePersonalProduct); } }
/// <summary>
/// 表名称
/// </summary>
public string PCategoryTableName { get { return nameof(Model.Entity.Product.RB_Product_Category); } }
/// <summary>
/// 表名称
/// </summary>
public string GoodsTableName { get { return nameof(Model.Entity.Product.RB_Goods); } }
/// <summary>
/// 服务人员对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonalProduct> GetServicePersonalProductList(RB_Reserve_ServicePersonalProduct query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Reserve_ServicePersonalProduct.Status)}=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonalProduct.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonalProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonalProduct.MallBaseId)}={query.MallBaseId}");
}
if (query.ServiceId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonalProduct.ServiceId)}={query.ServiceId}");
}
}
return Get<RB_Reserve_ServicePersonalProduct>(builder.ToString()).ToList();
}
/// <summary>
/// 服务人员对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonalProduct_Extend> GetListByServicePersonalProductIds(RB_Reserve_ServicePersonal_Extend query, string ServiceIds, bool IsSelectDel = false)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonalProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonalProduct.MallBaseId)}={query.MallBaseId}");
}
}
if (!string.IsNullOrWhiteSpace(ServiceIds))
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonalProduct.ServiceId)} in ({ServiceIds})");
}
string sql = "";
if (IsSelectDel)
{
sql = $"SELECT a.* from {TableName} as a WHERE 1=1 ";
}
else
{
sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_Reserve_ServicePersonalProduct.Status)}=0 {builder.ToString()} ";
}
if (query.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Category)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Reserve_ServicePersonalProduct.Status)}=0 {builder.ToString()} ";
}
else if (query.ServiceType == Common.Enum.Reserve.ServiceTypeEnum.Product)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {GoodsTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Reserve_ServicePersonalProduct.Status)}=0 {builder.ToString()} ";
}
return Get<RB_Reserve_ServicePersonalProduct_Extend>(sql).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_ServicePersonalRepository:BaseRepository<RB_Reserve_ServicePersonal>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_ServicePersonal); } }
/// <summary>
///服务人员信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonal_Extend> GetServicePersonalPageList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_ServicePersonal_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT a.*,b.`Name` as StoreName FROM {TableName} as A LEFT JOIN rb_stores as b on a.StoreId=b.Id WHERE a.{nameof(RB_Reserve_ServicePersonal_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonal_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonal_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND a.{nameof(RB_Reserve_ServicePersonal_Extend.Name)} like '%{query.Name}%'");
}
}
builder.Append($" order by a.{nameof(RB_Reserve_ServicePersonal_Extend.ID)} desc");
return GetPage<RB_Reserve_ServicePersonal_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 服务人员信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServicePersonal_Extend> GetServicePersonalList(RB_Reserve_ServicePersonal_Extend query, bool IsSelectDel = false)
{
StringBuilder builder = new StringBuilder();
if (IsSelectDel)
{
builder.Append($" SELECT * FROM {TableName} WHERE 1=1 ");
}
else
{
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Reserve_ServicePersonal_Extend.Status)}=0 ");
}
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonal_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonal_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonal_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Reserve_ServicePersonal_Extend.Name)} like '%{query.Name}%'");
}
}
return Get<RB_Reserve_ServicePersonal_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_ServiceTargetDateRepository : BaseRepository<RB_Reserve_ServiceTargetDate>
{
/// <summary>
/// 列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_ServiceTargetDate_Extend> GetList(RB_Reserve_ServiceTargetDate_Extend dmodel)
{
string where = $" 1=1 and Date >= '{DateTime.Now.ToString("yyyy-MM-dd")}'";
if (dmodel.Id > 0)
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.Id)}={dmodel.Id}";
}
if (dmodel.ServiceId > 0)
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.ServiceId)}={dmodel.ServiceId}";
}
if (!string.IsNullOrEmpty(dmodel.ServiceIds))
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.ServiceId)} in({dmodel.ServiceIds})";
}
if (!string.IsNullOrEmpty(dmodel.DateTime))
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.Date)} ='{dmodel.DateTime}'";
}
if (!string.IsNullOrEmpty(dmodel.StartTime))
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.Date)} >='{dmodel.StartTime}'";
}
if (!string.IsNullOrEmpty(dmodel.EndTime))
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.Date)} <='{dmodel.EndTime} 23:59:59'";
}
if (!string.IsNullOrEmpty(dmodel.Month))
{
where += $@" and DATE_FORMAT(Date,'%Y-%m') ='{dmodel.Month}'";
}
if (dmodel.IsReserve > 0)
{
where += $@" and {nameof(RB_Reserve_ServiceTargetDate.IsReserve)}={dmodel.IsReserve}";
}
string sql = $@"select * from RB_Reserve_ServiceTargetDate where {where} order by Date asc";
return Get<RB_Reserve_ServiceTargetDate_Extend>(sql).ToList();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Mall.Common.API;
using Mall.Common.Enum.Reserve;
using Mall.Common.Plugin;
using Mall.Model.Extend.Reserve;
using Mall.Model.Extend.User;
using Mall.Module.Reserve;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Mall.WebApi.Controllers.Reserve
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class ReserveController : BaseController
{
private readonly ReserveModule reserveModule = new ReserveModule();
private Module.User.UserModule UserModule = new Module.User.UserModule();
#region 服务人员
/// <summary>
/// 获取服务人员列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetServicePersonalPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Reserve_ServicePersonal_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_ServicePersonal_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
demodel.ServiceStatus = -1;
var list = reserveModule.GetServicePersonalPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.ServiceLogo,
x.Name,
x.StoreName,
Score = x.Score == 0 ? "暂无" : x.Score.ToString(),
x.OrderNum,
CreateDateStr = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
x.ServiceStatus,
x.Telephone,
x.Major,
x.WorkYears,
GenderStr = x.Gender.GetEnumName(),
ServiceTypeStr = x.ServiceType.GetEnumName(),
x.FictitiousReserveNum,
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 禁用/启用服务人员状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult EnableServicePersonalInfo()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
string idInfo = parmsJob.GetStringValue("Ids");
int serviceStatus = parmsJob.GetInt("ServiceStatus", 0);
if (string.IsNullOrWhiteSpace(idInfo))
{
return ApiResult.Failed("请传递参数");
}
if (serviceStatus == 0)
{
return ApiResult.Failed("请选择您要操作的类型");
}
bool flag = reserveModule.EnableServicePersonalInfo(idInfo.Split(",").ToList(), serviceStatus, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetServicePersonalModel()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_ServicePersonal_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
query.ServiceStatus = -1;
var oldLogisticsModel = reserveModule.GetServicePersonalList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Reserve_ServicePersonal_Extend();
}
if (!string.IsNullOrWhiteSpace(oldLogisticsModel.LableName))
{
oldLogisticsModel.LableNameList = JsonConvert.DeserializeObject<List<string>>(oldLogisticsModel.LableName);
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 获取全部服务人员
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetServicePersonalList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_ServicePersonal_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
query.ServiceStatus = 1;
var list = reserveModule.GetServicePersonalList(query);
var result = list.Select(x => new { x.ID, x.Name, x.ServiceLogo, x.StoreName, GenderStr = x.Gender.GetEnumName() });
return ApiResult.Success("", result);
}
/// <summary>
/// 保存服务人员信息
/// </summary>
/// <returns></returns>
public ApiResult AddOrUpdateServicePersonal()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_ServicePersonal_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入服务人员信息");
}
else
{
if (string.IsNullOrWhiteSpace(query.Name))
{
return ApiResult.Failed("请输入服务人员名称");
}
if (string.IsNullOrWhiteSpace(query.ServiceLogo))
{
return ApiResult.Failed("请上传服务人员头像");
}
if (string.IsNullOrWhiteSpace(query.Telephone))
{
return ApiResult.Failed("请输入联系电话");
}
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
query.UpdateDate = System.DateTime.Now;
if (query.LableNameList != null && query.LableNameList.Any())
{
query.LableName = JsonConvert.SerializeObject(query.LableNameList);
}
bool result = reserveModule.AddOrUpdateServicePersonal(query);
if (result)
{
return ApiResult.Success("服务人员信息保存成功");
}
else
{
return ApiResult.Failed("服务人员信息保存失败");
}
}
}
/// <summary>
/// 获取关联产品类型
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetServiceTypeEnumList()
{
var list = EnumHelper.GetEnumList(typeof(ServiceTypeEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 获取性别类型
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGenderEnumList()
{
var list = EnumHelper.GetEnumList(typeof(GenderEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
#endregion
#region 套餐卡
[HttpPost]
public ApiResult GetDiscountCouponPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Reserve_Coupon_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = reserveModule.GetDiscountCouponPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.Name,
x.HeXiao,
x.CouponIco,
UseTypeStr = Mall.Common.Plugin.EnumHelper.GetEnumName(x.UseType),
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
x.IndateType,
x.IndateDay,
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.TotalNum,
ResidueNum = x.ReceiveNum,
x.PickupCenter,
x.SmallShopName,
x.SmallShopId,
x.IsZanYangUse
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDiscountCouponDetail()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = reserveModule.GetDiscountCouponList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Reserve_Coupon_Extend();
oldLogisticsModel.IndateType = Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon;
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 保存套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateDiscountCoupon()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入套餐卡信息");
}
else
{
if (string.IsNullOrWhiteSpace(query.Name))
{
return ApiResult.Failed("请输入套餐卡名称");
}
if (query.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon)
{
if (query.IndateDay == 0)
{
return ApiResult.Failed("请输入有效期天数");
}
}
else
{
if (!query.StartDate.HasValue || !query.EndDate.HasValue)
{
return ApiResult.Failed("开始日期或结束日期必填");
}
if (query.StartDate > query.EndDate)
{
return ApiResult.Failed("开始日期必须小于结束日期");
}
}
if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category || query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{
if (query.ProductList == null || !query.ProductList.Any())
{
return ApiResult.Failed(query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category ? "请选择商品类别" : "请选择商品");
}
}
if (query.TotalNum == 0)
{
return ApiResult.Failed("请输入可发放数量");
}
if (string.IsNullOrWhiteSpace(query.Describe))
{
return ApiResult.Failed("请输入套餐卡描述");
}
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
query.UpdateDate = System.DateTime.Now;
bool result = reserveModule.AddOrUpdateDiscountCoupon(query);
if (result)
{
return ApiResult.Success("套餐卡信息保存成功");
}
else
{
return ApiResult.Failed("套餐卡信息保存失败");
}
}
}
/// <summary>
/// 删除套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelDiscountCoupon()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = reserveModule.DelDiscountCoupon(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 加入领劵中心
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdatePickupType()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = reserveModule.UpdatePickupType(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success("操作成功");
}
else
{
return ApiResult.Failed("操作失败");
}
}
/// <summary>
/// 发放套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GrantCoupon()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入套餐卡信息");
}
else
{
var oldLogisticsModel = reserveModule.GetDiscountCouponList(query).FirstOrDefault();
if (oldLogisticsModel == null || oldLogisticsModel.ID == 0)
{
return ApiResult.Failed("套餐卡信息不存在,请核实后再操作");
}
if (string.IsNullOrWhiteSpace(query.UserIds))
{
return ApiResult.Failed("请选择发放对象");
}
//获取领取套餐卡用户的信息判断是否属于当前店铺
var memberList = new List<RB_Member_User_Extend>();
if (oldLogisticsModel.SmallShopId > 0)
{
memberList = UserModule.GetMemberUserList(new RB_Member_User_Extend { TenantId = UserInfo.TenantId, MallBaseId = parms.MallBaseId, UserIds = query.UserIds });
var notSmallShopList = memberList.Where(x => x.SmallShopId != oldLogisticsModel.SmallShopId);
if (notSmallShopList != null && notSmallShopList.Any())
{
return ApiResult.Failed(string.Join(",", notSmallShopList.Select(x => x.Name) + "不属于当前店铺"));
}
}
List<RB_Reserve_MemberCoupon_Extend> list = new List<RB_Reserve_MemberCoupon_Extend>();
for (int i = 0; i < query.GrantNum; i++)
{
foreach (var item in query.UserIds.Split(","))
{
if (!string.IsNullOrWhiteSpace(item))
{
RB_Reserve_MemberCoupon_Extend memberCoupon = new RB_Reserve_MemberCoupon_Extend();
memberCoupon.Id = 0;
memberCoupon.UserId = Convert.ToInt32(item);
memberCoupon.Description = oldLogisticsModel.Describe;
memberCoupon.CreateDate = System.DateTime.Now;
memberCoupon.TenantId = oldLogisticsModel.TenantId;
memberCoupon.MallBaseId = oldLogisticsModel.MallBaseId;
memberCoupon.Remarks = "";
memberCoupon.CouponId = oldLogisticsModel.ID;
memberCoupon.Name = oldLogisticsModel.Name;
memberCoupon.UseType = oldLogisticsModel.UseType;
memberCoupon.HeXiao = oldLogisticsModel.HeXiao;
memberCoupon.UseHeXiao = 0;
if (oldLogisticsModel.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon)
{
memberCoupon.StartDate = System.DateTime.Now;
memberCoupon.EndDate = memberCoupon.StartDate.Value.AddDays(oldLogisticsModel.IndateDay);
}
else
{
memberCoupon.StartDate = oldLogisticsModel.StartDate;
memberCoupon.EndDate = oldLogisticsModel.EndDate;
}
list.Add(memberCoupon);
}
}
}
if (oldLogisticsModel.TotalNum != -1)
{
if (oldLogisticsModel.TotalNum < list.Count())
{
return ApiResult.Failed("套餐卡剩余" + oldLogisticsModel.TotalNum + "张");
}
}
bool result = reserveModule.GrantCoupon(list, oldLogisticsModel);
if (result)
{
return ApiResult.Success("套餐卡信息保存成功");
}
else
{
return ApiResult.Failed("套餐卡信息保存失败");
}
}
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAllDiscountCouponList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = reserveModule.GetAllDiscountCouponList(query);
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 我的套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCouponPageListByMemberId()
{
var req = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_Reserve_Coupon_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_Coupon_Extend>(req.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = req.MallBaseId;
var list = reserveModule.GetMemberDisCouponList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Name,
x.Describe,
x.CouponIco,
x.HeXiao,
x.UseHeXiao,
x.ID,
x.MemberCouponId,
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:ss:mm"),
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:ss:mm") : "",
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:ss:mm") : "",
UseTypeStr = ((int)x.UseType == 3 || (int)x.UseType == 4) ? x.UseType.GetEnumName() : (x.ProductList != null && x.ProductList.Any() ? string.Join("、", x.ProductList.Select(x => x.Relevance)) : ""),
x.UseType,
x.ProductList,
x.PickupCenter,
x.UseState,
x.GetType
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 删除用户套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelMemberCoupon()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("MemberCouponId", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = reserveModule.DelMemberCoupon(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#endregion
#region 自动发放套餐卡
/// <summary>
/// 自动发放套餐卡列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSelfMotionPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Reserve_CSelfMotion_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_CSelfMotion_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = reserveModule.GetSelfMotionPageLis(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.GrantNum,
x.DiscountCouponName,
TriggerTypeStr = Mall.Common.Plugin.EnumHelper.GetEnumName(x.TriggerType)
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取自动发放套餐卡详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GettRepositoryList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_CSelfMotion_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = reserveModule.GettRepositoryList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Reserve_CSelfMotion_Extend();
}
else
{
if (oldLogisticsModel.IsAll == 1)
{
oldLogisticsModel.UserList = new List<RB_Reserve_CSelfMotionMember_Extend>();
oldLogisticsModel.UserList = reserveModule.GetSelfMotionMemberList(new RB_Reserve_CSelfMotionMember_Extend { TenantId = oldLogisticsModel.TenantId, MallBaseId = oldLogisticsModel.MallBaseId, SelfMotionId = oldLogisticsModel.ID });
}
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 保存自动发放套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateSelfMotion()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_CSelfMotion_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入自动发放套餐卡信息");
}
else
{
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
if (query.IsAll == 1 && (query.UserList == null || !query.UserList.Any()))
{
return ApiResult.Failed("请选择领取人信息");
}
query.UpdateDate = System.DateTime.Now;
bool result = reserveModule.AddOrUpdateSelfMotion(query);
if (result)
{
return ApiResult.Success("自动发放套餐卡保存成功");
}
else
{
return ApiResult.Failed("自动发放套餐卡保存失败");
}
}
}
/// <summary>
/// 删除自动发放套餐卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelDiscountSelfMotion()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = reserveModule.DelDiscountSelfMotion(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 获取触发事件枚举
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTriggerTypeEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.MarketingCenter.TriggerTypeEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
#endregion
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment