首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CodeBuddy开发记|医药电商微信小程序迭代|品牌管理优化、处方药详情重构、分销营销合规解决方案

CodeBuddy开发记|医药电商微信小程序迭代|品牌管理优化、处方药详情重构、分销营销合规解决方案

原创
作者头像
元岳科技
发布2026-08-28 17:29:01
发布2026-08-28 17:29:01
860
举报
文章被收录于专栏:小程序搭建小程序搭建

一、迭代背景

医药类电商系统对合规性、数据规范性、流程严谨度要求远高于普通商城。元岳科技原有商城框架在医药场景存在多处短板:

• 无独立品牌管理模块,药品品牌杂乱、无法统一管控

• 商品批量导入导出字段不全,药品上架效率极低

• 处方药前端展示逻辑简陋,缺少合规提示、流程说明、用药安全提示

• 营销、分销未区分处方药/甲类OTC/乙类OTC,存在严重合规风险

• 佣金统计为整单统计,无明细、无日志,对账困难、不满足药监台账要求

本次迭代一次性完成后台标准化管理 + 商品批量运维 + 前端处方药合规展示 + 营销&分销合规管控 + 佣金明细日志体系整套能力升级。

全程使用CodeBuddy开发,对接方案 梳理逻辑,生成代码,修改BUG.测试无异常,已发布生产环境。

二、本次迭代核心功能概述

本次更新包含四大模块:

1. 品牌独立管理模块(新增)

2. 药品商品批量导入导出能力强化

3. 前端处方药详情页、处方详情页合规重构优化

4. 营销分销管控 + 明细级佣金日志合规体系

三、功能详细设计与实现

1. 品牌管理模块(新增)

原有系统无商品品牌字段管理、无法筛选、无法统一维护。本次新增完整品牌后台管理体系。

核心能力:

• 后台独立品牌列表:新增、编辑、禁用、排序

• 商品绑定品牌,前台自动展示品牌信息,药品展示更专业

• 支持按品牌筛选商品、后台按品牌统计库存与销量

• 导入导出同步支持品牌字段,上架标准化

业务价值:解决医药商品品牌杂乱、维护混乱问题,适配药品多品牌。

代码语言:txt
复制
/**
 * 品牌管理控制器
 * Class StoreBrand
 * @package app\adminapi\controller\v1\product
 */
class StoreBrand extends AuthController
{
    public function __construct(App $app, StoreBrandServices $services)
    {
        parent::__construct($app);
        $this->services = $services;
    }

    /**
     * 品牌列表
     * @return mixed
     */
    public function index()
    {
        $where = $this->request->getMore([
            ['brand_name', ''],
            ['is_show', ''],
            ['page', 1],
            ['limit', 20],
        ]);
        return app('json')->success($this->services->getList($where));
    }

    /**
     * 品牌详情
     * @param $id
     * @return mixed
     */
    public function read($id)
    {
        return app('json')->success($this->services->get($id));
    }

    /**
     * 新增品牌
     * @return mixed
     */
    public function save()
    {
        $data = $this->request->postMore([
            ['brand_name', ''],
            ['sort', 0],
            ['is_show', 1],
        ]);
        $this->services->create($data);
        return app('json')->success('添加成功');
    }

    /**
     * 编辑品牌
     * @param $id
     * @return mixed
     */
    public function update($id)
    {
        $data = $this->request->postMore([
            ['brand_name', ''],
            ['sort', 0],
            ['is_show', 1],
        ]);
        $this->services->update((int)$id, $data);
        return app('json')->success('编辑成功');
    }

    /**
     * 删除品牌
     * @param $id
     * @return mixed
     */
    public function delete($id)
    {
        $this->services->del((int)$id);
        return app('json')->success('删除成功');
    }

    /**
     * 获取已启用的品牌列表(下拉选择用)
     * @return mixed
     */
    public function getEnableList()
    {
        $where = $this->request->getMore([
            ['brand_name', ''],
        ]);
        return app('json')->success($this->services->getEnableList($where));
    }
}

2. 药品商品批量导入导出升级

针对医药商品字段多、分类严、合规属性强的特点,重构导入导出逻辑。

优化点:

• 支持药品类型批量识别:处方药/甲类OTC/乙类OTC自动匹配属性

• 导入模板新增:品牌、药品规格、等专属字段

• 导入失败精准提示,避免大批量上架报错

• 导出完整药品台账,可直接用于库存盘点、药监备查

解决痛点:商家上万条药品商品无需手动逐条编辑,大幅降低运维成本。

代码语言:txt
复制
 /**
     * 商品批量导入
     * @return \think\Response
     */
    public function importProduct()
    {
        $rows = $this->request->post('rows', []);
        if (!is_array($rows) || empty($rows)) {
            return app('json')->fail('导入数据不能为空');
        }
        /** @var \app\services\product\product\StoreProductImportServices $importService */
        $importService = app()->make(\app\services\product\product\StoreProductImportServices::class);
        $result = $importService->importProducts($rows);
        return app('json')->success($result);
    }

    /**
     * 下载商品导入模板
     * @return \think\Response
     */
    public function importTemplate()
    {
        $header = ['商品名称', '品牌', '商品类型', '商品分类', '售价', '销量', '库存'];
        $filename = '商品导入模板_' . date('YmdHis', time());
        // 返回模板数据,由前端生成Excel
        return app('json')->success(compact('header', 'filename'));
    }

3. 前端处方药详情页 + 处方详情页重构优化

原有前端处方药页面和普通商品无区别,缺少合规提示、流程说明,存在展示不合规风险。

页面优化内容:

• 处方药商品页移除购物车、批量加入清单结算能力,仅保留立即问诊

• 页面顶部增加合规警示:处方药需医生问诊开方、不可直接购买

• 展示完整处方流程:提交问诊 - 医生评估 - 药师审方 - 处方生成 - 下单购药

• 处方详情页展示:处方编号、开方医生、审核药师、开方时间、药品配伍说明

• 增加用药安全提示、药品禁忌提示,提升合规性与用户信任感

• 优化UI层级,区分OTC普通商品与处方药专属页面结构

合规核心:处方药全程无直接购买、无批量结算、无营销优惠,完全符合网售药品监管要求。

代码语言:txt
复制
<template v-else>
			<!-- ① 顶部绿色提示横幅(条件1:审核通过 && 订单未支付未取消) -->
			<view class="rx-banner" v-if="showPayActions">
				<view class="banner-icon">✅</view>
				<view class="banner-text">已为您开具处方,请核对无误后再支付</view>
			</view>

			<!-- ② 处方基础信息 -->
			<view class="rx-card top">
				<view class="row acea-row row-between-wrapper">
					<view>开方时间:{{ rp_info.create_date }}</view>
					<view class="font-color status-text">{{ rp_info.rp_msg }}</view>
				</view>
				<view class="row">
					<text class="label">医生:</text>
					<text>{{ rp_info.doctor_name }}</text>
				</view>
				<view class="row">
					<text class="label">诊断:</text>
					<text>{{ rp_info.diagnose || '暂无' }}</text>
				</view>
				<view class="row" v-if="rp_info.audit_reason">
					<text class="label">拒方原因:</text>
					<text>{{ rp_info.audit_reason }}</text>
				</view>
				<view class="row">
					<text class="label">处方号:</text>
					<text>{{ rp_info.rp_id }}</text>
				</view>
			</view>

			<!-- 药师审核中提示 -->
			<view class="audit-tip" v-if="showAuditTip">
				<view class="audit-icon"></view>
				<text>药师正在审核处方,请耐心等待</text>
			</view>

			<!-- ③ 药品清单 -->
			<view class="rx-card medical_list">
				<view class="medical_top acea-row row-between-wrapper">
					<view>药品列表</view>
					<view class="num font-color">共{{ rp_info.sale_amount }}件</view>
				</view>
				<view class="item" v-for="(item, index) in rp_info.drugInfo" :key="index">
					<view class="name acea-row row-between-wrapper">
						<view>{{ item.drug_name }}</view>
						<view>数量:{{ item.sale_amount }}</view>
					</view>
					<view class="text">规格:<text>{{ item.drug_specification }}</text></view>
				</view>
				<!-- ④ 查看处方 -->
				<view class="prescription acea-row row-between-wrapper">
					<view>处方笺</view>
					<button @click="checkPrescription" v-if="rp_info.rp_url">查看处方</button>
					<view v-else style="color: #969696;font-size: 24rpx;">暂无处方</view>
				</view>
			</view>

			<!-- ⑤ 用药安全温馨提示 -->
			<view class="rx-card safe-tip">
				<view class="tip-title">温馨提示</view>
				<view class="tip-text">1. 请您再次确认用过该药品且无不良反应。如未用过该药品,请停止支付并联系药师咨询。</view>
				<view class="tip-text">2. 应严格按原处方和《药品说明书》使用(严格对照用法用量、不良反应、禁忌、注意事项和药物相互作用)。</view>
				<view class="tip-text">3. 用药期间如有不适,请立即停药并及时到当地医疗机构就诊。祝您早日康复!</view>
			</view>

			<view style="height: 150rpx"></view>
			<!-- ⑥ 底部吸底支付按钮(条件1) -->
			<view class="pay-bar" v-if="showPayActions">
				<button class="pay-btn" @click="goPay">我已核对无误,去支付</button>
			</view>
		</template>

		<!-- 处方图片 -->
		<view class="poster-pop" v-if="showPrescription">
			<image src="/static/images/poster-close.png" class="close" @click="showPrescription = false"></image>
			<image :src="rp_info.rp_url"></image>
			<!-- #ifndef H5  -->
			<view class="save-poster" @click="savePosterPath">保存到手机</view>
			<!-- #endif -->
			<!-- #ifdef H5 -->
			<view class="keep">长按图片可以保存到手机</view>
			<!-- #endif -->
		</view>

4. 营销&分销合规管控 + 明细佣金日志体系

针对医药行业强监管规则,实现药品类型权限隔离,彻底杜绝违规营销、违规返佣。

管控规则:

处方药:禁止一切营销、禁止分销返佣(强制锁死,后台不可改)

甲类OTC:默认禁止营销分销,后台可控开关

乙类OTC:正常营销、正常分销

佣金明细重构:

• 混合订单(OTC+处方药)自动隔离,处方药零佣金并记录原因

• 完整佣金日志:推广人、商品类型、佣金状态、不计佣原因全部留痕

• 支持台账导出、财务对账、监管核查

代码语言:txt
复制
<template>
  <div>
    <el-card :bordered="false" shadow="never" class="ivu-mt">
      <div class="marketing-setting-card">
        <div class="setting-header">
          <span class="setting-title">甲类OTC参与营销活动</span>
          <el-switch
            v-model="otcEnable"
            :active-value="1"
            :inactive-value="0"
            @change="handleSwitchChange"
            style="margin-left: 16px;"
          />
        </div>
        <div class="setting-warning-box">
          <div class="warning-icon">⚠</div>
          <div class="warning-text">
            开启后,甲类非处方药可参与秒杀、拼团、砍价、抽奖、积分兑换等营销活动。<br/>
            依据《药品网络销售监督管理办法》第八条及《处方药网络零售合规指南》(药监综药管函〔2026〕282号),开启后如因活动力度或宣传不当引发监管风险,由本门店自行承担。
          </div>
        </div>
        <div class="setting-record" v-if="lastRecord">
          <span class="record-label">最近一次操作:</span>
          <span class="record-value">
            {{ lastRecord.admin_name }} 于 {{ formatTime(lastRecord.add_time) }}
            <el-tag v-if="lastRecord.action === 'enable_otc_a_marketing'" type="success" size="mini">开启</el-tag>
            <el-tag v-else type="info" size="mini">关闭</el-tag>
          </span>
        </div>
        <div class="setting-record" v-else>
          <span class="record-label">暂无操作记录</span>
        </div>
      </div>
    </el-card>

四、关键技术实现亮点

双层校验机制:前端展示限制 + 后端强制拦截,杜绝绕过风险

药品类型权限自动继承:新增药品自动识别类型并赋值营销/分销权限

明细级佣金架构,解决混合订单合规难题

全流程日志留痕:处方、问诊、佣金、操作日志全部可追溯

五、总结

本次迭代完成了医药商城从“普通商城模式”到专业合规医药电商模式的关键升级:

标准化品牌管理、批量商品运维、处方药前端合规展示、营销分销强隔离、佣金明细台账化,全方位满足药监合规、商家运维、财务对账、用户体验四大需求。

整套系统实现:一次部署、终身可用、无年费、无扣点、支持二次定制开发

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 全程使用CodeBuddy开发,对接方案 梳理逻辑,生成代码,修改BUG.测试无异常,已发布生产环境。
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档