Commit 6af9ac34 authored by liudong1993's avatar liudong1993

活动代码

parent d1a0cd8b
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.Product
{
/// <summary>
/// 活动表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 活动名称
/// </summary>
public string ActivityName
{
get;
set;
}
/// <summary>
/// 活动参加层级 0表示 全部
/// </summary>
public int Tier { get; set; }
/// <summary>
/// 类型 1订单数量 2订单金额 3商品数量
/// </summary>
public int Type { get; set; }
/// <summary>
/// 订单数量
/// </summary>
public int OrderNum { get; set; }
/// <summary>
/// 订单金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int GoodsNum { get; set; }
/// <summary>
/// 范围类型 1分类 2指定商品
/// </summary>
public int RangeType { get; set; }
/// <summary>
/// 范围Ids 英文逗号分隔
/// </summary>
public string RangeIds { get; set; }
/// <summary>
/// 领取方式 1线上 2线下
/// </summary>
public int Way { get; set; }
/// <summary>
/// 验证码长度
/// </summary>
public int CodeLength { get; set; }
/// <summary>
/// 奖品名称
/// </summary>
public string PrizeName { get; set; }
/// <summary>
/// 奖品图片
/// </summary>
public string PrizeImage { get; set; }
/// <summary>
/// 活动开始时间
/// </summary>
public DateTime StartTime { get; set; }
/// <summary>
/// 活动结束时间
/// </summary>
public DateTime EndTime { get; set; }
/// <summary>
/// 封面图
/// </summary>
public string CoverImage { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 兑换期限
/// </summary>
public DateTime ReceiveTime { get; set; }
/// <summary>
/// 是否启用 1是 2否
/// </summary>
public int Enable { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
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.Product
{
/// <summary>
/// 活动奖品领取表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Get
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 活动id
/// </summary>
public int ActivityId { get; set; }
/// <summary>
/// 用户id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 验证码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 满足的订单ids
/// </summary>
public string OrderIds { get; set; }
/// <summary>
/// 状态 1未兑换 2已兑换 3已过期
/// </summary>
public int State { get; set; }
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
}
}
......@@ -330,5 +330,15 @@ namespace Mall.Model.Entity.Product
/// 购买抵扣佣金金额
/// </summary>
public decimal? DeductionCommission { get; set; }
/// <summary>
/// 用户id,所有的父级,英文逗号分隔
/// </summary>
public string UserTree { get; set; }
/// <summary>
/// 版本来源 0默认商城 1教育
/// </summary>
public int? VersionSource { get; set; }
}
}
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 活动扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Extend : RB_Goods_Activity
{
/// <summary>
/// 分类/商品信息
/// </summary>
public object RangeList = new List<object>();
/// <summary>
/// 活动查询状态 1进行中 2已结束
/// </summary>
public int QActivityState { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int Number { get; set; }
/// <summary>
/// 商品价格
/// </summary>
public decimal Final_Price { get; set; }
/// <summary>
/// 订单总数量
/// </summary>
public int OrderTNum { get; set; }
/// <summary>
/// 订单id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 用户所有上级
/// </summary>
public string UserTree { get; set; }
/// <summary>
/// 1级用户
/// </summary>
public int OneUserId { get; set; }
/// <summary>
/// 二级用户
/// </summary>
public int TwoUserId { get; set; }
/// <summary>
/// 三级用户
/// </summary>
public int ThreeUserId { get; set; }
/// <summary>
/// 是否已完成 1是 2否
/// </summary>
public int IsFinish { get; set; }
/// <summary>
/// 下单订单时间
/// </summary>
public string OrderTime { get; set; }
}
}
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 活动奖品领取扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Get_Extend : RB_Goods_Activity_Get
{
/// <summary>
/// 活动ids
/// </summary>
public string ActivityIds { get; set; }
/// <summary>
/// 用户ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 活动名称
/// </summary>
public string ActivityName { get; set; }
/// <summary>
/// 封面图
/// </summary>
public string CoverImage { get; set; }
/// <summary>
/// 奖品名称
/// </summary>
public string PrizeName { get; set; }
/// <summary>
/// 奖品图片
/// </summary>
public string PrizeImage { get; set; }
/// <summary>
/// 截止兑换日期
/// </summary>
public DateTime ReceiveTime { get; set; }
/// <summary>
/// 领取方式
/// </summary>
public int Way { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 订单列表
/// </summary>
public object OrderList { get; set; }
}
}
This diff is collapsed.
......@@ -276,6 +276,10 @@ namespace Mall.Module.Product
/// 财务单据
/// </summary>
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
/// <summary>
/// 活动
/// </summary>
private readonly RB_Goods_ActivityRepository goods_ActivityRepository = new RB_Goods_ActivityRepository();
/// <summary>
/// 微店返佣
......@@ -928,6 +932,7 @@ namespace Mall.Module.Product
model.OrderId,
model.OrderNo,
model.OrderStatus,
model.VersionSource,
OrderStatusName = model.OrderStatus.GetEnumName(),
CreateDate = model.CreateDate.HasValue ? model.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CancelTime = model.CancelTime.HasValue ? model.CancelTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
......@@ -4001,6 +4006,16 @@ namespace Mall.Module.Product
demodel.PaymentWay = OrderPaymentTypeEnum.OnlinePayment;//先默认在线支付
demodel.Remark ??= "";
demodel.ApplyForCancelStatus ??= 0;
demodel.VersionSource ??= 0;//默认商城
if (demodel.VersionSource == 1) {
//教育端下单 初始化参数
demodel.PaymentWay = OrderPaymentTypeEnum.OfflinePay;
demodel.OrderStatus = OrderStatusEnum.Completed;
demodel.PaymentTime = DateTime.Now;
demodel.DeliveryTime = DateTime.Now;
demodel.ReceivingTime = DateTime.Now;
demodel.FinishTime = DateTime.Now;
}
int OrderId = goods_OrderRepository.Insert(demodel, trans);
if (OrderId > 0)
{
......@@ -4146,6 +4161,8 @@ namespace Mall.Module.Product
});
}
goods_OrderRepository.DBSession.Commit();
//任务执行 订单记录当前用户的所有上级
Task.Run(() => SaveOrderUserAllParent(demodel.UserId ?? 0, OrderId));
return ApiResult.Success("", new { OrderId });
}
catch (Exception ex)
......@@ -4156,6 +4173,38 @@ namespace Mall.Module.Product
}
}
/// <summary>
/// 订单记录当前用户的所有上级
/// </summary>
/// <param name="UserId"></param>
/// <param name="OrderId"></param>
/// <returns></returns>
public bool SaveOrderUserAllParent(int UserId,int OrderId) {
if (OrderId <= 0 || UserId <= 0) {
return false;
}
try
{
string parentIds = member_UserRepository.GetMemberParentIdStr(UserId);
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Goods_Order_Extend.UserTree),parentIds }
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.OrderId),
FiledValue=OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderRepository.Update(keyValues, wheres);
return true;
}
catch (Exception)
{
return false;
}
}
/// ERP修改商品订单状态
/// </summary>
/// <param name="extModel"></param>
......
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System.Linq;
using Mall.Model.Entity.User;
namespace Mall.Repository.Product
{
/// <summary>
/// 活动仓储层
/// </summary>
public class RB_Goods_ActivityRepository : BaseRepository<RB_Goods_Activity>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetList(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status=0";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and {nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.Way > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Way)}={dmodel.Way}";
}
if (dmodel.RangeType > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.RangeType)}={dmodel.RangeType}";
}
if (dmodel.Enable > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.QActivityState > 0)
{
if (dmodel.QActivityState == 1)
{
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{DateTime.Now}'";
}
else
{
//已结束
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} <'{DateTime.Now}'";
}
}
if (!string.IsNullOrEmpty(dmodel.OrderTime)) {
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{dmodel.OrderTime}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{dmodel.OrderTime}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取可兑换列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetCanReceiveList(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status =0 and Enable =1";
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetListForOrder(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and a.Status=0 and g.Id is null";
if (dmodel.TenantId > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.Enable > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.OneUserId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.OneUserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderTime))
{
//进行中
where += $@" and a.{nameof(RB_Goods_Activity_Extend.StartTime)} <='{dmodel.OrderTime}'";
where += $@" and a.{nameof(RB_Goods_Activity_Extend.EndTime)} >='{dmodel.OrderTime}'";
where += $@" and a.{nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
string sql = $@"SELECT a.* FROM RB_Goods_Activity a
left join rb_goods_activity_get g on a.Id = g.ActivityId
where {where} order by a.Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetPageList(int pageIndex,int pageSize, out long count,RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status=0";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and {nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.Way > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Way)}={dmodel.Way}";
}
if (dmodel.RangeType > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.RangeType)}={dmodel.RangeType}";
}
if (dmodel.Enable > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.QActivityState > 0) {
if (dmodel.QActivityState == 1)
{
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{DateTime.Now}'";
}
else {
//已结束
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} <'{DateTime.Now}'";
}
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return GetPage<RB_Goods_Activity_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System.Linq;
using Mall.Model.Entity.User;
namespace Mall.Repository.Product
{
/// <summary>
/// 活动奖品领取仓储层
/// </summary>
public class RB_Goods_Activity_GetRepository : BaseRepository<RB_Goods_Activity_Get>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetList(RB_Goods_Activity_Get_Extend dmodel)
{
string where = $" 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.Code))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.Code)} ='{dmodel.Code}'";
}
if (dmodel.ActivityId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.ActivityId)}={dmodel.ActivityId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityIds))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.ActivityId)} in({dmodel.ActivityIds})";
}
if (dmodel.UserId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.UserIds))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.UserId)} in({dmodel.UserIds})";
}
if (dmodel.State > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.State)}={dmodel.State}";
}
string sql = $@"SELECT * FROM RB_Goods_Activity_Get where {where} order by Id asc";
return Get<RB_Goods_Activity_Get_Extend>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetPageList(int pageIndex,int pageSize, out long count, RB_Goods_Activity_Get_Extend dmodel)
{
string where = $" 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.Code))
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.Code)} ='{dmodel.Code}'";
}
if (dmodel.ActivityId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.ActivityId)}={dmodel.ActivityId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.UserId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.UserId}";
}
if (dmodel.State > 0)
{
if (dmodel.State == 3)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.State)} =1";
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.ReceiveTime)} <'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
else
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.State)}={dmodel.State}";
}
}
string sql = $@"SELECT g.*,a.ActivityName,a.CoverImage,a.ReceiveTime,a.Way,a.PrizeName,a.PrizeImage,u.Name,u.Photo FROM RB_Goods_Activity_Get g
LEFT JOIN rb_goods_activity a on g.ActivityId = a.Id
LEFT JOIN rb_member_user u on g.UserId = u.Id
where {where} order by g.Id asc";
return GetPage<RB_Goods_Activity_Get_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
......@@ -2260,5 +2260,50 @@ WHERE {where} GROUP BY o.OrderId ORDER BY o.CreateDate DESC ";
return GetPage<RB_Goods_Order_Extend>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
#endregion
#region 活动管理
/// <summary>
/// 获取分销商品数量
/// </summary>
/// <param name="dmodel"></param>
/// <param name="UserId"></param>
/// <param name="AfterTime"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetGoodsNumForCategoryOrGoods(RB_Goods_Activity_Extend dmodel, int UserId, int AfterTime)
{
string where = @$"AND o.`Status` =0 AND o.Recycled=2 AND o.OrderStatus =5 and oa.ReOrderId is null
AND o.CreateDate >='{dmodel.StartTime.ToString("yyyy-MM-dd")}' AND o.CreateDate <='{dmodel.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}'
AND o.ReceivingTime <='{DateTime.Now.AddDays(0 - AfterTime).ToString("yyyy-MM-dd HH:mm:ss")}'
AND IFNULL(o.UserTree,'') <> '' ";
if (UserId > 0)
{
where += $" AND FIND_IN_SET({UserId},o.UserTree)";
}
if (dmodel.RangeType == 1)
{
string sql = $@"
SELECT od.Id,od.Number,od.Final_Price,o.OrderId,o.UserTree FROM rb_goods_orderdetail od
LEFT JOIN rb_goods_order o ON o.OrderId = od.OrderId
LEFT JOIN rb_goods_category gc ON od.GoodsId = gc.GoodsId
left join rb_goods_orderaftersale oa on od.Id= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (1,2,3,4,5)
WHERE gc.CategoryId in ({dmodel.RangeIds})
{where}
GROUP BY od.Id ";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
else {
string sql = $@"
SELECT od.Id,od.Number,od.Final_Price,o.OrderId,o.UserTree FROM rb_goods_orderdetail od
LEFT JOIN rb_goods_order o ON o.OrderId = od.OrderId
left join rb_goods_orderaftersale oa on od.Id= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (1,2,3,4,5)
WHERE od.GoodsId in({dmodel.RangeIds})
{where}
GROUP BY od.Id ";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
}
#endregion
}
}
......@@ -43,6 +43,8 @@ namespace Mall.WebApi.Controllers.MallBase
private readonly OrderModule orderModule = new OrderModule();
private readonly Module.User.MiniProgramModule programModule = new Module.User.MiniProgramModule();
private readonly UserModule userModule = new UserModule();
private readonly ActivityModule activityModule = new ActivityModule();
#region 购物车
/// <summary>
......@@ -1601,5 +1603,126 @@ namespace Mall.WebApi.Controllers.MallBase
}
}
#endregion
#region 活动管理
/// <summary>
/// 获取活动
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityPageList()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.Enable = 1;
var list = activityModule.GetGoodsActivityPageListForApplet(pagelist.pageIndex, pagelist.pageSize, out long count, demodel, userInfo.UserId);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityName,
x.Tier,
x.Type,
x.OrderNum,
x.OrderMoney,
x.GoodsNum,
MyOrderMoney = x.Final_Price,
MyGoodsNum = x.Number,
MyOrderNum = x.OrderTNum,
x.RangeType,
x.RangeList,
x.Way,
x.PrizeName,
x.PrizeImage,
StartTime = x.StartTime.ToString("yyyy-MM-dd"),
EndTime = x.EndTime.ToString("yyyy-MM-dd"),
SurplusDay = (x.EndTime - DateTime.Now).Days,
x.CoverImage,
x.Description,
x.IsFinish,
ReceiveTime = x.ReceiveTime.ToString("yyyy-MM-dd")
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoosdActivityInfo() {
var userInfo = AppletUserInfo;
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
if (ActivityId <= 0) {
return ApiResult.ParamIsNull();
}
var model = activityModule.GetGoosdActivityInfo(ActivityId, userInfo.UserId);
return ApiResult.Success("", new
{
model.Id,
model.ActivityName,
model.Tier,
model.Type,
model.OrderNum,
model.OrderMoney,
model.GoodsNum,
model.RangeType,
model.RangeList,
model.Way,
model.PrizeName,
model.PrizeImage,
StartTime = model.StartTime.ToString("yyyy-MM-dd"),
EndTime = model.EndTime.ToString("yyyy-MM-dd"),
SurplusDay = (model.EndTime - DateTime.Now).Days,
model.CoverImage,
model.Description,
ReceiveTime = model.ReceiveTime.ToString("yyyy-MM-dd")
});
}
/// <summary>
/// 获取我的奖励
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsMyActivityPrizeList() {
var parms = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Get_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Get_Extend>(parms.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
var list = activityModule.GetGoodsMyActivityPrizeList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityId,
x.ActivityName,
x.Code,
x.State,
x.CoverImage,
x.PrizeName,
x.PrizeImage,
x.ReceiveTime,
SurplusDay = (x.ReceiveTime - DateTime.Now).Days,
x.Way
});
return ApiResult.Success("", pagelist);
}
#endregion
}
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ namespace Mall.WebApi.Controllers.MallBase
{
private readonly ProductModule productModule = AOPHelper.CreateAOPObject<ProductModule>();
private readonly ActivityModule activityModule = new ActivityModule();
#region 素材管理
......@@ -2595,5 +2596,242 @@ namespace Mall.WebApi.Controllers.MallBase
}
#endregion
#region 活动管理
/// <summary>
/// 获取活动分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
var list = activityModule.GetGoodsActivityPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityName,
x.Tier,
x.Type,
x.OrderNum,
x.OrderMoney,
x.GoodsNum,
x.RangeType,
x.RangeIds,
x.RangeList,
x.Way,
x.CodeLength,
x.PrizeName,
x.PrizeImage,
StartTime = x.StartTime.ToString("yyyy-MM-dd"),
EndTime = x.EndTime.ToString("yyyy-MM-dd"),
x.CoverImage,
x.Description,
ReceiveTime = x.ReceiveTime.ToString("yyyy-MM-dd"),
x.Enable,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd") : ""
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityInfo()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
if (ActivityId <= 0)
{
return ApiResult.ParamIsNull();
}
var model = activityModule.GetGoodsActivityInfo(ActivityId);
return ApiResult.Success("", new
{
model.Id,
model.ActivityName,
model.Tier,
model.Type,
model.OrderNum,
model.OrderMoney,
model.GoodsNum,
model.RangeType,
model.RangeIds,
model.RangeList,
model.Way,
model.CodeLength,
model.PrizeName,
model.PrizeImage,
StartTime = model.StartTime.ToString("yyyy-MM-dd"),
EndTime = model.EndTime.ToString("yyyy-MM-dd"),
model.CoverImage,
model.Description,
ReceiveTime = model.ReceiveTime.ToString("yyyy-MM-dd")
});
}
/// <summary>
/// 新增修改活动
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityInfo() {
var parms = RequestParm;
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
if (string.IsNullOrEmpty(demodel.ActivityName)) {
return ApiResult.ParamIsNull("请输入活动名称");
}
if (demodel.Type == 1)
{
if (demodel.OrderNum <= 0)
{
return ApiResult.ParamIsNull("请输入分销订单数量");
}
}
else if (demodel.Type == 2)
{
if (demodel.OrderMoney <= 0)
{
return ApiResult.ParamIsNull("请输入分销订单金额");
}
}
else {
if (demodel.GoodsNum <= 0)
{
return ApiResult.ParamIsNull("请输入分销商品数量");
}
}
if (string.IsNullOrEmpty(demodel.RangeIds)) {
return ApiResult.ParamIsNull("请选择适配分类/商品");
}
if (demodel.CodeLength < 4) {
return ApiResult.ParamIsNull("请选择验证码长度");
}
if (string.IsNullOrEmpty(demodel.PrizeName)) {
return ApiResult.ParamIsNull("请输入奖品名称");
}
if (string.IsNullOrEmpty(demodel.PrizeImage)) {
return ApiResult.ParamIsNull("请选择奖品图片");
}
if (string.IsNullOrEmpty(demodel.CoverImage)) {
return ApiResult.ParamIsNull("请选择封面图");
}
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
demodel.CreateDate = DateTime.Now;
demodel.UpdateDate = DateTime.Now;
demodel.Status = 0;
demodel.StartTime = Convert.ToDateTime(demodel.StartTime.ToString("yyyy-MM-dd"));
demodel.EndTime = Convert.ToDateTime(demodel.EndTime.ToString("yyyy-MM-dd") + " 23:59:59");
demodel.ReceiveTime = Convert.ToDateTime(demodel.ReceiveTime.ToString("yyyy-MM-dd") + " 23:59:59");
bool flag = activityModule.SetGoodsActivityInfo(demodel);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 设置活动启用/删除
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityState() {
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
int Type = parms.GetInt("Type", 1);// 类型 1启用 2禁用 3删除
if (ActivityId <= 0) {
return ApiResult.ParamIsNull("请传递活动参数");
}
string msg = activityModule.SetGoodsActivityState(ActivityId, Type);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 获取活动中奖人员分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityGetUserPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Get_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Get_Extend>(parms.msg.ToString());
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
var list = activityModule.GetGoodsActivityGetUserPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityId,
x.ActivityName,
x.CoverImage,
x.UserId,
x.Name,
x.Photo,
x.Code,
x.State,
x.Way,
x.OrderList,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd") : ""
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 设置中奖人员状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityUserState() {
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int PrizeId = parms.GetInt("PrizeId", 0);
int Type = parms.GetInt("Type", 1);// 类型 1已兑换 2已失效
if (PrizeId <= 0)
{
return ApiResult.ParamIsNull("请传递中奖参数");
}
string msg = activityModule.SetGoodsActivityUserState(PrizeId, Type);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
#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