This commit is contained in:
2020-07-04 14:41:25 +08:00
parent 70c346d2c1
commit a8f02e4da5
3748 changed files with 587372 additions and 0 deletions

View 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b4a71a75c6e1d4231bb9caacffcd201e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cf0e4f2f2aed841a1a87926c2d6618ce
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0236c445b3cb04c3a92215306f799ce5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: da4c2af482c7b4dc5acc818c7a483ee7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View 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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c3f39a8734a8b41169bbfec40ad03bac
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: