B076-项目实战--宠物上下架 展示 领养 收购订单

这篇具有很好参考价值的文章主要介绍了B076-项目实战--宠物上下架 展示 领养 收购订单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上下架功能提供

后台宠物列表实现

后端:拷贝product模块,替换大小写字母,调整字段名,时间显示格式等,
后台:拷贝资源中的pet.vue,配置路由,调整变量名,

前台展示

前台宠物列表和详情展示

前台拷贝product.html为pet.html,替换大小写字母,首页跳转过来,pet能跳转其他,
前台拷贝productDetail.html为petDetail.html,替换大小写字母,改预定须知为领养须知,
修改后端loadById查详情sql,前端取店名展示

    <resultMap id="petMap" type="Pet">
        <id property="id" column="id"></id>
        <result property="name" column="name"></result>
        <result property="resources" column="resources"></result>
        <result property="saleprice" column="saleprice"></result>
        <result property="costprice" column="costprice"></result>
        <result property="offsaletime" column="offsaletime"></result>
        <result property="onsaletime" column="onsaletime"></result>
        <result property="state" column="state"></result>
        <result property="createtime" column="createtime"></result>
        <!--private PetDetail detail = new PetDetail();-->
        <association property="detail" javaType="PetDetail">
            <id property="id" column="pdid"></id>
            <result property="intro" column="intro"></result>
            <result property="adoptNotice" column="adoptNotice"></result>
        </association>
        <association property="shop" javaType="Shop">
            <id property="id" column="sid"></id>
            <result property="name" column="sname"></result>
        </association>
    </resultMap>

    <select id="loadById" parameterType="long" resultMap="petMap">
        select
         p.*,
         pd.id pdid,pd.intro,pd.adoptNotice,
         s.id sid,s.name sname
         from t_pet p
        LEFT JOIN t_pet_detail pd on p.id = pd.pet_id
        LEFT join t_shop s on p.shop_id = s.id
        where p.id = #{id}
    </select>
                <!--名称-->
                <div class="tb-detail-hd">
                    <h1>
                        【{{pet.shop.name}}】 {{pet.name}}
                    </h1>
                </div>
店铺展示

petDetail页面的大包装右边展示店铺名称
通过:href="shopUrl"携带shopid跳往shop页面

<li class="qc last"><a :href="shopUrl" style="color: green">{{pet.shop.name}}</a></li>
shopUrl:"",
mounted(){
            let petId = parseUrlParams2Obj(location.href).petId;
            this.$http.get("/pet/"+petId)
                .then(result=>{
                    this.pet = result.data;
                    if(this.pet.resources){
                        this.resources = this.pet.resources.split(',');
                    }
                    this.shopUrl = "shop.html?shopId="+this.pet.shop.id;
                })
                .catch(result=>{
                    console.log(result);
                    alert("系统错误");
                })
        }

拷贝success页面为shop页面,替换引入路径,修改标题,引入vue和Axios,
写个div把body以内全包起来,发请求拿shop数据过来展示,

 <script type="text/javascript">
     new Vue({
         el:"#myShop",
         data:{
             shop:{}
         },
         methods:{
             getShop(){
                let shopId = parseUrlParams2Obj(location.href).shopId;
                this.$http.get("/shop/"+shopId)
                    .then(result=>{
                        this.shop = result.data;
                        $("#myTitle").html(this.shop.name);//自己去yyy
                    })
                    .catch(result=>{
                        console.log(result);
                        alert("系统错误");

                    })
             }
         },
         mounted(){
             this.getShop();
         }
     })
 </script>

领养

分析

领养即购买,立即领养进入领养流程,购物车可通过加一个表实现(包含userid和宠物信息),

点击立即购买后流程:
传入宠物信息,修改为下架,绑定购买者userid,生成订单和支付(这两个放到后面)

前台

petDetail页面把立即购买包进div里,
立即购买超链接绑定事件,发请求到后端进入处理流程,(扩展:处理完后进入个人中心-我的领养 展示宠物表中userId是自己的)

<a id="LikBuy" title="点此按钮到下一步确认购买信息" href="javascript:;" @click="adopt">立即购买</a>
		adopt(){
			let petId = this.pet.id;
			let flag = window.confirm("你确认领养吗?")
			if(flag){
				this.$http.get("/pet/adopt/"+petId)
					.then(result=>{
						result = result.data;
						if(result.success){
							alert("领养成功!");
							//本来应该跳转到个人中心,查案个人领养宠物信息
							//这里我们就跳转到首页
							location.href="index.html";
						}else{
							alert(result.message);
						}
					})
					.catch(result=>{
						alert("系统错误");
					})
			}
			//location.href="adoptOrder.html?petId="+this.pet.id;
		}
后端
PetController
    /**
     * 领养宠物
     */
    @GetMapping("/adopt/{petId}")
    public AjaxResult adopt(@PathVariable("petId") Long petId, HttpServletRequest request){
        try {
            Logininfo loginIn = LoginContext.getLoginIn(request);
            petService.adopt(petId,loginIn.getId());
            return AjaxResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMessage("领养失败!"+e.getMessage());
        }
    }
PetServiceImpl
    @Override
    public void adopt(Long petId, Long loginInfoId) {
        //1.修改状态  下架
        Pet pet = petMapper.loadById(petId);
        pet.setState(0);
        pet.setOffsaletime(new Date());
        //2.绑定用户
        User user = userMapper.loadByloginInfoId(loginInfoId);
        pet.setUser(user);
        pet.setUser_id(user.getId());
        pet.setShop_id(pet.getShop().getId());
        //3.保存
        petMapper.update(pet);

        //@TODO 生成领养订单  + 支付
        System.out.println("领养成功!");
    }

订单

需求分析
可能产生订单的模块

1.宠物收购订单-店家给用户钱
垫付:用户立马就能获取到钱,员工定时报账。
余额支付:付款余额,用户可以提现。 平台相当于给了用户钱,店家用给平台钱。
银行转账:银行转账,店家财务依次给用户转账。
2.服务订单(多次消费)-用户给店家钱
3.领养订单(一次)-用户给店家钱
4.充值订单(一次)-用户充值平台,用户消费后,平台要给店铺打钱。
5.商品订单(多次)-用户给店家钱

特别说明一下:
大平台一般钱先到平台,用户确认后,平台才划账到店家。如果用户长时间不确认,自动确认。
我们小平台直接到店家,我们没有支付牌照。

每一类型的订单都要有独立的表来存

订单模块额外功能

1.系统报表、财务报表等
2.商家的账单下载(easyPOI的导入与导出)
3.系统对账服务(退款,支付异常等)
4.30分钟未支付取消订单(定时器)

订单设计
表设计

九张: 用户地址 订单地址 收购订单 领养订单 充值订单 商品订单 商品订单详情 服务订单 服务订单详情

我们需要关心的五张表:
t_user_address:用户地址,
t_order_address:订单地址,下单时的用户地址,绑定某个订单
t_order_pet_acquisition:收购订单,一次性,不需要存详情
t_order_adopt:领养订单,一次性,不需要存详情
t_order_product:服务订单,可多次消费,需要存详情
B076-项目实战--宠物上下架 展示 领养 收购订单,笔记总结,宠物

B076-项目实战--宠物上下架 展示 领养 收购订单,笔记总结,宠物

流程设计

用户付钱给商家,两个定时任务
B076-项目实战--宠物上下架 展示 领养 收购订单,笔记总结,宠物
商家付款给用户(收购订单)
B076-项目实战--宠物上下架 展示 领养 收购订单,笔记总结,宠物
工作人员上门,应该带一个手提电脑,处理完并下单。以后需要商家版App,可以在上面操作,不需要手提电脑。

集成基础代码

拷贝资源

收购订单
创建订单
前端

待处理消息处理窗口增加支付选项下拉框

后端

SearchMasterMsgController

    /**
     * 处理消息
     */
    @PutMapping("/handle")
    public AjaxResult handle(@RequestBody Pet pet,HttpServletRequest request){
        try {
            Logininfo loginIn = LoginContext.getLoginIn(request);
            seachMasterMsgService.handle(pet,loginIn.getId());
            return AjaxResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMessage("处理失败!"+e.getMessage());
        }
    }

SearchMasterMsgServiceImpl文章来源地址https://www.toymoban.com/news/detail-611628.html

	/**
     * 处理消息
     */
    @Override
    public void handle(Pet pet,Long loginInfoId) {
        //1.改状态  --已处理
        searchMasterMsgMapper.updateStateForProcessed(pet.getSearch_master_msg_id());
        //2.生成宠物基本信息
        petMapper.save(pet);
        //3.宠物详情
        PetDetail detail = pet.getDetail();
        if(detail != null){
            detail.setPet_id(pet.getId());
            petDetailMapper.save(detail);
        }
        //4.生成订单
        Employee employee = employeeMapper.loadByLoginInfoId(loginInfoId);
        SearchMasterMsg searchMasterMsg = searchMasterMsgMapper.loadById(pet.getSearch_master_msg_id());
        PetAcquisitionOrder order = pet2order(pet, searchMasterMsg, employee.getId());
        petAcquisitionOrderMapper.save(order);
        //5.生成支付@TODO
    }

    private PetAcquisitionOrder pet2order(Pet pet, SearchMasterMsg adopt,Long employeeId) {
        PetAcquisitionOrder order = new PetAcquisitionOrder();
        order.setDigest("[摘要]对"+pet.getName()+"收购订单!");
        order.setState(0);//待支付
        order.setPrice(pet.getCostprice());
        order.setAddress(adopt.getAddress());
        String orderSn = CodeGenerateUtils.generateOrderSn(adopt.getUser_id());
        order.setOrderSn(orderSn);
        order.setPet_id(pet.getId());
        order.setUser_id(adopt.getUser_id());
        order.setPaytype(0);
        order.setShop_id(pet.getShop_id());
        order.setEmp_id(employeeId);
        return order;
    }

到了这里,关于B076-项目实战--宠物上下架 展示 领养 收购订单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ASP.NET Web】项目实践—网上宠物店8:制作“商品展示”页面

    网站通过 Products.aspx 页面展示所销售的宠物。 分析商品展示页面的界面: 内容实现,要写在占位符控件中。 分析产品展示页面的功能: Products.aspx 页面使用一个 DataList 控件,以两列的形式展示商品,每个商品包括商品名称、描述、价格、图片等信息。此外,页面显示哪一类

    2024年02月06日
    浏览(80)
  • 基于SSM的宠物领养管理系统

    🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 基于SSM的宠物领养管理系统,java项目。 eclipse和idea都能打开运行。 推荐环境配置:eclipse/idea jdk1.8 maven mysql 前端技术:jsp,Ajax,Json 后端技

    2024年02月16日
    浏览(49)
  • ssm+vue宠物领养系统源码和论文

    ssm+vue宠物领养系统源码和论文103  开发工具:idea   数据库mysql5.7+  数据库链接工具:navcat,小海豚等   技术:ssm 摘  要 本课题是根据用户的需要以及网络的优势建立的一个宠物领养系统,来满足用宠物领养的需求。 本宠物领养系统应用JSP技术,Java语言,MYSQL数据库存储数

    2024年02月10日
    浏览(48)
  • 基于大数据的宠物领养系统设计与实现

    目 录 摘 要 I Abstract II 1 绪论 1 1.1研究背景及意义 1 1.2国内外研究现状 1 1.3基于大数据的宠物领养系统 2 2 主要技术 4 2.1Java概述 4 2.2 SpringBoot技术 4 2.3 Intellij IDEA 4 2.4 Tomcat 4 2.5 MySQL 4 2.6 Thymeleaf 5 3 需求分析 6 3.1可行性分析 6 3.1.1 技术可行性分析 6 3.1.2 经济可行性分析 6 3.1.3 操作

    2024年02月03日
    浏览(42)
  • (附源码)SSM宠物领养系统 毕业设计 031654

    SSM宠物领养系统 摘 要 如今,随着人们生活水平不断提高,人们的生活在物质满足的基础上,更多的人将生活的重点放在追求精神享受的过程中。于此同时,Internet铺天盖地的普及,使得这样的人纷纷通过Internet的方式去寻找精神的满足。然而领养宠物正是人们现在炙手可热

    2024年02月09日
    浏览(51)
  • (附源码)计算机毕业设计宠物领养系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX (Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。 环境需要 1. 运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以

    2024年02月05日
    浏览(61)
  • springboot+vue宠物领养系统的设计与实现

    随着国内经济的不断发展,人民收入水平的提高以及对于情感需求的日益增强,宠物饲养成为了一种流行趋势。宠物的增多不可避免地造成了流浪宠物的泛滥,它们大多来自被主人遗弃的动物或这些动物繁衍的后代。它们没有管束,游走在人类居住区的边缘,给人们的生活带

    2024年02月08日
    浏览(88)
  • 基于SSM的宠物领养系统的设计与实现

    动物作为人类的宠物已经有几千年的历史了,尤其是猫和狗因其天性被人类所喜爱和推崇,好多的成语故事、俗语等都及它们有关。但是,近几年来由于生活节奏的加快,人们的压力增大,没有时间和空间去照顾宠物,所以弃养宠物的家庭增加,越来越多的流浪动物不仅对动

    2024年02月10日
    浏览(41)
  • (N-139)基于springboot,vue宠物领养系统

    开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vue3+element-plus 服务端技术:springboot+mybatis-plus+redis 本项目分为普通用户、管理员两部分 一、普通用户功能:登录、注册、首页、查看系统公告、搜索宠物、

    2024年01月17日
    浏览(46)
  • 基于微信小程序的宠物领养系统(源码+论文)

    💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。 👇🏻 精彩专栏 推荐订阅👇🏻 计算机毕业设计精品项目案例-200套 🌟 文末获取源码+数据库+文档 🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编

    2024年02月03日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包