This commit is contained in:
2025-07-02 19:31:43 +08:00
parent 2adf97a139
commit 27b0099074
13 changed files with 18 additions and 604 deletions

View File

@@ -16,7 +16,7 @@
<connectionStrings>
<!--新测试环境数据库 -->
<add name="MasterConn" connectionString="Data Source=127.0.0.1; Initial Catalog=AIS20250304232155; User ID=sa;Password=1; Connect Timeout=120; MultipleActiveResultSets=True;App=bfy" providerName="System.Data.SqlClient" />
<add name="MasterConn" connectionString="Data Source=127.0.0.1; Initial Catalog=demi; User ID=demi;Password=demi765&amp;^&#37;; MultipleActiveResultSets=True;App=demi" providerName="System.Data.SqlClient" />
<!--正式主库的链接地址-->

View File

@@ -6,7 +6,7 @@
<job name="OpenIdJob" desc="每个月1日半夜1点创建刷OPENID任务" enabled="true" type="MyCode.Project.ScheduleTask.Jobs.OpenIdJob,MyCode.Project.ScheduleTask" CronExpression="0 0 1 * * ?" />
<job name="OpenIdJob" desc="半夜1点创建刷OPENID任务" enabled="true" type="MyCode.Project.ScheduleTask.Jobs.NinePMTimeJob,MyCode.Project.ScheduleTask" CronExpression="0 0 1 * * ?" />
</Jobs>

View File

@@ -18,21 +18,19 @@ namespace MyCode.Project.ScheduleTask.Jobs
public class NinePMTimeJob : IJob
{
private readonly IStorageService _storageService;
private IMillionShopExtensionService _millionShopExtensionService;
private IStaffDataEnterpriseWechatService _staffDataEnterpriseWechatService;
public NinePMTimeJob(IStorageService storageService
, IMillionShopExtensionService millionShopExtensionService)
public NinePMTimeJob(IStaffDataEnterpriseWechatService staffDataEnterpriseWechatService
)
{
_storageService = storageService;
_millionShopExtensionService = millionShopExtensionService;
_staffDataEnterpriseWechatService = staffDataEnterpriseWechatService;
}
public void Execute(IJobExecutionContext context)
{
_storageService.SendManagerAudit();//店长业绩审核提醒
_staffDataEnterpriseWechatService.AddTask();
}
}
}

View File

@@ -95,6 +95,7 @@
<Compile Include="JobsHelp.cs" />
<Compile Include="Jobs\EveryPriority2Job.cs" />
<Compile Include="Jobs\EveryOtherJob.cs" />
<Compile Include="Jobs\NinePMTimeJob.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Jobs\EveryJob.cs" />

View File

@@ -1,172 +0,0 @@
using MyCode.Project.Domain.Businesses.BillKeeping;
using MyCode.Project.Domain.Message.Act.SalesSheetPay;
using MyCode.Project.Domain.Message.Request.CouponActivity;
using MyCode.Project.Domain.Message.Request.Message;
using MyCode.Project.Domain.Message.Response.CouponActivity;
using MyCode.Project.Domain.Message.Response.SalesSheet;
using MyCode.Project.Domain.Model;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 账单记录模块 相关服务
/// </summary>
public interface IBillKeepingService
{
/// <summary>
/// 库存记账
/// </summary>
/// <param name="dto">库存记账 数据传输对象</param>
void Stock(StockBillKeepingDto dto);
/// <summary>
/// 会员服务数量记账
/// </summary>
/// <param name="dto">会员服务数量记账 数据传输对象</param>
void MemberServiceBook(MemberServiceBookBillKeepingDto dto,Guid MerchantId);
/// <summary>
/// 会员帐户金额记账
/// </summary>
/// <param name="dto">会员帐户金额记账 数据传输对象</param>
void MemberAccount(MemberAccountBillKeepingDto dto, Guid MerchantId);
/// <summary>
/// 会员积分记账。应用场景:充值、预售、销售
/// </summary>
/// <param name="dto">会员积分记账 数据传输对象</param>
/// <param name="ifReturnSheet">是否退货退款,遇到积分不够不拦截报错</param>
void MemberIntegral(MemberIntegralBillKeepingDto dto, bool ifReturnSheet = false);
/// <summary>
/// 批量库存记账,暂时只允许盘盈盘亏审核使用,其他功能请不要调用
/// </summary>
/// <param name="dtolist">库存记账 数据传输对象数组</param>
void BatchStock(List<StockBillKeepingDto> dtolist, Guid merchantId,string UserName);
/// <summary>
/// 设置会员到店时间信息
/// </summary>
/// <param name="memberId"></param>
/// <param name="shopId"></param>
void SetMemberShopTime(Guid memberId, Guid shopId, Guid MerchantId);
/// <summary>
/// 设置会员到店服务时间信息
/// </summary>
/// <param name="memberId"></param>
/// <param name="shopId"></param>
void SetMemberServiceTime(Guid memberId, Guid shopId, Guid MerchantId);
/// <summary>
/// 卡券数量登记
/// </summary>
/// <param name="dto"></param>
List<MemberServiceBookBillKeepingDto> CardBook(CardBookDto dto);
/// <summary>
/// 计算一条订单的业绩
/// </summary>
/// <param name="act"></param>
void SetMemberExpenses(Object act1);
/// <summary>
/// 核销门票
/// </summary>
/// <param name="sheetId"></param>
void ChangeActivityStatus(Guid sheetId);
/// <summary>
/// 批量计算时间范围内的所有订单的业绩中间报表数
/// </summary>
/// <param name="begin"></param>
/// <param name="end"></param>
void BatchSetMemberExpenses(DateTime begin, DateTime end);
/// <summary>
/// 清零指定加盟商的积分
/// </summary>
/// <param name="customerId"></param>
/// <param name="days">截止日期</param>
/// <param name="shopId">指定店铺</param>
void ClearIntegralByCustomerId(Guid? customerId, DateTime? days = null, Guid? shopId = null);
/// <summary>
/// 修改获奖记录的兑换状态为已兑换
/// </summary>
/// <param name="sheetId"></param>
void ChangeMemberPrizeItem(Guid sheetId);
/// <summary>
/// 计算分销佣金
/// </summary>
/// <param name="id"></param>
void CalculateCommission(string id);
/// <summary>
/// 调度计算业绩新老客
/// </summary>
/// <param name="json"></param>
void TaskSetRpShopMemberAnalyzeLog2207(string json);
/// <summary>
///分析一条订单是首单还是复购或者都不是
/// </summary>
/// <param name="staMemberExpensesRecord"></param>
StaMemberExpensesRecord SetShouDanFuGou(StaMemberExpensesRecord staMemberExpensesRecord);
/// <summary>
/// 刷业绩记录是否护肤类服务字段
/// </summary>
/// <param name="begin"></param>
/// <param name="end"></param>
void SetHuFu(DateTime begin, DateTime end);
/// <summary>
/// 临时的刷业绩计算结果的支付字段数值,修复BUG记录
/// </summary>
/// <param name="days"></param>
/// <param name="end"></param>
void SaveReturnSheetTemp(DateTime days, DateTime end);
/// <summary>
/// 恢复指定加盟商的被清零的会员积分
/// </summary>
/// <param name="customerId"></param>
void ResumeMemberIntegral(Guid? customerId, DateTime begin, DateTime end );
/// <summary>
/// 传店铺ID和加盟商ID获得对应的同规则店铺ID数组
/// </summary>
/// <param name="customerId"></param>
/// <param name="shopId"></param>
/// <returns></returns>
List<Guid> GetShopAssetRules(Guid? customerId, Guid shopId);
/// <summary>
/// 获取需要记账的积分数(如果返回0不需要记账)
/// </summary>
/// <returns></returns>
int GetIntegralToBook(Guid merchantId, Guid memberGradeId, decimal totalAmount);
/// <summary>
/// 补记录计算一条订单的业绩
/// </summary>
/// <param name="act"></param>
void BuLuMemberExpenses(MemberExpensesAct act);
/// <summary>
/// 记录服务手工费
/// </summary>
/// <param name="headSheetId"></param>
/// <param name="customerId"></param>
void SetShouGongFeiBooks(Guid headSheetId, Guid? customerId);
}
}

View File

@@ -1,133 +0,0 @@
using IO.Swagger.Model;
using MyCode.Project.Domain.Businesses;
using MyCode.Project.Domain.Dtos.Common;
using MyCode.Project.Domain.Model;
using MyCode.Project.Domain.Procs;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 通用模块 相关服务
/// </summary>
public interface ICommonService
{
/// <summary>
/// 获取流水编码,前缀使用<see cref="LxmConst.SerialCode"/>常量
/// </summary>
/// <param name="prefix">前缀</param>
/// <returns></returns>
string GetSerialCode(string prefix);
/// <summary>
/// 获取流水编码,前缀使用<see cref="LxmConst.SerialCode"/>常量
/// </summary>
/// <param name="prefix">前缀</param>
/// <param name="shopId">店铺ID</param>
/// <returns></returns>
string GetSerialCode(string prefix, Guid shopId);
/// <summary>
/// 获取店员编码
/// </summary>
/// <returns></returns>
string GetClerkCode();
/// <summary>
/// 获取支付流水号
/// </summary>
/// <param name="paySupply">1 招商银行支付 2 富友支付</param>
/// <returns></returns>
string GetPaySerialCode(int paySupply = 2);
/// <summary>
/// 业务单据从临时表转换到正式表
/// </summary>
/// <param name="proc">临时表转正式表</param>
void TempTableToOfficialTabel(ProcTemp2Official proc);
/// <summary>
/// 执行存储过程 - 业务单据从临时表转换到正式表并标记0表为已删除状态
/// </summary>
/// <param name="proc">临时表转正式表</param>
void ProcTempTableToOfficialTableForSalesSheet(ProcTemp2Official proc);
/// <summary>
/// 获取空白国际码列表
/// </summary>
/// <param name="qty">获取数量</param>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
List<BarcodeDto> GetBlankBarcodeList(int qty, Guid merchantId);
/// <summary>
/// 获取区域详情地址
/// </summary>
/// <param name="state">省份</param>
/// <param name="city">城市</param>
/// <param name="district">区域</param>
/// <param name="address">详细地址</param>
/// <returns></returns>
string GetRegionAddress(Guid? state, Guid? city, Guid? district, string address = "");
/// <summary>
/// 处理区域详细地址
/// </summary>
/// <param name="list">区域数据传输对象</param>
void HandlerRegionAddress<T>(List<T> list) where T : IRegionDto;
/// <summary>
/// 获取数据配置
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="code">编码</param>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
T GetDataConfig<T>(string code, Guid merchantId);
/// <summary>
/// 创建条码
/// </summary>
/// <param name="content">内容</param>
/// <returns></returns>
string CreateBarcode(string content);
/// <summary>
/// 创建二维码
/// </summary>
/// <param name="content">内容</param>
/// <returns></returns>
string CreateQrCode(string content);
/// <summary>
/// 获取当前星期几 返回字符串
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
string Getweek(int value);
/// <summary>
/// 计算两点位置的距离,返回两点的距离,单位 米
/// 该公式为GOOGLE提供误差小于0.2米
/// </summary>
/// <param name="lng1">第一点经度</param>
/// <param name="lat1">第一点纬度</param>
/// <param name="lng2">第二点经度</param>
/// <param name="lat2">第二点纬度</param>
/// <returns></returns>
double GetDistance(double lng1, double lat1, double lng2, double lat2);
/// <summary>
/// 计算订单明细的分摊单价的公共方法
/// </summary>
/// <param name="sheetItem">订单明细</param>
/// <param name="totalAmount">订单含余额支付的总金额</param>
/// <param name="cashAmount">订单不含余额支付的总金额</param>
/// <returns></returns>
List<BusSalesSheetItem> GetCalPriceAndRevenuePrice(List<BusSalesSheetItem> sheetItem, decimal totalAmount, decimal? cashAmount);
}
}

View File

@@ -1,71 +0,0 @@
using MyCode.Project.Domain.Message.Request.CouponActivity;
using MyCode.Project.Domain.Message.Request.Message;
using MyCode.Project.Domain.Message.Response.CouponActivity;
using MyCode.Project.Domain.Message.Response.SalesSheet;
using MyCode.Project.Domain.Model;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 账单记录模块 相关服务
/// </summary>
public interface ICouponActityDllService
{
/// <summary>
/// 需要判断条件的会员领取的活动优惠券的方法
/// </summary>
/// <param name="couponActivityId">优惠券活动ID</param>
/// <param name="shopId">领取优惠券的店铺ID</param>
/// <param name="customerId">优惠券所属加盟商ID</param>
/// <param name="memberId">领取优惠券的会员ID</param>
/// <param name="fromCustomerId">来源加盟商ID</param>
/// <param name="fromClerkId">来源店员ID</param>
/// <param name="fromMemberId">来源会员ID</param>
/// <param name="sourceType">分享来源类型 0加盟商 1店员 2会员 3:自主领取</param>
/// <param name="couponIds">提前知道的优惠券ID</param>
/// <param name="getType">到账类型 0=直接到账 -1=要点领取按钮</param>
AddCouponResp MemberGetCouponList(MemberGetCouponListAct act,int AddType=0);
/// <summary>
/// 生日优惠券发放
/// </summary>
/// <param name="nowstring"></param>
void BirthDayCoupon(string nowstring);
/// <summary>
/// 添加调度任务发放生日优惠券
/// </summary>
void AddBirthDayCouponTask();
/// <summary>
/// 根据会员已有优惠券和商品ID,返回符合订单条件的优惠券ID
/// </summary>
/// <param name="couponMemberList"></param>
/// <param name="barcodeIds"></param>
/// <returns></returns>
List<Guid> CanUseCoupon(List<BasCouponMember> couponMemberList, decimal totalAmount, List<SheetItemResp> sheetItemList);
/// <summary>
/// 无需判断直接发放优惠券的方法
/// </summary>
/// <param name="act"></param>
void SendCoupon(SendCouponAct act);
/// <summary>
/// 按门店赠送优惠券直接到账的调度方法
/// </summary>
/// <param name="json"></param>
void AutoSendMemberCouponList(string json);
/// <summary>
/// 判断是否允许领取优惠券
/// </summary>
/// <param name="act"></param>
/// <returns></returns>
AddCouponResp CheckIfCanGet(MemberGetCouponListAct act, int AddType = 0);
}
}

View File

@@ -1,109 +0,0 @@
using MyCode.Project.Domain.Businesses.FileManager;
using MyCode.Project.Domain.Dtos.Request.Act;
using MyCode.Project.Domain.Message.Response.Common;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Enumeration;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 文件管理器模块 相关服务
/// </summary>
public interface IFileManagerService
{
/// <summary>
/// 获取文件分页列表
/// </summary>
/// <param name="search">查询条件</param>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
PageResult<FileInfo> GetPageList(PagedSearch<FileSearch> search, Guid merchantId);
/// <summary>
/// 保存文件
/// </summary>k
/// <param name="act">文件信息 操作</param>
/// <param name="merchantId">商家ID</param>
Guid Save(FileInfo act, Guid merchantId);
/// <summary>
/// 获取文件详情
/// </summary>
/// <param name="id">文件ID</param>
/// <returns></returns>
FileInfo GetDetial(Guid id);
/// <summary>
/// 保存文件组
/// </summary>
/// <param name="act">文件组 操作</param>
/// <param name="merchantId">商家ID</param>
void SaveGroup(List<FileGroupAct> act, Guid merchantId);
/// <summary>
/// 获取文件组下拉列表
/// </summary>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
List<ItemResult> GetGroupDropdownList(Guid merchantId);
/// <summary>
/// 获取文件组列表
/// </summary>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
List<FileGroupInfo> GetGroupList(Guid merchantId);
/// <summary>
/// 获取文件组统计列表
/// </summary>
/// <param name="merchantId">商家ID</param>
/// <returns></returns>
List<FileGroupCountInfo> GetGroupCountList(Guid merchantId);
/// <summary>
/// 保存关联文件
/// </summary>
/// <param name="fileUse">关联文件</param>
/// <param name="dataId">数据ID</param>
/// <param name="businessType">文件业务类型</param>
/// <param name="merchantId">商家ID</param>
void SaveUse(FileUse fileUse, Guid dataId, FileBusinessType businessType, Guid merchantId);
/// <summary>
/// 保存关联文件
/// </summary>
/// <param name="fileUses">关联文件集合</param>
/// <param name="dataId">数据ID</param>
/// <param name="businessType">文件业务类型</param>
/// <param name="merchantId">商家ID</param>
/// <param name="isMain">是否主文件,true:是,false:否</param>
void SaveUse(List<FileUse> fileUses, Guid dataId, FileBusinessType businessType, Guid merchantId, bool isMain);
/// <summary>
/// 获取关联文件
/// </summary>
/// <param name="dataId">数据ID</param>
/// <param name="businessType">文件业务类型</param>
/// <returns></returns>
FileUse GetUse(Guid dataId, FileBusinessType businessType);
/// <summary>
/// 获取关联文件列表
/// </summary>
/// <param name="dataId">数据ID</param>
/// <param name="businessType">文件业务类型</param>
/// <returns></returns>
List<FileUse> GetUseList(Guid dataId, FileBusinessType businessType);
/// <summary>
/// 获取关联文件列表
/// </summary>
/// <param name="dataId">数据ID</param>
/// <param name="businessType">文件业务类型</param>
/// <returns></returns>
List<FileUse> GetUseList(List<Guid> dataIds, FileBusinessType businessType);
}
}

View File

@@ -1,27 +0,0 @@
using MyCode.Project.Domain.Businesses;
using MyCode.Project.Domain.Dtos.Common;
using MyCode.Project.Domain.Model;
using MyCode.Project.Domain.Procs;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 在线支付 相关服务
/// </summary>
public interface IOnlinePayService
{
/// <summary>
/// 单一在线付款方式的退款逻辑
/// </summary>
/// <param name="oriOrderPay"></param>
/// <param name="sheetId"></param>
/// <param name="shopId"></param>
/// <param name="sheet"></param>
/// <param name="payAmount">退款金额</param>
/// <param name="SheetType">业务类型。100=充值8010=销售8011=预售</param>
BusOrderRefundLog RefundMoney(BusOrderPay oriOrderPay, Guid sheetId, Guid shopId, string sheet, decimal payAmount, int SheetType);
}
}

View File

@@ -1,62 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Services
{
/// <summary>
/// 价格模块 相关服务
/// </summary>
public partial interface IPriceService
{
/// <summary>
/// 获取客户价格,客户做单时使用
/// </summary>
/// <param name="customerId">客户ID/加盟商ID</param>
/// <param name="barcodeId">条码ID商品ID</param>
/// <returns></returns>
decimal GetCustomerPrice(Guid customerId, Guid barcodeId);
/// <summary>
/// 获取店铺价格,店铺做单时使用
/// </summary>
/// <param name="shopId">店铺ID</param>
/// <param name="barcodeId">条码ID商品ID</param>
/// <returns></returns>
decimal GetShopPrice(Guid shopId, Guid barcodeId);
/// <summary>
/// 获取销售价格,店铺销售时使用
/// </summary>
/// <param name="shopId">店铺ID</param>
/// <param name="barcodeId">条码ID商品ID</param>
/// <param name="memberId">会员ID</param>
/// <returns></returns>
decimal GetSellPrice(Guid shopId, Guid barcodeId, Guid? memberId, Guid MerchantId);
/// <summary>
/// 根据barcodeId取商品吊牌价
/// </summary>
/// <param name="barcodeId"></param>
/// <returns></returns>
decimal GetBasePrice(Guid barcodeId, Guid MerchantId);
/// <summary>
/// 根据barcodeId,memberId获取会员价
/// </summary>
/// <param name="barcodeId"></param>
/// <param name="memberId"></param>
/// <returns></returns>
decimal GetMemberPrice(Guid barcodeId, Guid memberId, Guid MerchantId);
/// <summary>
/// 取成商品本价
/// </summary>
/// <param name="barcodeId"></param>
/// <returns></returns>
decimal? GetCost(Guid barcodeId, Guid MerchantId);
}
}

View File

@@ -1,21 +0,0 @@
using MyCode.Project.Domain.Businesses;
using MyCode.Project.Domain.Dtos.Common;
using MyCode.Project.Domain.Procs;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
/// <summary>
/// 通用模块 相关服务
/// </summary>
public interface IRedisService
{
/// <summary>
/// 获取模糊搜索的所有的key
/// </summary>
/// <returns></returns>
List<string> GetAllKeys(string key = "WebSocket*");
}
}

View File

@@ -18,5 +18,7 @@ namespace MyCode.Project.Services
/// 调度定时登录账号信息
/// </summary>
void TaskGetUserByAccount();
void AddTask();
}
}

View File

@@ -137,5 +137,13 @@ namespace MyCode.Project.Services.Implementation
});
//_workProcessService.Add<IStaffDataEnterpriseWechatService>(this.MerchantId, "InitDepartment", "刷企业微信数据", "", 2);
}
public void AddTask()
{
_workProcessService.Add<IStaffDataEnterpriseWechatService>(this.MerchantId, "TaskGetPasswordData", "定时获取用户登录参数", "", 2);
_workProcessService.Add<IStaffDataEnterpriseWechatService>(this.MerchantId, "TaskGetUserByAccount", "调度定时登录账号信息", "", 2);
}
}
}