add
This commit is contained in:
115
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBCust.lua
Normal file
115
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBCust.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
---@class _DBCust
|
||||
---@field custName
|
||||
---@field custType
|
||||
---@field phone
|
||||
---@field address
|
||||
---@field companyName
|
||||
---@field taskId
|
||||
---@field serviceNo
|
||||
---@field companyid
|
||||
---@field jsonstr
|
||||
---@field dealflag
|
||||
---@field custFrom
|
||||
---@field customerLabel
|
||||
---@field assignTime
|
||||
---@field lastFollowUpTime
|
||||
---@field loginNo
|
||||
---@field createTime
|
||||
---@field uploginno
|
||||
---@field updateTime
|
||||
|
||||
--================================================
|
||||
DBCust = {}
|
||||
local db = {}
|
||||
|
||||
DBCust.FilterGroup = {
|
||||
custFromList = "custFromList", -- 客户来源
|
||||
custTypeList = "custTypeList", -- list 客户类型
|
||||
dealFlagList = "dealFlagList", -- list 客户状态
|
||||
loginNoList = "loginNoList", -- list 归属工号
|
||||
taskList = "taskList" -- list 任务名称
|
||||
}
|
||||
|
||||
DBCust.FieldType = {
|
||||
popuplist = "下拉框",
|
||||
checkbox = "复选框",
|
||||
multext = "大文本框",
|
||||
number = "数字文本框",
|
||||
dateTime = "时间文本框",
|
||||
text = "普通文本框",
|
||||
phone = "电话号码框"
|
||||
}
|
||||
|
||||
DBCust.onGetFilter = function(data)
|
||||
db.filters = data
|
||||
local list = {}
|
||||
for i, v in ipairs(data.loginNoList or {}) do
|
||||
table.insert(list, {name = v.loginName, value = v.loginNo})
|
||||
end
|
||||
db.filters.loginNoList = list
|
||||
|
||||
-- 转换成poplist
|
||||
db.taskFields = {}
|
||||
db.filtersPopup = {}
|
||||
for k, cells in pairs(data) do
|
||||
db.filtersPopup[k] = {}
|
||||
---@type System.Collections.ArrayList
|
||||
db.filtersPopup[k].options = ArrayList()
|
||||
db.filtersPopup[k].values = ArrayList()
|
||||
|
||||
db.filtersPopup[k].options:Add("")
|
||||
db.filtersPopup[k].values:Add("")
|
||||
for i, s in ipairs(cells) do
|
||||
db.filtersPopup[k].options:Add(s.name)
|
||||
db.filtersPopup[k].values:Add(tostring(s.value))
|
||||
if k == DBCust.FilterGroup.taskList then
|
||||
db.taskFields[tostring(s.value)] = s.fieldAttr -- 设置任务的扩展字段
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 加上“全部”的选择
|
||||
--[[
|
||||
for k, v in pairs(DBCust.FilterGroup) do
|
||||
local list = DBCust.getFilter(v)
|
||||
if list then
|
||||
table.insert(list, 1, {name = "全部", value = -1})
|
||||
end
|
||||
end
|
||||
]]
|
||||
end
|
||||
|
||||
DBCust.getFieldsByTask = function(taskValue)
|
||||
return db.taskFields[taskValue]
|
||||
end
|
||||
|
||||
DBCust.getFilter = function(filterName)
|
||||
if filterName then
|
||||
return db.filters[filterName]
|
||||
end
|
||||
return db.filters
|
||||
end
|
||||
|
||||
DBCust.getFilter4Popup = function(filterName)
|
||||
if filterName then
|
||||
return db.filtersPopup[filterName]
|
||||
end
|
||||
return db.filters
|
||||
end
|
||||
|
||||
DBCust.onGetCusts = function(list)
|
||||
db.custs = list
|
||||
end
|
||||
|
||||
-- DBCust.getCusts = function(callback)
|
||||
-- if db.custs == nil then
|
||||
-- NetProto.send.list_customers()
|
||||
-- end
|
||||
-- return db.custs
|
||||
-- end
|
||||
|
||||
DBCust.clean = function()
|
||||
db = {}
|
||||
end
|
||||
|
||||
return DBCust
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4a71a75c6e1d4231bb9caacffcd201e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
156
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBMessage.lua
Normal file
156
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBMessage.lua
Normal file
@@ -0,0 +1,156 @@
|
||||
---@class _DBMessage
|
||||
---@field public CONTENT string
|
||||
---@field public NOTICETYPE number
|
||||
---@field public TITLE string
|
||||
---@field public CREATETIME number
|
||||
---@field public READFLAG number
|
||||
---@field public ID number
|
||||
|
||||
---@class _DBTaskCust
|
||||
---@field bookingDone number
|
||||
---@field custId
|
||||
---@field companyName
|
||||
---@field custName
|
||||
---@field taskId
|
||||
---@field companyId
|
||||
---@field phone
|
||||
---@field dealFlag
|
||||
---@field bookingDone
|
||||
---@field loginNo
|
||||
---@field bookingtime
|
||||
---@field createtime
|
||||
|
||||
---@class _DBReplenish
|
||||
---@field companyId
|
||||
---@field productId
|
||||
---@field wfId
|
||||
---@field differCount
|
||||
---@field status
|
||||
---@field doneTime
|
||||
---@field startTime
|
||||
---@field loseTime
|
||||
---@field loseFlag
|
||||
---@field note
|
||||
---@field wfName
|
||||
---@field productName
|
||||
---@field loseLimit
|
||||
---@field avgPrice
|
||||
|
||||
DBMessage = {}
|
||||
local db = {}
|
||||
local chachePath
|
||||
DBMessage.MsgType = {
|
||||
Sys = 2, -- 系统公告
|
||||
SysNotice = 3, -- 系统通知
|
||||
Task = 4,
|
||||
Task4Cust = 5, -- 跟进客户
|
||||
Task4Support = 6 -- 代办补货
|
||||
}
|
||||
|
||||
DBMessage.ReadFlag = {
|
||||
unread = 0,
|
||||
readed = 1
|
||||
}
|
||||
|
||||
DBMessage.BookingDone = {
|
||||
effect = 0, --
|
||||
finish = 1,
|
||||
none = 2
|
||||
}
|
||||
|
||||
DBMessage.init = function()
|
||||
-- 取得本地缓存的数据
|
||||
local phone = Prefs.getUserName()
|
||||
chachePath = Path.Combine(Application.persistentDataPath, "trcrm", phone, "message.chache")
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(chachePath))
|
||||
local content = FileEx.ReadAllText(chachePath)
|
||||
if not isNilOrEmpty(content) then
|
||||
db = json.decode(content)
|
||||
else
|
||||
db.list = {}
|
||||
db.lastGetTime = {}
|
||||
end
|
||||
end
|
||||
|
||||
DBMessage.clean = function()
|
||||
db = {}
|
||||
db.list = {}
|
||||
db.lastGetTime = {}
|
||||
end
|
||||
|
||||
DBMessage.onGetMessage = function(type, list)
|
||||
if not list then
|
||||
return
|
||||
end
|
||||
db.list = db.list or {}
|
||||
db.list[type] = db.list[type] or {}
|
||||
db.lastGetTime = db.lastGetTime or {}
|
||||
db.lastGetTime[type] = list[1].CREATETIME -- 更新最后取得的时间
|
||||
---@param v _DBMessage
|
||||
for i, v in ipairs(list) do
|
||||
table.insert(db.list[type], v) -- 倒序
|
||||
end
|
||||
-- //TODO:保存到本地
|
||||
end
|
||||
|
||||
DBMessage.getMessages = function(type)
|
||||
return db.list[type] or {}
|
||||
end
|
||||
|
||||
---public 取得最近的一条消息
|
||||
function DBMessage.getNewestMessage(type)
|
||||
if type == DBMessage.MsgType.Task then
|
||||
---@type _DBTaskCust
|
||||
local cust = DBMessage.getNewestMessage(DBMessage.MsgType.Task4Cust)
|
||||
---@type _DBReplenish
|
||||
local replan = DBMessage.getNewestMessage(DBMessage.MsgType.Task4Support)
|
||||
if cust and replan then
|
||||
return cust.createtime > replan.startTime and cust or replan
|
||||
else
|
||||
return cust and cust or replan
|
||||
end
|
||||
return nil
|
||||
else
|
||||
local list = db.list[type]
|
||||
if list then
|
||||
return list[1]
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function DBMessage.getUnreadNum(type)
|
||||
local count = 0
|
||||
if type == DBMessage.MsgType.Sys then
|
||||
local list = DBMessage.getMessages(type)
|
||||
---@param v _DBMessage
|
||||
for i, v in ipairs(list) do
|
||||
if v.READFLAG == DBMessage.ReadFlag.unread then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
elseif type == DBMessage.MsgType.Task then
|
||||
return DBMessage.getUnreadNum(DBMessage.MsgType.Task4Cust) +
|
||||
DBMessage.getUnreadNum(DBMessage.MsgType.Task4Support)
|
||||
elseif type == DBMessage.MsgType.Task4Cust then
|
||||
local list = DBMessage.getMessages(DBMessage.MsgType.Task4Cust)
|
||||
---@param v _DBTaskCust
|
||||
for i, v in ipairs(list) do
|
||||
if v.bookingDone == DBMessage.BookingDone.effect then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
elseif type == DBMessage.MsgType.Task4Support then
|
||||
local list = DBMessage.getMessages(DBMessage.MsgType.Task4Cust)
|
||||
---@param v _DBReplenish
|
||||
for i, v in ipairs(list) do
|
||||
if v.status == 0 then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
return DBMessage
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf0e4f2f2aed841a1a87926c2d6618ce
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
51
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBRoot.lua
Normal file
51
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBRoot.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
require "net.NetProto"
|
||||
require "db.DBMessage"
|
||||
require "db.DBCust"
|
||||
require "db.DBStatistics"
|
||||
require "db.DBUser"
|
||||
|
||||
---@class DBRoot
|
||||
DBRoot = {}
|
||||
DBRoot.db = {}
|
||||
DBRoot.init = function()
|
||||
DBMessage.init()
|
||||
NetProto.setReceiveCMDCallback(DBRoot.onReceiveData)
|
||||
end
|
||||
|
||||
DBRoot.clean = function()
|
||||
DBRoot.db = {}
|
||||
DBMessage.clean()
|
||||
DBCust.clean()
|
||||
DBStatistics.clean()
|
||||
DBUser.clean()
|
||||
end
|
||||
|
||||
DBRoot.funcs = {
|
||||
[NetProto.cmds.announcement_query] = function(data) -- 公告
|
||||
DBMessage.onGetMessage(DBMessage.MsgType.Sys, data.result)
|
||||
end,
|
||||
[NetProto.cmds.booking_query] = function(data) -- 待跟进客户
|
||||
DBMessage.onGetMessage(DBMessage.MsgType.Task4Cust, data.result)
|
||||
end,
|
||||
[NetProto.cmds.replenish_query] = function(data) -- 待跟进客户
|
||||
DBMessage.onGetMessage(DBMessage.MsgType.Task4Support, data.result)
|
||||
end,
|
||||
[NetProto.cmds.filter_customers] = function(data) -- 过滤条件
|
||||
DBCust.onGetFilter(data.result)
|
||||
end,
|
||||
[NetProto.cmds.list_customers] = function(data)
|
||||
DBCust.onGetCusts(data.result)
|
||||
end,
|
||||
}
|
||||
|
||||
DBRoot.onReceiveData = function(cmd, data)
|
||||
local func = DBRoot.funcs[cmd]
|
||||
if func then
|
||||
func(data)
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------------------------------
|
||||
------------------------------------------------------------
|
||||
|
||||
return DBRoot
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0236c445b3cb04c3a92215306f799ce5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
60
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBStatistics.lua
Normal file
60
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBStatistics.lua
Normal file
@@ -0,0 +1,60 @@
|
||||
DBStatistics = {}
|
||||
local db = {}
|
||||
local lastGetTime = {}
|
||||
local timeOut = 60 * 1000
|
||||
|
||||
DBStatistics.clean = function()
|
||||
end
|
||||
|
||||
DBStatistics.custtype_report = function(callback)
|
||||
if db.custtype_report == nil or lastGetTime.custtype_report == nil or DateEx.nowMS - lastGetTime.custtype_report > 0 then
|
||||
lastGetTime.custtype_report = DateEx.nowMS + timeOut
|
||||
NetProto.send.custtype_report(
|
||||
nil,
|
||||
function(content)
|
||||
if content.success then
|
||||
db.custtype_report = content
|
||||
end
|
||||
callback(content)
|
||||
end
|
||||
)
|
||||
else
|
||||
Utl.doCallback(callback, db.custtype_report)
|
||||
end
|
||||
end
|
||||
|
||||
DBStatistics.order_report = function(callback)
|
||||
if db.order_report == nil or lastGetTime.order_report == nil or DateEx.nowMS - lastGetTime.order_report > 0 then
|
||||
lastGetTime.order_report = DateEx.nowMS + timeOut
|
||||
NetProto.send.order_report(
|
||||
nil,
|
||||
function(content)
|
||||
if content.success then
|
||||
db.order_report = content
|
||||
end
|
||||
callback(content)
|
||||
end
|
||||
)
|
||||
else
|
||||
Utl.doCallback(callback, db.order_report)
|
||||
end
|
||||
end
|
||||
|
||||
DBStatistics.target_report = function(callback)
|
||||
if db.target_report == nil or lastGetTime.target_report == nil or DateEx.nowMS - lastGetTime.target_report > 0 then
|
||||
lastGetTime.target_report = DateEx.nowMS + timeOut
|
||||
NetProto.send.target_report(
|
||||
nil,
|
||||
function(content)
|
||||
if content.success then
|
||||
db.target_report = content
|
||||
end
|
||||
callback(content)
|
||||
end
|
||||
)
|
||||
else
|
||||
Utl.doCallback(callback, db.target_report)
|
||||
end
|
||||
end
|
||||
|
||||
return DBStatistics
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da4c2af482c7b4dc5acc818c7a483ee7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
24
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBUser.lua
Normal file
24
Assets/trCRM/upgradeRes4Dev/priority/lua/db/DBUser.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
---@class _DBUser
|
||||
---@field loginNo
|
||||
---@field loginName
|
||||
---@field groupId
|
||||
---@field imageUrl string 头像
|
||||
|
||||
DBUser = {}
|
||||
local db = {}
|
||||
|
||||
function DBUser.onGetUsers(list)
|
||||
for i, v in ipairs(list) do
|
||||
db[v.loginNo] = v
|
||||
end
|
||||
end
|
||||
|
||||
function DBUser.getUserById(loginNo)
|
||||
return db[loginNo]
|
||||
end
|
||||
|
||||
function DBUser.clean()
|
||||
db = {}
|
||||
end
|
||||
|
||||
return DBUser
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3f39a8734a8b41169bbfec40ad03bac
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user