319 lines
11 KiB
PHP
319 lines
11 KiB
PHP
<?php
|
|
|
|
namespace app\common\logic;
|
|
|
|
|
|
|
|
use think\facade\Db;
|
|
/**
|
|
* ============================================================================
|
|
* 联课教育商城系统
|
|
* ============================================================================
|
|
* 版权所有 2022 刻羽互动科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.o1h.cn
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
|
|
* 不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* 逻辑层模型
|
|
*/
|
|
class Queue
|
|
{
|
|
|
|
/**
|
|
* 添加会员积分
|
|
* @param unknown $member_info
|
|
*/
|
|
public function addPoint($member_info)
|
|
{
|
|
$points_model = model('points');
|
|
$points_model->savePointslog('login', array(
|
|
'pl_memberid' => $member_info['member_id'], 'pl_membername' => $member_info['member_name']
|
|
), true);
|
|
return ds_callback(true);
|
|
}
|
|
|
|
/**
|
|
* 添加会员经验值
|
|
* @param unknown $member_info
|
|
*/
|
|
public function addExppoint($member_info)
|
|
{
|
|
$exppoints_model = model('exppoints');
|
|
$exppoints_model->saveExppointslog('login', array(
|
|
'explog_memberid' => $member_info['member_id'], 'explog_membername' => $member_info['member_name']
|
|
), true);
|
|
return ds_callback(true);
|
|
}
|
|
|
|
/**
|
|
* 更新抢购信息
|
|
* @param unknown $groupbuy_info
|
|
* @throws Exception
|
|
*/
|
|
public function editGroupbuySaleCount($groupbuy_info)
|
|
{
|
|
$groupbuy_model = model('groupbuy');
|
|
$data = array();
|
|
$data['groupbuy_buyer_count'] = Db::raw('groupbuy_buyer_count+1');
|
|
$data['groupbuy_buy_quantity'] = Db::raw('groupbuy_buy_quantity+'.$groupbuy_info['quantity']);
|
|
$update = $groupbuy_model->editGroupbuy($data, array('groupbuy_id' => $groupbuy_info['groupbuy_id']));
|
|
if (!$update) {
|
|
return ds_callback(false, '更新抢购信息失败groupbuy_id:' . $groupbuy_info['groupbuy_id']);
|
|
}
|
|
else {
|
|
return ds_callback(true);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 根据商品id更新促销价格
|
|
*
|
|
* @param int /array $goods_commonid
|
|
* @return boolean
|
|
*/
|
|
public function updateGoodsPromotionPriceByGoodsId($goods_id)
|
|
{
|
|
if(!is_array($goods_id)){
|
|
$goods_id=(string)$goods_id;
|
|
}
|
|
$update = model('goods')->editGoodsPromotionPrice(array(array('goods_id','in', $goods_id)));
|
|
if (!$update) {
|
|
return ds_callback(false, '根据商品ID更新促销价格失败');
|
|
}
|
|
else {
|
|
return ds_callback(true);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 根据商品公共id更新促销价格
|
|
*
|
|
* @param int /array $goods_commonid
|
|
* @return boolean
|
|
*/
|
|
public function updateGoodsPromotionPriceByGoodsCommonId($goods_commonid)
|
|
{
|
|
if(!is_array($goods_commonid)){
|
|
$goods_commonid=(string)$goods_commonid;
|
|
}
|
|
$update = model('goods')->editGoodsPromotionPrice(array(array('goods_commonid','in', $goods_commonid)));
|
|
if (!$update) {
|
|
return ds_callback(false, '根据商品公共id更新促销价格失败');
|
|
}
|
|
else {
|
|
return ds_callback(true);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 发送会员消息
|
|
*/
|
|
public function sendMemberMsg($param)
|
|
{
|
|
$send = new \sendmsg\sendMemberMsg();
|
|
$send->set('code', $param['code']);
|
|
$send->set('member_id', $param['member_id']);
|
|
if (!empty($param['number']['mobile']))
|
|
$send->set('mobile', $param['number']['mobile']);
|
|
if (!empty($param['number']['email']))
|
|
$send->set('email', $param['number']['email']);
|
|
$send->send($param['param'],isset($param['weixin_param'])?$param['weixin_param']:array(),isset($param['ali_param'])?$param['ali_param']:array(),isset($param['ten_param'])?$param['ten_param']:array());
|
|
return ds_callback(true);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 清理特殊商品促销信息
|
|
*/
|
|
public function clearSpecialGoodsPromotion($param)
|
|
{
|
|
// 抢购
|
|
model('groupbuy')->delGroupbuy(array('goods_commonid' => $param['goods_commonid']));
|
|
// 显示折扣
|
|
model('pxianshigoods')->delXianshigoods(array(array('goods_id','in', $param['goodsid_array'])));
|
|
// 优惠套装
|
|
model('pbundling')->delBundlingGoods(array(array('goods_id','in', $param['goodsid_array'])));
|
|
// 更新促销价格
|
|
model('goods')->editGoods(array('goods_promotion_price' => Db::raw('goods_price'),'goods_promotion_type' => 0), array('goods_commonid' => $param['goods_commonid']));
|
|
return ds_callback(true);
|
|
}
|
|
|
|
/**
|
|
* 删除(买/卖家)订单全部数量缓存
|
|
* @param array $data 订单信息
|
|
* @return boolean
|
|
*/
|
|
public function delOrderCountCache($order_info)
|
|
{
|
|
if (empty($order_info))
|
|
return ds_callback(true);
|
|
$order_model = model('order');
|
|
if (isset($order_info['order_id'])) {
|
|
$order_info = $order_model->getOrderInfo(array('order_id' => $order_info['order_id']), array(), 'buyer_id');
|
|
}
|
|
if(isset($order_info['buyer_id'])) {
|
|
$order_model->delOrderCountCache('buyer', $order_info['buyer_id']);
|
|
}
|
|
return ds_callback(true);
|
|
}
|
|
|
|
|
|
/**
|
|
* 生成卡密代金券
|
|
*/
|
|
public function build_pwdvoucher($t_id)
|
|
{
|
|
$t_id = intval($t_id);
|
|
if ($t_id <= 0) {
|
|
return ds_callback(false, '参数错误');
|
|
}
|
|
$voucher_model = model('voucher');
|
|
//查询代金券详情
|
|
$where = array();
|
|
$where[] = array('vouchertemplate_id','=',$t_id);
|
|
$gettype_arr = $voucher_model->getVoucherGettypeArray();
|
|
$where[] = array('vouchertemplate_gettype','=',$gettype_arr['pwd']['sign']);
|
|
$where[] = array('vouchertemplate_isbuild','=',0);
|
|
$where[] = array('vouchertemplate_state','=',1);
|
|
$t_info = $voucher_model->getVouchertemplateInfo($where);
|
|
$t_total = intval($t_info['vouchertemplate_total']);
|
|
if ($t_total <= 0) {
|
|
return ds_callback(false, '代金券模板信息错误');
|
|
}
|
|
while ($t_total > 0) {
|
|
$is_succ = false;
|
|
$insert_arr = array();
|
|
$step = $t_total > 1000 ? 1000 : $t_total;
|
|
for ($t = 0; $t < $step; $t++) {
|
|
$voucher_code = $voucher_model->getVoucherCode(0);
|
|
if (!$voucher_code) {
|
|
continue;
|
|
}
|
|
$voucher_pwd_arr = $voucher_model->createVoucherPwd($t_info['vouchertemplate_id']);
|
|
if (!$voucher_pwd_arr) {
|
|
continue;
|
|
}
|
|
$tmp = array();
|
|
$tmp['voucher_code'] = $voucher_code;
|
|
$tmp['vouchertemplate_id'] = $t_info['vouchertemplate_id'];
|
|
$tmp['voucher_title'] = $t_info['vouchertemplate_title'];
|
|
$tmp['voucher_desc'] = $t_info['vouchertemplate_desc'];
|
|
$tmp['voucher_startdate'] = $t_info['vouchertemplate_startdate'];
|
|
$tmp['voucher_enddate'] = $t_info['vouchertemplate_enddate'];
|
|
$tmp['voucher_price'] = $t_info['vouchertemplate_price'];
|
|
$tmp['voucher_limit'] = $t_info['vouchertemplate_limit'];
|
|
$tmp['voucher_state'] = 1;
|
|
$tmp['voucher_activedate'] = TIMESTAMP;
|
|
$tmp['voucher_owner_id'] = 0;
|
|
$tmp['voucher_owner_name'] = '';
|
|
$tmp['voucher_order_id'] = 0;
|
|
$tmp['voucher_pwd'] = $voucher_pwd_arr[0];//md5
|
|
$tmp['voucher_pwd2'] = $voucher_pwd_arr[1];
|
|
$insert_arr[] = $tmp;
|
|
$t_total--;
|
|
}
|
|
|
|
$result = $voucher_model->addVoucherBatch($insert_arr);
|
|
if ($result && $is_succ == false) {
|
|
$is_succ = true;
|
|
}
|
|
}
|
|
//更新代金券模板
|
|
if ($is_succ) {
|
|
$voucher_model->editVouchertemplate(array('vouchertemplate_id' => $t_info['vouchertemplate_id']), array('vouchertemplate_isbuild' => 1));
|
|
return ds_callback(true);
|
|
}
|
|
else {
|
|
return ds_callback(false);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 上架
|
|
*
|
|
* @param array $cron
|
|
*/
|
|
public function editProducesOnline($cron = array()){
|
|
$condition = array(array('goods_commonid','in',array_keys($cron)));
|
|
$update = model('goods')->editProducesOnline($condition);
|
|
if ($update){
|
|
//返回执行成功的cronid
|
|
$cronid = array();
|
|
foreach ($cron as $v) {
|
|
$cronid[] = $v['id'];
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
return $cronid;
|
|
}
|
|
|
|
|
|
/**
|
|
* 抢购开始更新商品促销价格
|
|
*
|
|
* @param array $cron
|
|
*/
|
|
public function editGoodsGroupbuyPrice($cron = array()) {
|
|
$condition = array();
|
|
$condition[] = array('goods_commonid','in', array_keys($cron));
|
|
$condition[] = array('groupbuy_starttime','<', TIMESTAMP);
|
|
$condition[] = array('groupbuy_endtime','>', TIMESTAMP);
|
|
$groupbuy = model('groupbuy')->getGroupbuyList($condition);
|
|
foreach ($groupbuy as $val) {
|
|
model('goods')->editGoods(array('goods_promotion_price' => $val['groupbuy_price'], 'goods_promotion_type' => 1), array('goods_commonid' => $val['goods_commonid']));
|
|
}
|
|
//返回执行成功的cronid
|
|
$cronid = array();
|
|
foreach ($cron as $v) {
|
|
$cronid[] = $v['id'];
|
|
}
|
|
return $cronid;
|
|
}
|
|
|
|
/**
|
|
* 抢购过期
|
|
*
|
|
* @param array $cron
|
|
*/
|
|
public function editExpireGroupbuy($cron = array()) {
|
|
$condition = array(array('goods_commonid','in', array_keys($cron)));
|
|
//抢购活动过期
|
|
$update = model('groupbuy')->editExpireGroupbuy($condition);
|
|
if ($update){
|
|
//返回执行成功的cronid
|
|
$cronid = array();
|
|
foreach ($cron as $v) {
|
|
$cronid[] = $v['id'];
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
return $cronid;
|
|
}
|
|
|
|
/**
|
|
* 限时折扣过期
|
|
*
|
|
* @param array $cron
|
|
*/
|
|
public function editExpireXianshi($cron = array()) {
|
|
$condition = array(array('xianshi_id','in', array_keys($cron)));
|
|
//限时折扣过期
|
|
$update = model('pxianshi')->editExpireXianshi($condition);
|
|
if ($update){
|
|
//返回执行成功的cronid
|
|
$cronid = array();
|
|
foreach ($cron as $v) {
|
|
$cronid[] = $v['id'];
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
return $cronid;
|
|
}
|
|
} |