<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\controller;
use app\Request;
use app\services\order\StoreOrderCartInfoServices;
use app\services\order\StoreOrderCreateServices;
use app\services\order\StoreOrderRefundServices;
use app\services\order\StoreOrderServices;
use app\services\user\UserBillServices;
use app\services\user\UserBrokerageServices;
use app\services\user\UserMoneyServices;
use app\services\user\UserBrokerageFrozenServices;
use think\facade\Db;
use app\services\user\UserServices;
class UpgradeController
{
/**
* @param string $field
* @param int $n
* @return bool
*/
public function setIsUpgrade(string $field, int $n = 0)
{
$upgrade = parse_ini_file(app()->getRootPath() . '/.upgrade');
if ($n) {
if (!is_array($upgrade)) {
$upgrade = [];
}
$string = '';
foreach ($upgrade as $key => $item) {
$string .= $key . '=' . $item . "\r\n";
}
$string .= $field . '=' . $n . "\r\n";
file_put_contents(app()->getRootPath() . '/.upgrade', $string);
return true;
} else {
if (!is_array($upgrade)) {
return false;
}
return isset($upgrade[$field]);
}
}
/**
* 获取当前版本号
* @return array
*/
public function getversion($str)
{
$version_arr = [];
$curent_version = @file(app()->getRootPath() . $str);
foreach ($curent_version as $val) {
list($k, $v) = explode('=', $val);
$version_arr[$k] = $v;
}
return $version_arr;
}
public function index(Request $request)
{
$data = $this->upData();
$Title = "CRMEB升级程序";
$Powered = "Powered by CRMEB";
//获取当前版本号
$version_now = $this->getversion('.version')['version'];
$version_new = $data['new_version'];
$isUpgrade = true;
$executeIng = false;
return view('/upgrade/step1', [
'title' => $Title,
'powered' => $Powered,
'version_now' => $version_now,
'version_new' => $version_new,
'isUpgrade' => json_encode($isUpgrade),
'executeIng' => json_encode($executeIng),
'next' => 1,
'action' => 'upgrade'
]);
}
public function upgrade(Request $request)
{
list($sleep, $page, $prefix) = $request->getMore([
['sleep', 0],
['page', 1],
['prefix', 'eb_'],
], true);
$data = $this->upData();
$code_now = $this->getversion('.version')['version_code'];
$sql_arr = [];
foreach ($data['update_sql'] as $items) {
if ($items['code'] > $code_now) {
$sql_arr[] = $items;
}
}
if (!isset($sql_arr[$sleep])) {
file_put_contents(app()->getRootPath() . '.version', "version=" . $data['new_version'] . "\nversion_code=" . $data['new_code']);
return app('json')->successful(['sleep' => -1]);
}
$sql = $sql_arr[$sleep];
Db::startTrans();
try {
if ($sql['type'] == 1) {
if (isset($sql['findSql']) && $sql['findSql']) {
$table = $prefix . $sql['table'];
$findSql = str_replace('@table', $table, $sql['findSql']);
if (!empty(Db::query($findSql))) {
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表已存在';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
}
if (isset($sql['sql']) && $sql['sql']) {
$upSql = $sql['sql'];
$upSql = str_replace('@table', $table, $upSql);
Db::execute($upSql);
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表添加成功';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
} elseif ($sql['type'] == 2) {
if (isset($sql['findSql']) && $sql['findSql']) {
$table = $prefix . $sql['table'];
$findSql = str_replace('@table', $table, $sql['findSql']);
if (empty(Db::query($findSql))) {
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表不存在';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
}
if (isset($sql['sql']) && $sql['sql']) {
$upSql = $sql['sql'];
$upSql = str_replace('@table', $table, $upSql);
Db::execute($upSql);
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表删除成功';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
} elseif ($sql['type'] == 3) {
if (isset($sql['findSql']) && $sql['findSql']) {
$table = $prefix . $sql['table'];
$findSql = str_replace('@table', $table, $sql['findSql']);
if (!empty(Db::query($findSql))) {
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表中' . $sql['field'] . '已存在';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
}
if (isset($sql['sql']) && $sql['sql']) {
$upSql = $sql['sql'];
$upSql = str_replace('@table', $table, $upSql);
Db::execute($upSql);
$item['table'] = $table;
$item['status'] = 1;
$item['error'] = $table . '表中' . $sql['field'] . '字段添加成功';
$item['sleep'] = $sleep + 1;
$item['add_time'] = date('Y-m-d H:i:s', time());
Db::commit();
return app('json')->successful($item);
}
} elseif ($sql['type'] == 4) {
if (isset($sql['findSql']) && $sql['findSql']) {
$table = $prefix . $sql['table'];
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
一、更新说明 营销活动 1. 新增优惠折扣券,优化领取优惠券样式 2. 新增限时折扣 3. 新增满减满折 4. 新增满送活动 5. 新增第N件N折 门店 1.独立的门店收银台 2.将门店收银、挂单、订单发货、门店核销、会员充值等功能,合并为一个独立的店员操作台 3.优化: (1)企业微信、微信公众平台、登录账号统一 (2)门店商品,可选择商品一键复制平台库存数量 (3)移动端商品详情门店样式优化,门店列表页优化 导购 1. 对接企业微信,对接企业微信客户标签 2. 新增企业微信右侧工具栏,显示客户信息、订单信息、购买记录 3. 新增客户管理,包含企微渠道码、欢迎语、客户群发、朋友圈发布、客户列表(企微与非企微) 4. 新增客户群管理,包含客户群列表、自动拉群、客户群群发 5. 新增员工列表 商品 商品评价 1. 商品评价大图展示,多图展示优化 2. 增加二级评论,商户皆可回复 3. 增加点赞和评论浏览量 备注:本源码为官方正版源码,非破解版,仅供下载研究学习,商业使用请联系购买授权!
资源推荐
资源详情
资源评论
收起资源包目录
CRMEB Pro商城系统多门店+门店收银+企业微信PRO_M_v2.2.0_to_v2.2.1(20220601)(更新包) (6371个子文件)
.browserslistrc 33B
.browserslistrc 33B
.browserslistrc 33B
chunk-5ac3c3f2.8994efd8.css 1.31MB
chunk-7d0dfaf6.08d0f883.css 1.29MB
google.min.css 1.29MB
google.min.css 1.29MB
google.min.css 1.29MB
app.9f4c0a56.css 503KB
app.22714780.css 503KB
app.2e90989e.css 487KB
chunk-vendors.70597500.css 337KB
chunk-0df614b3.b2344c5d.css 234KB
chunk-vendors.dca943f0.css 101KB
chunk-vendors.81c82c08.css 98KB
index.a5c69d49.css 92KB
guildford.css 71KB
guildford.css 71KB
guildford.css 71KB
google.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
emojione.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
facebook.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
messenger.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
twitter.min.css 61KB
google.min.css 60KB
google.min.css 60KB
google.min.css 60KB
animate.min.css 57KB
chunk-34d67e31.d7967acd.css 52KB
ueditor.css 43KB
ueditor.css 43KB
ueditor.css 43KB
ueditor.css 43KB
ueditor.css 43KB
ueditor.css 43KB
iconfontYI.css 41KB
iconfontYI.css 41KB
iconfontYI.css 41KB
apple.min.css 39KB
apple.min.css 39KB
apple.min.css 39KB
apple.min.css 39KB
apple.min.css 39KB
apple.min.css 39KB
apple.min.css 39KB
chunk-34ac1a4a.3929e47d.css 36KB
iview-pro.css 35KB
iview-pro.css 35KB
iview-pro.css 35KB
ueditor.min.css 34KB
ueditor.min.css 34KB
ueditor.min.css 34KB
ueditor.min.css 34KB
ueditor.min.css 34KB
ueditor.min.css 34KB
iconfont.css 34KB
iconfont.css 34KB
iconfont.css 34KB
base.css 30KB
base.css 30KB
base.css 30KB
iconfont.css 27KB
iconfont.css 27KB
iconfont.css 27KB
chunk-7a6f72e8.389da572.css 26KB
video-js.css 21KB
video-js.css 21KB
video-js.css 21KB
video-js.css 21KB
video-js.css 21KB
video-js.css 21KB
chunk-0c7424ac.7abcc804.css 21KB
chunk-a2652e78.d34f6416.css 18KB
image.css 18KB
image.css 18KB
image.css 18KB
共 6371 条
- 1
- 2
- 3
- 4
- 5
- 6
- 64
爱学习的卢生
- 粉丝: 239
- 资源: 82
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 道路损坏检测,可识别横向,纵向裂纹,坑洼,白线模糊,十字路口模糊,井盖等 3506张图片,支持yolov5pytorch格式的标注
- 道路损坏检测,可识别横向,纵向裂纹,坑洼,白线模糊,十字路口模糊,井盖等 3506张图片,支持yolov8格式的标注
- gcc-4.8.5-44 gcc-c++-4.8.5-44
- 旋转点胶机sw18可编辑全套技术资料100%好用.zip
- 道路损坏检测,可识别横向,纵向裂纹,坑洼,白线模糊,十字路口模糊,井盖等 3506张图片,支持yolov11格式的标注
- 如何实现分片上传功能:基于 Vue 和 iView 上传组件的详细教程
- 企业及公司额排班软件-两套
- 基于事件触发机制,具有延时矩阵的固定时间共识
- 智能排班系统-支持规则建立
- 案例图片1111111111111111111111111111111111111111111
- 华为模拟器Ensp入门视频.zip
- 小型电机正反转测试设备sw20可编辑全套技术资料100%好用.zip
- 基于7-1200的红绿灯控制系统设计 基于PLC的十字路口交通灯系统设计 基于PLC的交通信号灯系统设计
- html+css网页设计 美食 美食美客模版2个页面
- 移动式旋转阀sw18全套技术资料100%好用.zip
- 蓄电池与超级电容混合储能并网matlab simulink仿真模型 (1)混合储能采用低通滤波器进行功率分配,可有效抑制功率波动,并对超级电容的soc进行能量管理,soc较高时多放电,较低时少放电
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页