Commit 34de3990 authored by 吴春's avatar 吴春

线下服务卡包

parent f6f17693
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_CardBag
{
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 CardBagIco { get; set; }
/// <summary>
/// 领取方式设置1-领劵中心
/// </summary>
public int PickupCenter { get; set; }
/// <summary>
/// 店铺id
/// </summary>
public int SmallShopId { get; set; }
/// <summary>
/// 卡号
/// </summary>
public string CardNo { get; set; }
/// <summary>
/// 关联门店
/// </summary>
public string StoreIds { get; set; }
/// <summary>
/// 是否赞羊使用0-否,1-是
/// </summary>
public int IsZanYangUse { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Describe { get; set; }
/// <summary>
/// 有效期开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 有效期结束时间
/// </summary>
public DateTime? EndDate { 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_MemberCardBag
{
/// <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>
/// 使用状态 0-未使用,1:已使用,2:已作废
/// </summary>
public int UseState { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
/// <summary>
/// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取,4-新人购买并付款
/// </summary>
public new int GetType { get; set; }
/// <summary>
/// 删除
/// </summary>
public int Status { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Reserve;
using Mall.Model.Entity.User;
using VT.FW.DB;
namespace Mall.Model.Extend.Reserve
{
/// <summary>
/// 预约-卡包扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Reserve_CardBag_Extend : RB_Reserve_CardBag
{
/// <summary>
/// 0-未领取 >0已领取
/// </summary>
public int MemberNum { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 门店列表
/// </summary>
public List<RB_Stores_Extend> StoresList { get; set; }
/// <summary>
/// 发放优惠券的时候会员ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 发放优惠券的时候会员id
/// </summary>
public int UserId { get; set; }
public int UseState { get; set; }
public int StoreId { get; set; }
public int MemberCouponId { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Reserve;
namespace Mall.Model.Extend.Reserve
{
public class RB_Reserve_MemberCardBag_Extend: RB_Reserve_MemberCardBag
{
public string CouponIco { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 用户优惠券id
/// </summary>
public string Ids { get; set; }
/// <summary>
/// 线下服务门店id
/// </summary>
public int StoreId { get; set; }
}
}
This diff is collapsed.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
namespace Mall.Repository.Reserve
{
public class RB_Reserve_CardBagRepository : BaseRepository<RB_Reserve_CardBag>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_CardBag); } }
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CardBag_Extend> GetCardBagPageList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_CardBag_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_CardBag_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CardBag_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_CardBag_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND a.{nameof(RB_Reserve_CardBag_Extend.Name)} like '%{query.Name}%'");
}
}
builder.Append($" order by a.{nameof(RB_Reserve_CardBag_Extend.ID)} desc");
return GetPage<RB_Reserve_CardBag_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CardBag_Extend> GetCardBagList(RB_Reserve_CardBag_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_CardBag_Extend.Status)}=0 ");
}
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CardBag_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CardBag_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Reserve_CardBag_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Reserve_CardBag_Extend.Name)} like '%{query.Name}%'");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND {nameof(RB_Reserve_CardBag_Extend.ID)} in({query.CouponIds})");
}
if (query.StoreId > 0)
{
builder.Append($" AND ( FIND_IN_SET('{query.StoreId}', {nameof(RB_Reserve_CardBag_Extend.StoreIds)}) or FIND_IN_SET('0', {nameof(RB_Reserve_CardBag_Extend.StoreIds)} )) ");
}
else if (query.StoreId != -1)
{
builder.Append($" AND FIND_IN_SET('0', {nameof(RB_Reserve_CardBag_Extend.StoreIds)})");
}
}
return Get<RB_Reserve_CardBag_Extend>(builder.ToString()).ToList();
}
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CardBag_Extend> GetAllCardBagList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_CardBag_Extend query)
{
string where = " where a.`Status`=0 and a.PickupCenter=1 and a.EndDate>NOW()";
string userWhere = "";//分类
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Reserve_CardBag_Extend.TenantId)}={query.TenantId}";
userWhere += $" AND {nameof(RB_Reserve_CardBag_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Reserve_CardBag_Extend.MallBaseId)}={query.MallBaseId}";
userWhere += $" AND {nameof(RB_Reserve_CardBag_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
userWhere += $" AND {nameof(RB_Reserve_CardBag_Extend.UserId)}={query.UserId}";
}
if (query.SmallShopId > 0)
{
where += $" AND ( a.{nameof(RB_Reserve_CardBag_Extend.SmallShopId)}={query.SmallShopId} or ( a.{nameof(RB_Reserve_CardBag_Extend.SmallShopId)}=0 and a.{nameof(RB_Reserve_CardBag_Extend.IsZanYangUse)}=0))";
}
else
{
where += $" AND a.{nameof(RB_Reserve_CardBag_Extend.SmallShopId)}=0";
}
if (query.StoreId > 0)
{
where += $" AND ( FIND_IN_SET('{query.StoreId}', a.{nameof(RB_Reserve_CardBag_Extend.StoreIds)}) or FIND_IN_SET('0', a.{nameof(RB_Reserve_CardBag_Extend.StoreIds)} )) ";
}
else
{
where += $" AND FIND_IN_SET('0', a.{nameof(RB_Reserve_CardBag_Extend.StoreIds)})";
}
}
string sql = @$"
SELECT a.ID,a.`Name`,a.`Describe`,a.StartDate,a.EndDate,a.CardBagIco,a.CardNo,c.MemberNum from rb_reserve_cardbag as a
LEFT JOIN (SELECT CouponId,COUNT(*) as MemberNum from RB_Reserve_MemberCardBag where `Status`=0 {userWhere} GROUP BY CouponId) as c
on a.ID=c.CouponId {where}";
return GetPage<RB_Reserve_CardBag_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Reserve_CardBag_Extend> GetMemberCardBagList(int pageIndex, int pageSize, out long rowCount, RB_Reserve_CardBag_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_MemberCardBag.TenantId)}={query.TenantId}";
where += $" AND b.{nameof(RB_Reserve_CardBag_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCardBag.MallBaseId)}={query.MallBaseId}";
where += $" AND b.{nameof(RB_Reserve_CardBag_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Reserve_MemberCardBag.UserId)}={query.UserId}";
}
if (query.StartDate.HasValue)
{
where += $" AND a.{nameof(RB_Reserve_MemberCardBag.CreateDate)}>='{query.StartDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
if (query.EndDate.HasValue)
{
where += $" AND a.{nameof(RB_Reserve_MemberCardBag.CreateDate)}<='{query.EndDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
//if (query.UseState == 0)
//{
// where += $" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.UseState)}={query.UseState} AND a.{nameof(RB_Reserve_MemberCardBag_Extend.EndDate)}> NOW()";
//}
//else if (query.UseState == 1)
//{
// where += $" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.UseState)}={query.UseState}";
//}
//else if (query.UseState == 2)
//{
// where += $" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.EndDate)}<NOW() AND a.{nameof(RB_Reserve_MemberCardBag_Extend.UseState)}=0";
//}
}
string sql = @$" SELECT a.ID as MemberCouponId,a.StartDate,a.EndDate,b.ID,b.`Name`,b.`Describe`,b.CardBagIco,b.CardNo,a.CreateDate from RB_Reserve_MemberCardBag as a LEFT JOIN {TableName} as b
on a.CouponId=b.ID {where} ";
return GetPage<RB_Reserve_CardBag_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mall.Model.Entity.Reserve;
using Mall.Model.Extend.Reserve;
namespace Mall.Repository.Reserve
{
/// <summary>
///
/// </summary>
public class RB_Reserve_MemberCardBagRepository:BaseRepository<RB_Reserve_MemberCardBag>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Reserve_MemberCardBag); } }
/// <summary>
/// 会员卡包
/// </summary>
/// <returns></returns>
public List<RB_Reserve_MemberCardBag_Extend> GetList(RB_Reserve_MemberCardBag_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_MemberCardBag_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.UserId)}={query.UserId}");
}
if (query.CouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.CouponId)}={query.CouponId}");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.CouponId)} in ({query.CouponIds})");
}
if (!string.IsNullOrEmpty(query.Ids))
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.Id)} in ({query.Ids})");
}
if (query.UseState >= 0)
{
builder.Append($" AND a.{nameof(RB_Reserve_MemberCardBag_Extend.UseState)}={query.UseState}");
}
}
string sql = @$" select * FROM {TableName} AS a where 1=1 {builder.ToString()} ";
return Get<RB_Reserve_MemberCardBag_Extend>(sql).ToList();
}
}
}
......@@ -1054,7 +1054,6 @@ namespace Mall.WebApi.Controllers.Reserve
}
#endregion
#region 服务人员绩效统计
/// <summary>
/// 获取服务人员列表
......@@ -1084,5 +1083,168 @@ namespace Mall.WebApi.Controllers.Reserve
return ApiResult.Success("", pagelist);
}
#endregion
#region 卡包
[HttpPost]
public ApiResult GetCardBagPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Reserve_CardBag_Extend demodel = JsonConvert.DeserializeObject<RB_Reserve_CardBag_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = reserveModule.GetCardBagPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.Name,
x.CardNo,
x.CardBagIco,
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.PickupCenter,
x.SmallShopId,
x.IsZanYangUse
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCardBagDetail()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_CardBag_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
query.StoreId = -1;
var oldLogisticsModel = reserveModule.GetCardBagList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Reserve_CardBag_Extend();
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 保存卡包
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateCardBag()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Reserve_CardBag_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.StartDate.HasValue || !query.EndDate.HasValue)
{
return ApiResult.Failed("开始日期或结束日期必填");
}
if (query.StartDate > query.EndDate)
{
return ApiResult.Failed("开始日期必须小于结束日期");
}
if (string.IsNullOrWhiteSpace(query.Describe))
{
return ApiResult.Failed("请输入套餐卡描述");
}
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
if (query.ID == 0)
{
Random R = new Random();
int Rstr = R.Next(111, 999);
query.CardNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Rstr;
}
query.UpdateDate = System.DateTime.Now;
bool result = reserveModule.AddOrUpdateCardBag(query);
if (result)
{
return ApiResult.Success("卡包信息保存成功");
}
else
{
return ApiResult.Failed("卡包信息保存失败");
}
}
}
/// <summary>
/// 删除卡包
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelCardBag()
{
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.DelCardBag(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 加入领劵中心
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdateCardBagPickupType()
{
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.UpdateCardBagPickupType(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success("操作成功");
}
else
{
return ApiResult.Failed("操作失败");
}
}
#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