删除无用代码 集成websocket

This commit is contained in:
wxl 2024-12-28 13:30:58 +08:00
parent f3363bb5f8
commit 32f77e5382
140 changed files with 8 additions and 8701 deletions

View File

@ -167,6 +167,8 @@
<version>3.3.2.v20190601-RELEASE</version> <version>3.3.2.v20190601-RELEASE</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.file.FileNameUtil; import cn.hutool.core.io.file.FileNameUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.card.domain.CardDto;
import com.dd.admin.business.card.domain.CardVo;
import com.dd.admin.business.note.domain.NoteDto; import com.dd.admin.business.note.domain.NoteDto;
import com.dd.admin.business.note.domain.NoteVo; import com.dd.admin.business.note.domain.NoteVo;
import com.dd.admin.business.note.entity.Note; import com.dd.admin.business.note.entity.Note;

View File

@ -1,95 +0,0 @@
package com.dd.admin.business.card.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.card.entity.Card;
import com.dd.admin.business.card.domain.CardVo;
import com.dd.admin.business.card.domain.CardDto;
import com.dd.admin.business.card.service.CardService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Api(tags = "")
@RestController
public class CardController {
@Autowired
CardService cardService;
@ApiOperation(value = "-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/card/page")
@OperLog(operModule = "获取卡项列表",operType = OperType.QUERY,operDesc = "获取卡项列表")
public ResultBean<IPage<CardVo>> page(CardDto cardDto) {
cardDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<CardVo> pageInfo = cardService.selectCardPage(cardDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/card/list")
public ResultBean<List<CardVo>> list(CardDto cardDto) {
cardDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<CardVo> list = cardService.selectCardList(cardDto);
return ResultBean.success(list);
}
@ApiOperation(value = "-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/card/add")
@OperLog(operModule = "添加卡项",operType = OperType.ADD,operDesc = "添加卡项")
public ResultBean<Card> add(@RequestBody @Validated CardDto cardDto) {
Card card = BeanUtil.copyProperties(cardDto, Card.class);
cardService.save(card);
return ResultBean.success(card);
}
@ApiOperation(value = "-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/card/{cardId}")
public ResultBean<CardVo> get(@PathVariable @NotBlank String cardId) {
Card card = cardService.getById(cardId);
CardVo cardVo = BeanUtil.copyProperties(card,CardVo.class);
return ResultBean.success(cardVo);
}
@ApiOperation(value = "-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/card/update")
public ResultBean<Card> update(@RequestBody @Validated(UpdateGroup.class) CardDto cardDto) {
Card card = BeanUtil.copyProperties(cardDto, Card.class);
cardService.updateById(card);
return ResultBean.success(card);
}
@ApiOperation(value = "-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/card/delete/{cardId}")
public ResultBean<Card> delete(@PathVariable @NotBlank String cardId) {
Boolean b = cardService.removeById(cardId);
return ResultBean.success(b);
}
}

View File

@ -1,94 +0,0 @@
package com.dd.admin.business.card.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Data
@ApiModel(value="接收对象")
public class CardDto {
@ApiModelProperty(value = "会员卡id")
@NotBlank(message = "id不能为空",groups = UpdateGroup.class)
private String cardId;
@ApiModelProperty(value = "会员卡名")
private String cardName;
@ApiModelProperty(value = "卡编号")
private BigDecimal cardNo;
@ApiModelProperty(value = "预设开卡金")
private BigDecimal cardAmount;
@ApiModelProperty(value = "预设赠送金")
private BigDecimal giveAmount;
@ApiModelProperty(value = "最低开卡金额")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "卡折扣")
private BigDecimal cardDiscount;
@ApiModelProperty(value = "卡提成")
private BigDecimal cardPushPercent;
@ApiModelProperty(value = "工本费用")
private String todos;
@ApiModelProperty(value = "0正常 1下架")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "搜索关键字")
private String keyword;
}

View File

@ -1,89 +0,0 @@
package com.dd.admin.business.card.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Data
@ApiModel(value="返回对象")
public class CardVo {
@ApiModelProperty(value = "会员卡id")
private String cardId;
@ApiModelProperty(value = "会员卡名")
private String cardName;
@ApiModelProperty(value = "卡编号")
private String cardNo;
@ApiModelProperty(value = "预设开卡金")
private BigDecimal cardAmount;
@ApiModelProperty(value = "预设赠送金")
private BigDecimal giveAmount;
@ApiModelProperty(value = "最低开卡金额")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "卡折扣")
private BigDecimal cardDiscount;
@ApiModelProperty(value = "卡提成")
private BigDecimal cardPushPercent;
@ApiModelProperty(value = "工本费用")
private BigDecimal todos;
@ApiModelProperty(value = "0正常 1下架")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
}

View File

@ -1,112 +0,0 @@
package com.dd.admin.business.card.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_card")
@ApiModel(value="Card对象", description="")
public class Card implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会员卡id")
@TableId(value = "CARD_ID", type = IdType.ASSIGN_UUID)
private String cardId;
@ApiModelProperty(value = "会员卡名")
@TableField("CARD_NAME")
private String cardName;
@ApiModelProperty(value = "卡编号")
@TableField("CARD_NO")
private String cardNo;
@ApiModelProperty(value = "预设开卡金")
@TableField("CARD_AMOUNT")
private BigDecimal cardAmount;
@ApiModelProperty(value = "预设赠送金")
@TableField("GIVE_AMOUNT")
private BigDecimal giveAmount;
@ApiModelProperty(value = "最低开卡金额")
@TableField("BUILD_CARD_AMOUNT")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "卡折扣")
@TableField("CARD_DISCOUNT")
private BigDecimal cardDiscount;
@ApiModelProperty(value = "卡提成")
@TableField("CARD_PUSH_PERCENT")
private BigDecimal cardPushPercent;
@ApiModelProperty(value = "工本费用")
@TableField("TODOS")
private BigDecimal todos;
@ApiModelProperty(value = "0正常 1下架")
@TableField("CARD_STATUS")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
@TableField("DELETED")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.card.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.card.entity.Card;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.card.domain.CardVo;
import com.dd.admin.business.card.domain.CardDto;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Mapper
public interface CardMapper extends BaseMapper<Card> {
IPage<CardVo> selectCardPage(Page<CardVo> page, @Param("cardDto") CardDto cardDto);
List<CardVo> selectCardList(@Param("cardDto") CardDto cardDto);
}

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.card.mapper.CardMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.card.entity.Card">
<id column="CARD_ID" property="cardId" />
<result column="CARD_NAME" property="cardName" />
<result column="CARD_NO" property="cardNo" />
<result column="CARD_AMOUNT" property="cardAmount" />
<result column="GIVE_AMOUNT" property="giveAmount" />
<result column="BUILD_CARD_AMOUNT" property="buildCardAmount" />
<result column="CARD_DISCOUNT" property="cardDiscount" />
<result column="CARD_PUSH_PERCENT" property="cardPushPercent" />
<result column="TODOS" property="todos" />
<result column="CARD_STATUS" property="cardStatus" />
<result column="DELETED" property="deleted" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
CARD_ID, CARD_NAME, CARD_NO, CARD_AMOUNT, GIVE_AMOUNT, BUILD_CARD_AMOUNT, CARD_DISCOUNT, CARD_PUSH_PERCENT, TODOS, CARD_STATUS, DELETED, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID
</sql>
<select id="selectCardPage" resultType="com.dd.admin.business.card.domain.CardVo">
select
*
from business_card where DELETED = 0
<if test="cardDto.shopId != null and cardDto.shopId != ''">
and shop_id = #{cardDto.shopId}
</if>
<if test="cardDto.keyword != null and cardDto.keyword != ''">
and CARD_NAME like CONCAT('%', #{cardDto.keyword}, '%')
</if>
order by create_time desc
</select>
<select id="selectCardList" resultType="com.dd.admin.business.card.domain.CardVo">
select
*
from business_card where DELETED = 0
<if test="cardDto.shopId != null and cardDto.shopId != ''">
and shop_id = #{cardDto.shopId}
</if>
order by create_time desc
</select>
</mapper>

View File

@ -1,26 +0,0 @@
package com.dd.admin.business.card.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.card.entity.Card;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.card.domain.CardVo;
import com.dd.admin.business.card.domain.CardDto;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
public interface CardService extends IService<Card> {
//-分页列表
IPage<CardVo> selectCardPage(CardDto cardDto);
//-列表
List<CardVo> selectCardList(CardDto cardDto);
}

View File

@ -1,36 +0,0 @@
package com.dd.admin.business.card.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.card.entity.Card;
import com.dd.admin.business.card.mapper.CardMapper;
import com.dd.admin.business.card.service.CardService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.card.domain.CardVo;
import com.dd.admin.business.card.domain.CardDto;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-17
*/
@Service
public class CardServiceImpl extends ServiceImpl<CardMapper, Card> implements CardService {
@Override
public IPage<CardVo> selectCardPage(CardDto cardDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectCardPage(page,cardDto);
}
@Override
public List<CardVo> selectCardList(CardDto cardDto) {
return baseMapper.selectCardList(cardDto);
}
}

View File

@ -1,95 +0,0 @@
package com.dd.admin.business.category.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.category.entity.Category;
import com.dd.admin.business.category.domain.CategoryVo;
import com.dd.admin.business.category.domain.CategoryDto;
import com.dd.admin.business.category.service.CategoryService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 分类 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Api(tags = "分类")
@RestController
public class CategoryController {
@Autowired
CategoryService categoryService;
@ApiOperation(value = "分类-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/category/page")
@OperLog(operModule = "获取分页列表",operType = OperType.QUERY,operDesc = "获取分页列表")
public ResultBean<IPage<CategoryVo>> page(CategoryDto categoryDto) {
categoryDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<CategoryVo> pageInfo = categoryService.selectCategoryPage(categoryDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "分类-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/category/list")
public ResultBean<List<CategoryVo>> list(CategoryDto categoryDto) {
categoryDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<CategoryVo> list = categoryService.selectCategoryList(categoryDto);
return ResultBean.success(list);
}
@ApiOperation(value = "分类-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/category/add")
@OperLog(operModule = "添加分类",operType = OperType.ADD,operDesc = "添加分类")
public ResultBean<Category> add(@RequestBody @Validated CategoryDto categoryDto) {
Category category = BeanUtil.copyProperties(categoryDto, Category.class);
categoryService.save(category);
return ResultBean.success(category);
}
@ApiOperation(value = "分类-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/category/{categoryId}")
public ResultBean<CategoryVo> get(@PathVariable @NotBlank String categoryId) {
Category category = categoryService.getById(categoryId);
CategoryVo categoryVo = BeanUtil.copyProperties(category,CategoryVo.class);
return ResultBean.success(categoryVo);
}
@ApiOperation(value = "分类-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/category/update")
public ResultBean<Category> update(@RequestBody @Validated(UpdateGroup.class) CategoryDto categoryDto) {
Category category = BeanUtil.copyProperties(categoryDto, Category.class);
categoryService.updateById(category);
return ResultBean.success(category);
}
@ApiOperation(value = "分类-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/category/delete/{categoryId}")
public ResultBean<Category> delete(@PathVariable @NotBlank String categoryId) {
Boolean b = categoryService.removeById(categoryId);
return ResultBean.success(b);
}
}

View File

@ -1,68 +0,0 @@
package com.dd.admin.business.category.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 分类返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Data
@ApiModel(value="分类接收对象")
public class CategoryDto {
@ApiModelProperty(value = "分类id")
@NotBlank(message = "分类id不能为空",groups = UpdateGroup.class)
private String categoryId;
@ApiModelProperty(value = "分类名")
private String categoryName;
@ApiModelProperty(value = "0正常 1禁用")
private Integer categoryStatus;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "搜索关键字")
private String keyword;
}

View File

@ -1,63 +0,0 @@
package com.dd.admin.business.category.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 分类返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Data
@ApiModel(value="分类返回对象")
public class CategoryVo {
@ApiModelProperty(value = "分类id")
private String categoryId;
@ApiModelProperty(value = "分类名")
private String categoryName;
@ApiModelProperty(value = "0正常 1禁用")
private Integer categoryStatus;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
}

View File

@ -1,77 +0,0 @@
package com.dd.admin.business.category.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 分类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_category")
@ApiModel(value="Category对象", description="分类")
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分类id")
@TableId(value = "CATEGORY_ID", type = IdType.ASSIGN_UUID)
private String categoryId;
@ApiModelProperty(value = "分类名")
@TableField("CATEGORY_NAME")
private String categoryName;
@ApiModelProperty(value = "0正常 1禁用")
@TableField("CATEGORY_STATUS")
private Integer categoryStatus;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.category.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.category.entity.Category;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.category.domain.CategoryVo;
import com.dd.admin.business.category.domain.CategoryDto;
import java.util.List;
/**
* <p>
* 分类 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Mapper
public interface CategoryMapper extends BaseMapper<Category> {
IPage<CategoryVo> selectCategoryPage(Page<CategoryVo> page, @Param("categoryDto") CategoryDto categoryDto);
List<CategoryVo> selectCategoryList(@Param("categoryDto") CategoryDto categoryDto);
}

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.category.mapper.CategoryMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.category.entity.Category">
<id column="CATEGORY_ID" property="categoryId" />
<result column="CATEGORY_NAME" property="categoryName" />
<result column="CATEGORY_STATUS" property="categoryStatus" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
CATEGORY_ID, CATEGORY_NAME, CATEGORY_STATUS, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID
</sql>
<select id="selectCategoryPage" resultType="com.dd.admin.business.category.domain.CategoryVo">
select
*
from business_category where 1 = 1
<if test="categoryDto.keyword != null and categoryDto.keyword != ''">
and CATEGORY_NAME like CONCAT('%', #{categoryDto.keyword}, '%')
</if>
<if test="categoryDto.shopId != null and categoryDto.shopId != ''">
and shop_id = #{categoryDto.shopId}
</if>
<if test="categoryDto.categoryStatus != null ">
and CATEGORY_STATUS = #{categoryDto.categoryStatus}
</if>
order by create_time desc
</select>
<select id="selectCategoryList" resultType="com.dd.admin.business.category.domain.CategoryVo">
select
*
from business_category where 1 = 1
<if test="categoryDto.shopId != null and categoryDto.shopId != ''">
and shop_id = #{categoryDto.shopId}
</if>
<if test="categoryDto.categoryStatus != null ">
and CATEGORY_STATUS = #{categoryDto.categoryStatus}
</if>
order by create_time desc
</select>
</mapper>

View File

@ -1,26 +0,0 @@
package com.dd.admin.business.category.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.category.entity.Category;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.category.domain.CategoryVo;
import com.dd.admin.business.category.domain.CategoryDto;
import java.util.List;
/**
* <p>
* 分类 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
public interface CategoryService extends IService<Category> {
//分类-分页列表
IPage<CategoryVo> selectCategoryPage(CategoryDto categoryDto);
//分类-列表
List<CategoryVo> selectCategoryList(CategoryDto categoryDto);
}

View File

@ -1,36 +0,0 @@
package com.dd.admin.business.category.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.category.entity.Category;
import com.dd.admin.business.category.mapper.CategoryMapper;
import com.dd.admin.business.category.service.CategoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.category.domain.CategoryVo;
import com.dd.admin.business.category.domain.CategoryDto;
import java.util.List;
/**
* <p>
* 分类 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-22
*/
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {
@Override
public IPage<CategoryVo> selectCategoryPage(CategoryDto categoryDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectCategoryPage(page,categoryDto);
}
@Override
public List<CategoryVo> selectCategoryList(CategoryDto categoryDto) {
return baseMapper.selectCategoryList(categoryDto);
}
}

View File

@ -1,88 +0,0 @@
package com.dd.admin.business.detailServer.controller;
import cn.hutool.core.bean.BeanUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.domain.SellDetailServerVo;
import com.dd.admin.business.detailServer.domain.SellDetailServerDto;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 订单详单服务人员 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Api(tags = "订单详单服务人员")
@RestController
public class SellDetailServerController {
@Autowired
SellDetailServerService detailServerService;
@ApiOperation(value = "订单详单服务人员-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/detailServer/page")
public ResultBean<IPage<SellDetailServerVo>> page(SellDetailServerDto detailServerDto) {
IPage<SellDetailServerVo> pageInfo = detailServerService.selectSellDetailServerPage(detailServerDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "订单详单服务人员-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/detailServer/list")
public ResultBean<List<SellDetailServerVo>> list(SellDetailServerDto detailServerDto) {
List<SellDetailServerVo> list = detailServerService.selectSellDetailServerList(detailServerDto);
return ResultBean.success(list);
}
@ApiOperation(value = "订单详单服务人员-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/detailServer/add")
public ResultBean<SellDetailServer> add(@RequestBody @Validated SellDetailServerDto detailServerDto) {
SellDetailServer detailServer = BeanUtil.copyProperties(detailServerDto, SellDetailServer.class);
detailServerService.save(detailServer);
return ResultBean.success(detailServer);
}
@ApiOperation(value = "订单详单服务人员-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/detailServer/{detailServerId}")
public ResultBean<SellDetailServerVo> get(@PathVariable @NotBlank String detailServerId) {
SellDetailServer detailServer = detailServerService.getById(detailServerId);
SellDetailServerVo detailServerVo = BeanUtil.copyProperties(detailServer,SellDetailServerVo.class);
return ResultBean.success(detailServerVo);
}
@ApiOperation(value = "订单详单服务人员-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/detailServer/update")
public ResultBean<SellDetailServer> update(@RequestBody @Validated(UpdateGroup.class) SellDetailServerDto detailServerDto) {
SellDetailServer detailServer = BeanUtil.copyProperties(detailServerDto, SellDetailServer.class);
detailServerService.updateById(detailServer);
return ResultBean.success(detailServer);
}
@ApiOperation(value = "订单详单服务人员-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/detailServer/delete/{detailServerId}")
public ResultBean<SellDetailServer> delete(@PathVariable @NotBlank String detailServerId) {
Boolean b = detailServerService.removeById(detailServerId);
return ResultBean.success(b);
}
}

View File

@ -1,83 +0,0 @@
package com.dd.admin.business.detailServer.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 订单详单服务人员返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Data
@ApiModel(value="订单详单服务人员接收对象")
public class SellDetailServerDto {
@ApiModelProperty(value = "详单对应服务人员记录id")
@NotBlank(message = "订单详单服务人员id不能为空",groups = UpdateGroup.class)
private String detailServerId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "详单id")
private String sellDetailId;
@ApiModelProperty(value = "服务人员")
private String serverId;
@ApiModelProperty(value = "服务人员")
private String serverName;
@ApiModelProperty(value = "提成")
private BigDecimal serverPushMoney;
@ApiModelProperty(value = "业绩")
private BigDecimal serverGrade;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -1,79 +0,0 @@
package com.dd.admin.business.detailServer.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单详单服务人员返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Data
@ApiModel(value="订单详单服务人员返回对象")
public class SellDetailServerVo {
@ApiModelProperty(value = "详单对应服务人员记录id")
private String detailServerId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "详单id")
private String sellDetailId;
@ApiModelProperty(value = "服务人员")
private String serverId;
@ApiModelProperty(value = "服务人员")
private String serverName;
@ApiModelProperty(value = "提成")
private BigDecimal serverPushMoney;
@ApiModelProperty(value = "业绩")
private BigDecimal serverGrade;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -1,98 +0,0 @@
package com.dd.admin.business.detailServer.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单详单服务人员
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_sell_detail_server")
@ApiModel(value="SellDetailServer对象", description="订单详单服务人员")
public class SellDetailServer implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "详单对应服务人员记录id")
@TableId(value = "DETAIL_SERVER_ID", type = IdType.ASSIGN_UUID)
private String detailServerId;
@ApiModelProperty(value = "订单id")
@TableField("SELL_ID")
private String sellId;
@ApiModelProperty(value = "详单id")
@TableField("SELL_DETAIL_ID")
private String sellDetailId;
@ApiModelProperty(value = "服务人员")
@TableField("SERVER_ID")
private String serverId;
@ApiModelProperty(value = "服务人员")
@TableField("SERVER_NAME")
private String serverName;
@ApiModelProperty(value = "提成")
@TableField("SERVER_PUSH_MONEY")
private BigDecimal serverPushMoney;
@ApiModelProperty(value = "业绩")
@TableField("SERVER_GRADE")
private BigDecimal serverGrade;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
@ApiModelProperty(value = "备注")
@TableField("REMARK")
private String remark;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.detailServer.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.detailServer.domain.SellDetailServerVo;
import com.dd.admin.business.detailServer.domain.SellDetailServerDto;
import java.util.List;
/**
* <p>
* 订单详单服务人员 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Mapper
public interface SellDetailServerMapper extends BaseMapper<SellDetailServer> {
IPage<SellDetailServerVo> selectSellDetailServerPage(Page<SellDetailServerVo> page, @Param("detailServerDto") SellDetailServerDto detailServerDto);
List<SellDetailServerVo> selectSellDetailServerList(@Param("detailServerDto") SellDetailServerDto detailServerDto);
}

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.detailServer.mapper.SellDetailServerMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.detailServer.entity.SellDetailServer">
<id column="DETAIL_SERVER_ID" property="detailServerId" />
<result column="SELL_ID" property="sellId" />
<result column="SELL_DETAIL_ID" property="sellDetailId" />
<result column="SERVER_ID" property="serverId" />
<result column="SERVER_NAME" property="serverName" />
<result column="SERVER_PUSH_MONEY" property="serverPushMoney" />
<result column="SERVER_GRADE" property="serverGrade" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
<result column="REMARK" property="remark" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DETAIL_SERVER_ID, SELL_ID, SELL_DETAIL_ID, SERVER_ID, SERVER_NAME, SERVER_PUSH_MONEY, SERVER_GRADE, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID, REMARK
</sql>
<select id="selectSellDetailServerPage" resultType="com.dd.admin.business.detailServer.domain.SellDetailServerVo">
select
*
from business_sell_detail_server where 1 = 1
</select>
<select id="selectSellDetailServerList" resultType="com.dd.admin.business.detailServer.domain.SellDetailServerVo">
select
*
from business_sell_detail_server where 1 = 1
</select>
</mapper>

View File

@ -1,31 +0,0 @@
package com.dd.admin.business.detailServer.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.detailServer.domain.SellDetailServerVo;
import com.dd.admin.business.detailServer.domain.SellDetailServerDto;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import java.util.List;
/**
* <p>
* 订单详单服务人员 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
public interface SellDetailServerService extends IService<SellDetailServer> {
//订单详单服务人员-分页列表
IPage<SellDetailServerVo> selectSellDetailServerPage(SellDetailServerDto detailServerDto);
//订单详单服务人员-列表
List<SellDetailServerVo> selectSellDetailServerList(SellDetailServerDto detailServerDto);
List<SellDetailServer> selectSellDetailServerListBySellDetailIds(List<String> sellDetailIds);
}

View File

@ -1,49 +0,0 @@
package com.dd.admin.business.detailServer.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.mapper.SellDetailServerMapper;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.detailServer.domain.SellDetailServerVo;
import com.dd.admin.business.detailServer.domain.SellDetailServerDto;
import java.util.List;
/**
* <p>
* 订单详单服务人员 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-11-28
*/
@Service
public class SellDetailServerServiceImpl extends ServiceImpl<SellDetailServerMapper, SellDetailServer> implements SellDetailServerService {
@Override
public IPage<SellDetailServerVo> selectSellDetailServerPage(SellDetailServerDto detailServerDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectSellDetailServerPage(page,detailServerDto);
}
@Override
public List<SellDetailServerVo> selectSellDetailServerList(SellDetailServerDto detailServerDto) {
return baseMapper.selectSellDetailServerList(detailServerDto);
}
@Override
public List<SellDetailServer> selectSellDetailServerListBySellDetailIds(List<String> sellDetailIds) {
LambdaQueryWrapper<SellDetailServer> selldetailQueryWrapper = new LambdaQueryWrapper<>();
if(CollectionUtil.isNotEmpty(sellDetailIds)){
selldetailQueryWrapper.in(SellDetailServer::getSellDetailId, sellDetailIds);
}
List<SellDetailServer> sellDetailList = this.list(selldetailQueryWrapper);
return sellDetailList;
}
}

View File

@ -1,118 +0,0 @@
package com.dd.admin.business.member.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.member.entity.Member;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.member.domain.MemberDto;
import com.dd.admin.business.member.service.MemberService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.MEMBER_ALREADY_BUILD;
/**
* <p>
* 会员 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Api(tags = "会员")
@RestController
public class MemberController {
@Autowired
MemberService memberService;
@ApiOperation(value = "会员-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/member/page")
public ResultBean<IPage<MemberVo>> page(MemberDto memberDto) {
memberDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<MemberVo> pageInfo = memberService.selectMemberPage(memberDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "会员-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/member/list")
public ResultBean<List<MemberVo>> list(MemberDto memberDto) {
memberDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<MemberVo> list = memberService.selectMemberList(memberDto);
return ResultBean.success(list);
}
@ApiOperation(value = "会员-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/member/searchList")
@OperLog(operModule = "会员查询",operType = OperType.QUERY,operDesc = "会员查询")
public ResultBean<List<MemberVo>> searchList(MemberDto memberDto) {
memberDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
memberDto.setLimit(10);
List<MemberVo> list = memberService.selectMemberList(memberDto);
return ResultBean.success(list);
}
@ApiOperation(value = "会员-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/member/add")
@OperLog(operModule = "添加会员",operType = OperType.ADD,operDesc = "添加会员")
public ResultBean<Member> add(@RequestBody @Validated MemberDto memberDto) {
// 先根据手机号查询是否已存在会员
LambdaQueryWrapper<Member> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Member::getMemberPhone, memberDto.getMemberPhone());
Member existingMembers = memberService.getOne(queryWrapper);
if (existingMembers != null) {
// 如果存在则返回错误信息表示手机号已被注册
throw new ApiException(MEMBER_ALREADY_BUILD);
}
Member member = BeanUtil.copyProperties(memberDto, Member.class);
memberService.save(member);
return ResultBean.success(member);
}
@ApiOperation(value = "会员-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/member/{memberId}")
public ResultBean<MemberVo> get(@PathVariable @NotBlank String memberId) {
Member member = memberService.getById(memberId);
MemberVo memberVo = BeanUtil.copyProperties(member,MemberVo.class);
return ResultBean.success(memberVo);
}
@ApiOperation(value = "会员-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/member/update")
public ResultBean<Member> update(@RequestBody @Validated(UpdateGroup.class) MemberDto memberDto) {
Member member = BeanUtil.copyProperties(memberDto, Member.class);
memberService.updateById(member);
return ResultBean.success(member);
}
@ApiOperation(value = "会员-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/member/delete/{memberId}")
public ResultBean<Member> delete(@PathVariable @NotBlank String memberId) {
Boolean b = memberService.removeById(memberId);
return ResultBean.success(b);
}
}

View File

@ -1,67 +0,0 @@
package com.dd.admin.business.member.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 会员返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Data
@ApiModel(value="会员接收对象")
public class MemberDto {
@ApiModelProperty(value = "会员表id")
@NotBlank(message = "会员id不能为空",groups = UpdateGroup.class)
private String memberId;
@ApiModelProperty(value = "会员姓名")
private String memberName;
@ApiModelProperty(value = "手机号")
private String memberPhone;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "消费密码")
private String payPassword;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "会员姓名")
private String querySearch;
@ApiModelProperty(value = "条数")
private Integer limit;
@ApiModelProperty(value = "搜索会员关键字")
private String keyword;
}

View File

@ -1,56 +0,0 @@
package com.dd.admin.business.member.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Data
@ApiModel(value="会员返回对象")
public class MemberVo {
@ApiModelProperty(value = "会员表id")
private String memberId;
@ApiModelProperty(value = "会员姓名")
private String memberName;
@ApiModelProperty(value = "手机号")
private String memberPhone;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "消费密码")
private String payPassword;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}

View File

@ -1,67 +0,0 @@
package com.dd.admin.business.member.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_member")
@ApiModel(value="Member对象", description="会员")
public class Member implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会员表id")
@TableId(value = "MEMBER_ID", type = IdType.ASSIGN_UUID)
private String memberId;
@ApiModelProperty(value = "会员姓名")
@TableField("MEMBER_NAME")
private String memberName;
@ApiModelProperty(value = "手机号")
@TableField("MEMBER_PHONE")
private String memberPhone;
@ApiModelProperty(value = "备注")
@TableField("REMARK")
private String remark;
@ApiModelProperty(value = "消费密码")
@TableField("PAY_PASSWORD")
private String payPassword;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.member.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.member.entity.Member;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.member.domain.MemberDto;
import java.util.List;
/**
* <p>
* 会员 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Mapper
public interface MemberMapper extends BaseMapper<Member> {
IPage<MemberVo> selectMemberPage(Page<MemberVo> page, @Param("memberDto") MemberDto memberDto);
List<MemberVo> selectMemberList(@Param("memberDto") MemberDto memberDto);
}

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.member.mapper.MemberMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.member.entity.Member">
<id column="MEMBER_ID" property="memberId" />
<result column="MEMBER_NAME" property="memberName" />
<result column="MEMBER_PHONE" property="memberPhone" />
<result column="REMARK" property="remark" />
<result column="PAY_PASSWORD" property="payPassword" />
<result column="SHOP_NAME" property="shopName" />
<result column="SHOP_ID" property="shopId" />
<result column="CREATE_TIME" property="createTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
MEMBER_ID, MEMBER_NAME, MEMBER_PHONE, REMARK, PAY_PASSWORD, SHOP_NAME, SHOP_ID, CREATE_TIME
</sql>
<select id="selectMemberPage" resultType="com.dd.admin.business.member.domain.MemberVo">
select
*
from business_member where 1 = 1
<if test="memberDto.keyword != null and memberDto.keyword != ''">
and (member_name like CONCAT('%', #{memberDto.keyword}, '%')
or member_phone like concat('%',#{memberDto.keyword},'%'))
</if>
<if test="memberDto.shopId != null and memberDto.shopId != ''">
and shop_id = #{memberDto.shopId}
</if>
order by create_time desc
</select>
<select id="selectMemberList" resultType="com.dd.admin.business.member.domain.MemberVo">
select
*
from business_member where 1 = 1
<if test="memberDto.querySearch != null and memberDto.querySearch != ''">
and (member_name like CONCAT('%', #{memberDto.querySearch}, '%')
or member_phone like concat('%',#{memberDto.querySearch},'%'))
</if>
<if test="memberDto.shopId != null and memberDto.shopId != ''">
and shop_id = #{memberDto.shopId}
</if>
order by create_time desc
<if test="memberDto.limit != null">
limit #{memberDto.limit}
</if>
</select>
</mapper>

View File

@ -1,27 +0,0 @@
package com.dd.admin.business.member.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.member.entity.Member;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.member.domain.MemberDto;
import java.util.List;
/**
* <p>
* 会员 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
public interface MemberService extends IService<Member> {
//会员-分页列表
IPage<MemberVo> selectMemberPage(MemberDto memberDto);
//会员-列表
List<MemberVo> selectMemberList(MemberDto memberDto);
Integer selectMemberCount(String shopId);
}

View File

@ -1,45 +0,0 @@
package com.dd.admin.business.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.member.entity.Member;
import com.dd.admin.business.member.mapper.MemberMapper;
import com.dd.admin.business.member.service.MemberService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.member.domain.MemberDto;
import java.util.List;
/**
* <p>
* 会员 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-21
*/
@Service
public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements MemberService {
@Override
public IPage<MemberVo> selectMemberPage(MemberDto memberDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectMemberPage(page,memberDto);
}
@Override
public List<MemberVo> selectMemberList(MemberDto memberDto) {
return baseMapper.selectMemberList(memberDto);
}
@Override
public Integer selectMemberCount(String shopId) {
LambdaQueryWrapper<Member> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Member::getShopId, shopId);
return baseMapper.selectCount(queryWrapper);
}
}

View File

@ -1,112 +0,0 @@
package com.dd.admin.business.memberCard.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.member.entity.Member;
import com.dd.admin.business.member.service.MemberService;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.domain.MemberCardDto;
import com.dd.admin.business.memberCard.service.MemberCardService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 会员卡 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Api(tags = "会员卡")
@RestController
public class MemberCardController {
@Autowired
MemberCardService memberCardService;
@Autowired
MemberService memberService;
@ApiOperation(value = "会员卡-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/memberCard/page")
public ResultBean<IPage<MemberCardVo>> page(MemberCardDto memberCardDto) {
memberCardDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<MemberCardVo> pageInfo = memberCardService.selectMemberCardPage(memberCardDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "会员卡-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/memberCard/list")
public ResultBean<List<MemberCardVo>> list(MemberCardDto memberCardDto) {
memberCardDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<MemberCardVo> list = memberCardService.selectMemberCardList(memberCardDto);
return ResultBean.success(list);
}
@ApiOperation(value = "会员卡-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/memberCard/searchList")
public ResultBean<List<MemberCardVo>> searchList(MemberCardDto memberCardDto) {
memberCardDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
memberCardDto.setLimit(10);
List<MemberCardVo> list = memberCardService.selectMemberCardList(memberCardDto);
list.stream().forEach(memberCardVo -> {
Member member = memberService.getById(memberCardVo.getMemberId());
MemberVo memberVo = BeanUtil.copyProperties(member, MemberVo.class);
memberCardVo.setMember(memberVo);
});
return ResultBean.success(list);
}
@ApiOperation(value = "会员卡-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/memberCard/add")
public ResultBean<MemberCard> add(@RequestBody @Validated MemberCardDto memberCardDto) {
MemberCard memberCard = BeanUtil.copyProperties(memberCardDto, MemberCard.class);
memberCardService.save(memberCard);
return ResultBean.success(memberCard);
}
@ApiOperation(value = "会员卡-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/memberCard/{memberCardId}")
public ResultBean<MemberCardVo> get(@PathVariable @NotBlank String memberCardId) {
MemberCard memberCard = memberCardService.getById(memberCardId);
MemberCardVo memberCardVo = BeanUtil.copyProperties(memberCard,MemberCardVo.class);
return ResultBean.success(memberCardVo);
}
@ApiOperation(value = "会员卡-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/memberCard/update")
public ResultBean<MemberCard> update(@RequestBody @Validated(UpdateGroup.class) MemberCardDto memberCardDto) {
MemberCard memberCard = BeanUtil.copyProperties(memberCardDto, MemberCard.class);
memberCardService.updateById(memberCard);
return ResultBean.success(memberCard);
}
@ApiOperation(value = "会员卡-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/memberCard/delete/{memberCardId}")
public ResultBean<MemberCard> delete(@PathVariable @NotBlank String memberCardId) {
Boolean b = memberCardService.removeById(memberCardId);
return ResultBean.success(b);
}
}

View File

@ -1,103 +0,0 @@
package com.dd.admin.business.memberCard.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 会员卡返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="会员卡接收对象")
public class MemberCardDto {
@ApiModelProperty(value = "会员卡id")
@NotBlank(message = "会员卡id不能为空",groups = UpdateGroup.class)
private String memberCardId;
@ApiModelProperty(value = "会员id")
private String memberId;
@ApiModelProperty(value = "卡项ID")
private String cardId;
@ApiModelProperty(value = "卡号")
private String cardNo;
@ApiModelProperty(value = "卡名称")
private String cardName;
@ApiModelProperty(value = "余额")
private BigDecimal amount;
@ApiModelProperty(value = "赠送金额")
private BigDecimal giveAmount;
@ApiModelProperty(value = "商品折扣")
private BigDecimal discount;
@ApiModelProperty(value = "开卡金额")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "提成比例")
private BigDecimal pushMoney;
@ApiModelProperty(value = "0正常 1取消")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "搜索会员卡关键字")
private String querySearch;
@ApiModelProperty(value = "搜索会员卡关键字")
private Integer limit;
}

View File

@ -1,100 +0,0 @@
package com.dd.admin.business.memberCard.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.dd.admin.business.member.domain.MemberVo;
import com.dd.admin.business.memberCard.entity.MemberCard;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员卡返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="会员卡返回对象")
public class MemberCardVo {
@ApiModelProperty(value = "会员卡id")
private String memberCardId;
@ApiModelProperty(value = "会员id")
private String memberId;
@ApiModelProperty(value = "卡项ID")
private String cardId;
@ApiModelProperty(value = "卡号")
private String cardNo;
@ApiModelProperty(value = "卡名称")
private String cardName;
@ApiModelProperty(value = "余额")
private BigDecimal amount;
@ApiModelProperty(value = "赠送金额")
private BigDecimal giveAmount;
@ApiModelProperty(value = "商品折扣")
private BigDecimal discount;
@ApiModelProperty(value = "开卡金额")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "提成比例")
private BigDecimal pushMoney;
@ApiModelProperty(value = "0正常 1取消")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "会员信息")
private MemberVo member;
}

View File

@ -1,121 +0,0 @@
package com.dd.admin.business.memberCard.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员卡
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_member_card")
@ApiModel(value="MemberCard对象", description="会员卡")
public class MemberCard implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会员卡id")
@TableId(value = "MEMBER_CARD_ID", type = IdType.ASSIGN_UUID)
private String memberCardId;
@ApiModelProperty(value = "会员id")
@TableField("MEMBER_ID")
private String memberId;
@ApiModelProperty(value = "卡项ID")
@TableField("CARD_ID")
private String cardId;
@ApiModelProperty(value = "卡号")
@TableField("CARD_NO")
private String cardNo;
@ApiModelProperty(value = "卡名称")
@TableField("CARD_NAME")
private String cardName;
@ApiModelProperty(value = "余额")
@TableField("AMOUNT")
private BigDecimal amount;
@ApiModelProperty(value = "赠送金额")
@TableField("GIVE_AMOUNT")
private BigDecimal giveAmount;
@ApiModelProperty(value = "商品折扣")
@TableField("DISCOUNT")
private BigDecimal discount;
@ApiModelProperty(value = "开卡金额")
@TableField("BUILD_CARD_AMOUNT")
private BigDecimal buildCardAmount;
@ApiModelProperty(value = "提成比例")
@TableField("PUSH_MONEY")
private BigDecimal pushMoney;
@ApiModelProperty(value = "0正常 1取消")
@TableField("CARD_STATUS")
private Integer cardStatus;
@ApiModelProperty(value = "0正常 1删除")
@TableField("DELETED")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
@TableField("VERSION")
@Version
private Long version;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
}

View File

@ -1,31 +0,0 @@
package com.dd.admin.business.memberCard.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.domain.MemberCardDto;
import java.util.List;
/**
* <p>
* 会员卡 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Mapper
public interface MemberCardMapper extends BaseMapper<MemberCard> {
IPage<MemberCardVo> selectMemberCardPage(Page<MemberCardVo> page, @Param("memberCardDto") MemberCardDto memberCardDto);
List<MemberCardVo> selectMemberCardList(@Param("memberCardDto") MemberCardDto memberCardDto);
MemberCardVo selectOneByCardNo(@Param("cardNo")String cardNo,@Param("shopId")String shopId);
}

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.memberCard.mapper.MemberCardMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.memberCard.entity.MemberCard">
<id column="MEMBER_CARD_ID" property="memberCardId" />
<result column="MEMBER_ID" property="memberId" />
<result column="CARD_ID" property="cardId" />
<result column="CARD_NO" property="cardNo" />
<result column="CARD_NAME" property="cardName" />
<result column="AMOUNT" property="amount" />
<result column="GIVE_AMOUNT" property="giveAmount" />
<result column="DISCOUNT" property="discount" />
<result column="BUILD_CARD_AMOUNT" property="buildCardAmount" />
<result column="PUSH_MONEY" property="pushMoney" />
<result column="CARD_STATUS" property="cardStatus" />
<result column="DELETED" property="deleted" />
<result column="VERSION" property="version" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
MEMBER_CARD_ID, MEMBER_ID, CARD_ID, CARD_NO, CARD_NAME, AMOUNT, GIVE_AMOUNT, DISCOUNT, BUILD_CARD_AMOUNT, PUSH_MONEY, CARD_STATUS, DELETED, VERSION, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID
</sql>
<select id="selectMemberCardPage" resultType="com.dd.admin.business.memberCard.domain.MemberCardVo">
select
*
from business_member_card where 1 = 1
<if test="memberCardDto.shopId != null and memberCardDto.shopId != ''">
and shop_id = #{memberCardDto.shopId}
</if>
</select>
<select id="selectMemberCardList" resultType="com.dd.admin.business.memberCard.domain.MemberCardVo">
select
*
from business_member_card where deleted = 0
<if test="memberCardDto.memberId != null and memberCardDto.memberId != ''">
and member_id = #{memberCardDto.memberId}
</if>
<if test="memberCardDto.querySearch != null and memberCardDto.querySearch != ''">
and CARD_NO like CONCAT('%', #{memberCardDto.querySearch}, '%')
</if>
<if test="memberCardDto.shopId != null and memberCardDto.shopId != ''">
and shop_id = #{memberCardDto.shopId}
</if>
order by create_time desc
<if test="memberCardDto.limit != null">
limit #{memberCardDto.limit}
</if>
</select>
<select id="selectOneByCardNo" resultType="com.dd.admin.business.memberCard.domain.MemberCardVo">
select
<include refid="Base_Column_List"/>
from business_member_card
where
SHOP_ID = #{shopId} and
CARD_NO = #{cardNo} limit 0,1
</select>
</mapper>

View File

@ -1,31 +0,0 @@
package com.dd.admin.business.memberCard.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.domain.MemberCardDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员卡 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
public interface MemberCardService extends IService<MemberCard> {
//会员卡-分页列表
IPage<MemberCardVo> selectMemberCardPage(MemberCardDto memberCardDto);
//会员卡-列表
List<MemberCardVo> selectMemberCardList(MemberCardDto memberCardDto);
MemberCardVo selectOneByCardNo(String cardNo);
Integer selectMemberCardCount(String shopId);
}

View File

@ -1,53 +0,0 @@
package com.dd.admin.business.memberCard.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.member.entity.Member;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.mapper.MemberCardMapper;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dd.admin.common.security.SecurityUtil;
import org.springframework.stereotype.Service;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.domain.MemberCardDto;
import java.util.List;
/**
* <p>
* 会员卡 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Service
public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberCard> implements MemberCardService {
@Override
public IPage<MemberCardVo> selectMemberCardPage(MemberCardDto memberCardDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectMemberCardPage(page,memberCardDto);
}
@Override
public List<MemberCardVo> selectMemberCardList(MemberCardDto memberCardDto) {
return baseMapper.selectMemberCardList(memberCardDto);
}
@Override
public MemberCardVo selectOneByCardNo(String cardNo) {
String deptId = SecurityUtil.getLoginUser().getDeptId();
return baseMapper.selectOneByCardNo(cardNo,deptId);
}
@Override
public Integer selectMemberCardCount(String shopId) {
LambdaQueryWrapper<MemberCard> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MemberCard::getShopId, shopId);
return baseMapper.selectCount(queryWrapper);
}
}

View File

@ -1,64 +0,0 @@
package com.dd.admin.business.pay;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.business.member.domain.MemberDto;
import com.dd.admin.business.member.entity.Member;
import com.dd.admin.business.pay.domain.BuildCardSell;
import com.dd.admin.business.pay.domain.ChargedCardSell;
import com.dd.admin.business.pay.domain.MemberProductSell;
import com.dd.admin.business.pay.service.PayService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.model.result.ResultBean;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@Api(tags = "结算控制器")
@RestController
public class PayController {
@Autowired
PayService payService;
@ApiOperation(value = "开卡结算")
@ApiOperationSupport(order = 3)
@PostMapping("/pay/buildCard")
@Transactional
@OperLog(operModule = "开卡结算",operType = OperType.ADD,operDesc = "开卡结算")
public ResultBean<Sell> buildCard(@RequestBody @Validated BuildCardSell buildCardSell) {
Sell sell = payService.executeBuildCard(buildCardSell);
return ResultBean.success(sell);
}
@ApiOperation(value = "续卡结算")
@ApiOperationSupport(order = 3)
@PostMapping("/pay/chargedCard")
@Transactional
@OperLog(operModule = "续卡结算",operType = OperType.ADD,operDesc = "续卡结算")
public ResultBean<Sell> chargedCard(@RequestBody @Validated ChargedCardSell chargedCardSell) {
Sell sell = payService.executeChargedCard(chargedCardSell);
return ResultBean.success(sell);
}
@ApiOperation(value = "商品结算")
@ApiOperationSupport(order = 3)
@PostMapping("/pay/productPay")
@Transactional
@OperLog(operModule = "商品结算",operType = OperType.ADD,operDesc = "商品结算")
public ResultBean<Sell> buildCard(@RequestBody @Validated MemberProductSell productSell) {
Sell sell = payService.executeProduct(productSell);
return ResultBean.success(sell);
}
}

View File

@ -1,34 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.dd.admin.business.sellPay.entity.Sellpay;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Data
public class BaseSell {
@ApiModelProperty(value = "订单号 可不填 不填将自动生成")
private String sellNo;
@ApiModelProperty(value = "支付列表")
@NotNull(message = "支付信息不能为空")
private List<Sellpay> sellPayList;
@ApiModelProperty(value = "订单金额")
@NotNull(message = "订单金额不能为空")
@Max(value = 1000000,message = "订单金额最大为1000000")
@Min(value = 0,message = "订单金额最小为0")
private BigDecimal sellAmount;
@ApiModelProperty(value = "json")
private String sellJson;
@ApiModelProperty(value = "jsonId")
private String jsonId;
}

View File

@ -1,40 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dd.admin.business.server.domain.ServerVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class BuildCardForm {
@ApiModelProperty(value = "会员卡id")
private String cardId;
@ApiModelProperty(value = "会员卡名")
@TableField("CARD_NAME")
private String cardName;
@ApiModelProperty(value = "卡编号")
@TableField("CARD_NO")
private String cardNo;
@ApiModelProperty(value = "预设开卡金")
@TableField("CARD_AMOUNT")
private BigDecimal cardAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "预设赠送金")
@TableField("GIVE_AMOUNT")
private BigDecimal giveAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "商品实际金额")
private BigDecimal totalRealAmount;
@ApiModelProperty(value = "服务人员列表")
private List<ServerVo> serverList;
}

View File

@ -1,18 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.dd.admin.business.card.entity.Card;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value="开卡接收对象")
public class BuildCardSell extends MemberBaseSell {
@ApiModelProperty(value = "开卡对象")
@NotNull(message = "开卡对象不能为空")
@Valid
BuildCardForm buildCardForm;
}

View File

@ -1,39 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dd.admin.business.server.domain.ServerVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ChargedCardForm {
@ApiModelProperty(value = "会员卡id")
private String memberCardId;
@ApiModelProperty(value = "会员卡id")
private String cardId;
@ApiModelProperty(value = "会员卡名")
@TableField("CARD_NAME")
private String cardName;
@ApiModelProperty(value = "修改后卡编号")
@TableField("CARD_NO")
private String cardNo;
@ApiModelProperty(value = "充值开卡金")
private BigDecimal chargedCardAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "充值赠送金")
private BigDecimal chargedGiveAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "商品实际金额")
private BigDecimal totalRealAmount;
@ApiModelProperty(value = "服务人员列表")
private List<ServerVo> serverList;
}

View File

@ -1,17 +0,0 @@
package com.dd.admin.business.pay.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value="续卡接收对象")
public class ChargedCardSell extends MemberBaseSell {
@ApiModelProperty(value = "续卡对象")
@NotNull(message = "续卡对象不能为空")
@Valid
ChargedCardForm chargedCardForm;
}

View File

@ -1,24 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.dd.admin.business.sellPay.entity.Sellpay;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Data
public class MemberBaseSell extends BaseSell{
@ApiModelProperty(value = "会员id")
private String memberId;
@ApiModelProperty(value = "会员卡id")
private String memberCardId;
@ApiModelProperty(value = "会员名")
private String memberName;
}

View File

@ -1,20 +0,0 @@
package com.dd.admin.business.pay.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ApiModel(value="会员商品消费")
public class MemberProductSell extends MemberBaseSell {
@ApiModelProperty(value = "商品对象")
@NotNull(message = "商品对不能为空")
@Valid
private List<ProductForm> productFormList;
}

View File

@ -1,48 +0,0 @@
package com.dd.admin.business.pay.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dd.admin.business.server.domain.ServerVo;
import com.dd.admin.common.model.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ProductForm {
@ApiModelProperty(value = "商品id")
@NotBlank(message = "商品id不能为空",groups = UpdateGroup.class)
private String productId;
@ApiModelProperty(value = "分类id")
private String categoryId;
@ApiModelProperty(value = "分类名")
private String categoryName;
@ApiModelProperty(value = "商品名")
private String productName;
@ApiModelProperty(value = "商品金额")
private BigDecimal productAmount;
@ApiModelProperty(value = "商品会员金额")
private BigDecimal productMemberAmount;
@ApiModelProperty(value = "商品折扣")
private BigDecimal discount;
@ApiModelProperty(value = "商品数量")
private Long count;
@ApiModelProperty(value = "商品实际金额")
private BigDecimal realAmount;
@ApiModelProperty(value = "商品实际金额")
private BigDecimal totalRealAmount;
@ApiModelProperty(value = "服务人员列表")
private List<ServerVo> serverList;
}

View File

@ -1,59 +0,0 @@
package com.dd.admin.business.pay.enmus;
import com.dd.admin.common.exception.enums.AbstractBaseExceptionEnum;
public enum CashierExceptionEnum implements AbstractBaseExceptionEnum {
CARD_AMOUNT_CHANGE(500,"余额已变动,为保证数据安全,操作中断,请重试!"),
MEMBER_CARD_NOT_SUFFICIENT_FUNDS(500,"会员卡余额不足,请重新操作!"),
MEMBER_CARD_GIVE_NOT_SUFFICIENT_FUNDS(500,"会员卡赠送余额不足,请重新操作!"),
MEMBER_CARD_ALREADY_BUILD(500,"该会员已经有充值账户,禁止重复创建!"),
MEMBER_ALREADY_BUILD(500,"该手机号已注册过,禁止重复创建!"),
MEMBER_DIFFERENT(500,"会员卡与会员信息不一致,请核实~"),
DEPT_DIFFERENT(500,"结算信息与当前门店信息不一致,请刷新后重试~"),
LKLPAY_NOT_AUTHCODE(500,"没有扫描或者扫描了错误的付款码,请核实!"),
LKLPAYINFO_IS_EXIST(500,"该组织的拉卡拉拓展信息已经配置过啦!"),
LKLPAYINFO_AUTHCODE_ERROR(500,"扫描用户付款码有误!"),
SELL_TYPE_ERROR(500,"传入的支付方式有误!"),
LKLPAYINFO_UNKONW_ERROR(500,"付款码支付有误!"),
LKLPAYINFO_COMPLETE_ERROR(500,"该订单已经完成了哦!"),
PRODUCT_ALREADY_EXIST(500,"该商品号已被占用!"),
CARDNO_ALREADY_EXIST(500,"该卡号已被占用!"),
CARD_ALREADY_EXIST(500,"该卡项编号已被占用!"),
PRODUCT_CARD_ALREADY_EXIST(500,"卡级价已存在,请更换其他卡项设置!"),
AUTHCODE_PAY_NOTZREO(500,"条码支付金额不能为0"),
COMBO_EXPIRED(500,"该套餐活动已过期!"),
COMBO_MONTH_COUNT_NONE(500,"套餐过期月数未设置!"),
MEMBER_COMBO_EXPIRED(500,"会员套餐截止期已过!"),
MEMBER_COMBO_NOT_SUFFICIENT_FUNDS(500,"套餐剩余项目次数不足!"),
MEMBER_COMBO_IS_USED(500,"该套餐已使用禁止销单!"),
MEMBER_COMBO_IS_DEL(500,"该套餐已删除!"),
PAY_MONEY_EMPTY(500,"付款码有误!"),
PAY_MONEY_ERROR(500,"付款金额有误!"),
PAY_ERROR(500,"条码付款发生了错误!"),
PAY_SELL_ERROR(500,"该订单状态已取消!"),
PAY_SELL_ALREADY(500,"该订单状态已结算!"),
PAY_SELL_CANCEL_ERROR(500,"该订单状态无法销单!"),
PAY_SELL_CARD_AMOUNT_CHANGE(500,"该卡已经生成消费记录,无法销单!"),
PAY_SELL_CARD_AMOUNT_NOT_SUFFICIENT_FUNDS(500,"销单后会员卡赠送余额不足,无法销单!"),
;
CashierExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
private Integer code;
private String message;
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getMessage() {
return this.message;
}
}

View File

@ -1,22 +0,0 @@
package com.dd.admin.business.pay.enmus;
public enum DetailServiceEnum {
BUILD_CARD("sellDetailBuildCard"),
CHARGED_CARD("sellDetailChargedCard"),
MEMBER_PRODUCT("sellDetailMemberProduct"),
PEOPLE("sellDetailPeople");
private String serviceName;
DetailServiceEnum(String serviceName) {
this.serviceName = serviceName;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
}

View File

@ -1,60 +0,0 @@
package com.dd.admin.business.pay.enmus;
public class PayConst {
/**
* 订单状态销单
*/
public static final Integer SELL_STATUS_REVOCATION = 1;
/**
* 开卡
*/
public static final Integer SELL_TYPE_BUILD_CARD = 2;
/**
* 续卡
*/
public static final Integer SELL_TYPE_CHARGED_CARD = 3;
/**
* 商品服务
*/
public static final Integer SELL_TYPE_PRODUCT = 1;
/**
* 卡金支付
*/
public static final Integer PAY_TYPE_CARD = 1;
/**
* 赠送金支付
*/
public static final Integer PAY_TYPE_CARD_GIVE = 0;
public static final String PAY_TYPE_CARD_GIVE_NAME = "赠送金支付";
/**
* 优惠
*/
public static final Integer PAY_TYPE_DISCOUNT = 888;
/**
* 商品类型
*/
public static final Integer PRODUCT_TYPE_PRODUCT = 1;
/**
* 商品类型 卡项
*/
public static final Integer PRODUCT_TYPE_CARD = 2;
/**
* 商品类型 卡项
*/
public static final Integer PRODUCT_TYPE_CHARGED_CARD = 3;
/**
*待结算订单结算完毕
*/
public static final Integer PENDING_SELL_COMPLETE = 1;
}

View File

@ -1,19 +0,0 @@
package com.dd.admin.business.pay.service;
import com.dd.admin.business.pay.domain.BaseSell;
import com.dd.admin.business.sell.domain.SellDto;
import com.dd.admin.business.sell.entity.Sell;
/**
* Description:创建销售细单接口 所有细单的操作 实现此接口
* date: 2021/7/12
* @author: wxl
*/
public interface AddSellDetailService {
void addSellDetail(Sell sell, BaseSell sellDto);
}

View File

@ -1,22 +0,0 @@
package com.dd.admin.business.pay.service;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.pay.domain.BuildCardSell;
import com.dd.admin.business.pay.domain.ChargedCardSell;
import com.dd.admin.business.pay.domain.MemberProductSell;
import com.dd.admin.business.sell.entity.Sell;
import java.math.BigDecimal;
public interface PayService {
public Sell createSell(Sell sell);
public Sell setSellExtraInfo(String sellId, MemberCard memberCard, BigDecimal memberBeforeAmount,BigDecimal memberBeforeGiveAmount);
public Sell executeBuildCard(BuildCardSell buildCardSell);
public Sell executeChargedCard(ChargedCardSell chargedCardSell);
public Sell executeProduct(MemberProductSell productSell);
}

View File

@ -1,140 +0,0 @@
package com.dd.admin.business.pay.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.pay.domain.BuildCardSell;
import com.dd.admin.business.pay.domain.ChargedCardSell;
import com.dd.admin.business.pay.domain.MemberProductSell;
import com.dd.admin.business.pay.service.AddSellDetailService;
import com.dd.admin.business.pay.service.PayService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellJson.entity.Selljson;
import com.dd.admin.business.sellJson.service.SelljsonService;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.common.security.SecurityUtil;
import com.dd.admin.common.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Map;
import static com.dd.admin.business.pay.enmus.DetailServiceEnum.*;
import static com.dd.admin.business.pay.enmus.PayConst.*;
@Service
public class PayServiceImpl implements PayService {
@Autowired
private SellService sellService;
@Autowired
private Map<String, AddSellDetailService> detailServiceMap;
@Autowired
private SellpayService sellpayService;
@Autowired
private SelljsonService selljsonService;
@Override
public Sell createSell(Sell sell) {
String shopId = SecurityUtil.getLoginUser().getDeptId();
//直接执行save即可
if(StringUtil.isEmpty(sell.getSellNo())){
String sellNo = (StringUtil.getDateStringNow() + StringUtil.createCode(4));
sell.setSellNo(sellNo);
}
//插入时查看该门店今天数量为流水号
Integer count = sellService.selectTodayCount(shopId);
sell.setSerialNo(String.valueOf(count + 1));
sellService.save(sell);
return sell;
}
@Override
public Sell setSellExtraInfo(String sellId, MemberCard memberCard, BigDecimal memberBeforeAmount, BigDecimal memberBeforeGiveAmount) {
Sell extraSellInfo = new Sell();
extraSellInfo.setSellId(sellId);
if(memberCard!=null){
//设置订单的卡信息
extraSellInfo.setMemberCardId(memberCard.getMemberCardId());
extraSellInfo.setMemberCardName(memberCard.getCardName());
extraSellInfo.setMemberCardNo(memberCard.getCardNo());
//设置订单的卡余额
extraSellInfo.setMemberCardBeforeAmount(memberBeforeAmount);
extraSellInfo.setMemberCardBeforeGiveAmount(memberBeforeGiveAmount);
extraSellInfo.setMemberCardAfterAmount(memberCard.getAmount());
extraSellInfo.setMemberCardAfterGiveAmount(memberCard.getGiveAmount());
}
sellService.updateById(extraSellInfo);
return extraSellInfo;
}
@Override
public Sell executeBuildCard(BuildCardSell buildCardSell) {
if(StringUtil.isNotEmpty(buildCardSell.getJsonId())){
selljsonService.completePendingSell(buildCardSell.getJsonId());
}
Integer sellType = SELL_TYPE_BUILD_CARD;
//第一步创建订单
Sell sell = BeanUtil.copyProperties(buildCardSell,Sell.class);
sell.setSellType(sellType);
BigDecimal realAmount = sellpayService.getRealAmount(buildCardSell.getSellPayList(), buildCardSell.getSellAmount());
sell.setRealAmount(realAmount);
createSell(sell);
// selljsonService.save(new Selljson().setSellId(sell.getSellId()).setSellJson(buildCardSell.getSellJson()));
//创建销售细单
detailServiceMap.get(BUILD_CARD.getServiceName()).addSellDetail(sell,buildCardSell);
return sell;
}
@Override
public Sell executeChargedCard(ChargedCardSell chargedCardSell) {
if(StringUtil.isNotEmpty(chargedCardSell.getJsonId())){
selljsonService.completePendingSell(chargedCardSell.getJsonId());
}
Integer sellType = SELL_TYPE_CHARGED_CARD;
//chargedCardSell
Sell sell = BeanUtil.copyProperties(chargedCardSell,Sell.class);
sell.setSellType(sellType);
BigDecimal realAmount = sellpayService.getRealAmount(chargedCardSell.getSellPayList(), chargedCardSell.getSellAmount());
sell.setRealAmount(realAmount);
createSell(sell);
// selljsonService.save(new Selljson().setSellId(sell.getSellId()).setSellJson(chargedCardSell.getSellJson()));
//创建销售细单
detailServiceMap.get(CHARGED_CARD.getServiceName()).addSellDetail(sell,chargedCardSell);
return sell;
}
@Override
public Sell executeProduct(MemberProductSell productSell) {
if(StringUtil.isNotEmpty(productSell.getJsonId())){
selljsonService.completePendingSell(productSell.getJsonId());
}
Integer sellType = SELL_TYPE_PRODUCT;
//第一步创建订单
Sell sell = BeanUtil.copyProperties(productSell,Sell.class);
sell.setSellType(sellType);
BigDecimal realAmount = sellpayService.getRealAmount(productSell.getSellPayList(), productSell.getSellAmount());
sell.setRealAmount(realAmount);
createSell(sell);
//创建销售细单
detailServiceMap.get(MEMBER_PRODUCT.getServiceName()).addSellDetail(sell,productSell);
return sell;
}
}

View File

@ -1,162 +0,0 @@
package com.dd.admin.business.pay.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.dd.admin.business.card.entity.Card;
import com.dd.admin.business.card.service.CardService;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.pay.domain.BaseSell;
import com.dd.admin.business.pay.domain.BuildCardForm;
import com.dd.admin.business.pay.domain.BuildCardSell;
import com.dd.admin.business.pay.service.AddSellDetailService;
import com.dd.admin.business.pay.service.PayService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.business.server.domain.ServerVo;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.utils.BigDecimalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.CARDNO_ALREADY_EXIST;
import static com.dd.admin.business.pay.enmus.PayConst.PRODUCT_TYPE_CARD;
import static com.dd.admin.common.consts.MemberShopConst.PUSH_FIXED;
import static com.dd.admin.common.consts.MemberShopConst.PUSH_SCALE;
@Service
public class SellDetailBuildCard implements AddSellDetailService {
@Autowired
private CardService cardService;
@Autowired
private MemberCardService memberCardService;
@Autowired
private SellDetailService sellDetailService;
@Autowired
private SellpayService sellpayService;
@Autowired
private PayService payService;
@Autowired
private SellDetailServerService sellDetailServerService;
@Override
public void addSellDetail(Sell sell, BaseSell sellDto) {
//转换数据
BuildCardSell buildCardSell = (BuildCardSell) sellDto;
// 1 获取开卡金额 等信息 先开卡
String cardId = buildCardSell.getBuildCardForm().getCardId();
//获取需要的开卡信息
Card card = cardService.getById(cardId);
//开卡
MemberCard memberCard = buildMemberCard(sell, buildCardSell.getBuildCardForm(), card);
//2生成销售细单
SellDetail sellDetail = addSellDetail(sell, buildCardSell, memberCard, card);
//添加支付方式
sellpayService.addSellPayList(buildCardSell.getSellPayList(), sell.getSellId());
//4因为是开卡还要设置额外信息
payService.setSellExtraInfo(sell.getSellId(), memberCard, BigDecimal.ZERO, BigDecimal.ZERO);
}
MemberCard buildMemberCard(Sell sell, BuildCardForm buildCardForm, Card card) {
//设置卡的基本和余额信息
MemberCard memberCard = new MemberCard();
memberCard.setMemberId(sell.getMemberId());
memberCard.setCardId(card.getCardId());
memberCard.setCardName(card.getCardName());
String cardNo = buildCardForm.getCardNo();
MemberCardVo membercardVo = memberCardService.selectOneByCardNo(cardNo);
if (membercardVo != null) {
throw new ApiException(CARDNO_ALREADY_EXIST);
}
memberCard.setCardNo(buildCardForm.getCardNo());
memberCard.setAmount(buildCardForm.getCardAmount());
memberCard.setBuildCardAmount(buildCardForm.getCardAmount());
memberCard.setGiveAmount(buildCardForm.getGiveAmount());
//获取订单的卡折扣信息 设置进会员卡中
memberCard.setDiscount(card.getCardDiscount());
//设置该卡的提成金额
memberCard.setPushMoney(card.getCardPushPercent());
memberCardService.save(memberCard);
return memberCard;
}
SellDetail addSellDetail(Sell sell, BuildCardSell buildCardSell, MemberCard membercard, Card card) {
BuildCardForm buildCardForm = buildCardSell.getBuildCardForm();
SellDetail sellDetail = new SellDetail();
//3设置订单id 订单类型 订单状态
sellDetail.setSellId(sell.getSellId());
sellDetail.setSellType(sell.getSellType());
sellDetail.setMemberId(sell.getMemberId());
//设置商品信息
sellDetail.setProductType(PRODUCT_TYPE_CARD);
sellDetail.setCardId(buildCardForm.getCardId());
sellDetail.setCardName(buildCardForm.getCardName());
sellDetail.setAmount(buildCardForm.getCardAmount());
sellDetail.setGiveAmount(buildCardForm.getGiveAmount());
sellDetail.setRealAmount(sell.getRealAmount());
sellDetail.setTotalRealAmount(buildCardForm.getTotalRealAmount());
//设置会员信息
sellDetail.setMemberCardId(membercard.getMemberCardId());
//开卡后卡金和赠送金
sellDetail.setAmount(membercard.getAmount());
sellDetail.setGiveAmount(membercard.getGiveAmount());
//保存销售细单
sellDetailService.save(sellDetail);
//该条目有服务人员
List<ServerVo> serverList = buildCardForm.getServerList();
if (CollectionUtil.isNotEmpty(serverList)) {
//如果是固定金额 固定金额除以人数 获取固定金额
//如果是比例 计算出比例后提成 获取固定金额
//业绩和提成均平均分
//总提成
BigDecimal totalPushMoney = BigDecimal.ZERO;
//总业绩 为订单实付金额
BigDecimal totalGradeMoney = sellDetail.getTotalRealAmount();
//固定金额的话
//按比例
if (card.getCardPushPercent() != null) {
//提成额 先转换为百分数
BigDecimal pushPercent = BigDecimalUtil.div(card.getCardPushPercent(), new BigDecimal("100"));
//折后价*百分数
totalPushMoney = BigDecimalUtil.mul(totalGradeMoney, pushPercent);
}
//平均分
BigDecimal pushMoney = BigDecimalUtil.div(totalPushMoney, new BigDecimal(serverList.size()));
BigDecimal gradeMoney = BigDecimalUtil.div(totalGradeMoney, new BigDecimal(serverList.size()));
//设置服务人员
serverList.stream().forEach(server -> {
SellDetailServer sellDetailServer = new SellDetailServer();
sellDetailServer.setSellId(sell.getSellId());
sellDetailServer.setSellDetailId(sellDetail.getSellDetailId());
sellDetailServer.setServerId(server.getServerId());
sellDetailServer.setServerName(server.getServerName());
sellDetailServer.setServerPushMoney(pushMoney);
sellDetailServer.setServerGrade(gradeMoney);
sellDetailServerService.save(sellDetailServer);
});
}
return sellDetail;
}
}

View File

@ -1,192 +0,0 @@
package com.dd.admin.business.pay.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.dd.admin.business.card.entity.Card;
import com.dd.admin.business.card.service.CardService;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.pay.domain.*;
import com.dd.admin.business.pay.service.AddSellDetailService;
import com.dd.admin.business.pay.service.PayService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.business.server.domain.ServerVo;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.utils.BigDecimalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.CARD_AMOUNT_CHANGE;
import static com.dd.admin.business.pay.enmus.PayConst.PRODUCT_TYPE_CHARGED_CARD;
/**
* MemberCardRenewServiceImpl 实现了 AddSellDetailService 接口用于处理会员卡续卡的业务逻辑
*/
@Service
public class SellDetailChargedCard implements AddSellDetailService {
@Autowired
private MemberCardService memberCardService; // 用于操作会员卡相关业务
@Autowired
private SellDetailService sellDetailService; // 处理销售详情的服务
@Autowired
private PayService payService; // 支付相关的服务
@Autowired
private SellpayService sellpayService; // 销售支付的服务
@Autowired
private SellDetailServerService sellDetailServerService;
@Autowired
private CardService cardService;
/**
* 处理添加销售详情的方法
*
* @param sell 销售实体
* @param baseSell 基础销售数据
*/
@Override
public void addSellDetail(Sell sell, BaseSell baseSell) {
// 将基础销售数据转换为 ChargedCardSell 类型
ChargedCardSell chargedCardSell = (ChargedCardSell) baseSell;
// 通过会员卡服务根据会员卡号获取会员信息
MemberCard memberHistoryCard = memberCardService.getById(chargedCardSell.getMemberCardId());
// 执行会员卡续卡的核心逻辑并获取续卡后的会员信息
MemberCard chargedMemberCard = chargedMemberCard(chargedCardSell, memberHistoryCard);
// 生成销售细单
SellDetail sellDetail = createSellDetail(chargedCardSell, sell, chargedMemberCard);
// 通过销售支付服务添加销售支付列表
sellpayService.addSellPayList(chargedCardSell.getSellPayList(), sell.getSellId());
// 通过支付服务设置销售的额外信息
payService.setSellExtraInfo(sell.getSellId(), chargedMemberCard, BigDecimal.ZERO, BigDecimal.ZERO);
}
/**
* 执行会员卡续卡的核心逻辑
*
* @param chargedCardSell 构建卡销售数据
* @param memberHistoryCard 原会员卡信息
* @return 续卡后的会员卡信息
*/
MemberCard chargedMemberCard(ChargedCardSell chargedCardSell, MemberCard memberHistoryCard) {
// 获取原会员卡卡内金额
BigDecimal memberBeforeAmount = memberHistoryCard.getAmount();
// 获取原会员卡赠送金额
BigDecimal memberBeforeGiveAmount = memberHistoryCard.getGiveAmount();
// 从构建卡销售数据中获取续卡表单
ChargedCardForm chargedCardForm = chargedCardSell.getChargedCardForm();
// 获取续卡充值金额
BigDecimal chargedAmount = chargedCardForm.getChargedCardAmount();
// 获取续卡赠送金额
BigDecimal chargedGiveAmount = chargedCardForm.getChargedGiveAmount();
// 计算并设置续卡后的卡内金额
memberHistoryCard.setAmount(BigDecimalUtil.add(memberBeforeAmount, chargedAmount));
// 计算并设置续卡后的赠送金额
memberHistoryCard.setGiveAmount(BigDecimalUtil.add(memberBeforeGiveAmount, chargedGiveAmount));
// 更新会员卡信息
Boolean updated = memberCardService.updateById(memberHistoryCard);
// 如果更新失败抛出异常
if (!updated) {
throw new ApiException(CARD_AMOUNT_CHANGE);
}
return memberHistoryCard;
}
/**
* 创建销售细单
*
* @param chargedCardSell 构建卡销售数据
* @param sell 销售实体
* @param memberCard 会员卡信息
* @return 生成的销售细单
*/
SellDetail createSellDetail(ChargedCardSell chargedCardSell, Sell sell, MemberCard memberCard) {
// 从构建卡销售数据中获取续卡表单
ChargedCardForm chargedCardForm = chargedCardSell.getChargedCardForm();
// 创建新的销售细单对象
SellDetail sellDetail = new SellDetail();
// 设置销售细单的销售 ID
sellDetail.setSellId(sell.getSellId());
// 设置销售细单的销售类型
sellDetail.setSellType(sell.getSellType());
// 设置销售细单的会员 ID
sellDetail.setMemberId(sell.getMemberId());
// 设置销售细单的产品类型为续卡
sellDetail.setProductType(PRODUCT_TYPE_CHARGED_CARD);
// 设置销售细单的卡 ID
sellDetail.setCardId(chargedCardForm.getCardId());
// 设置销售细单的卡名称
sellDetail.setCardName(chargedCardForm.getCardName());
// 设置销售细单的续卡金额
sellDetail.setAmount(chargedCardForm.getChargedCardAmount());
// 设置销售细单的续卡赠送金额
sellDetail.setGiveAmount(chargedCardForm.getChargedGiveAmount());
// 设置销售细单的实际金额
sellDetail.setRealAmount(chargedCardForm.getChargedCardAmount());
sellDetail.setTotalRealAmount(chargedCardForm.getTotalRealAmount());
// 设置销售细单的会员卡号
sellDetail.setMemberCardId(memberCard.getMemberCardId());
// 保存销售细单
sellDetailService.save(sellDetail);
Card card = cardService.getById(chargedCardForm.getCardId());
//该条目有服务人员
List<ServerVo> serverList = chargedCardForm.getServerList();
if (CollectionUtil.isNotEmpty(serverList)) {
//如果是固定金额 固定金额除以人数 获取固定金额
//如果是比例 计算出比例后提成 获取固定金额
//业绩和提成均平均分
//总提成
BigDecimal totalPushMoney = BigDecimal.ZERO;
//总业绩 为订单实付金额
BigDecimal totalGradeMoney = sellDetail.getTotalRealAmount();
//固定金额的话
//按比例
if (card.getCardPushPercent() != null) {
//提成额 先转换为百分数
BigDecimal pushPercent = BigDecimalUtil.div(card.getCardPushPercent(), new BigDecimal("100"));
//折后价*百分数
totalPushMoney = BigDecimalUtil.mul(totalGradeMoney, pushPercent);
}
//平均分
BigDecimal pushMoney = BigDecimalUtil.div(totalPushMoney, new BigDecimal(serverList.size()));
BigDecimal gradeMoney = BigDecimalUtil.div(totalGradeMoney, new BigDecimal(serverList.size()));
//设置服务人员
serverList.stream().forEach(server -> {
SellDetailServer sellDetailServer = new SellDetailServer();
sellDetailServer.setSellId(sell.getSellId());
sellDetailServer.setSellDetailId(sellDetail.getSellDetailId());
sellDetailServer.setServerId(server.getServerId());
sellDetailServer.setServerName(server.getServerName());
sellDetailServer.setServerPushMoney(pushMoney);
sellDetailServer.setServerGrade(gradeMoney);
sellDetailServerService.save(sellDetailServer);
});
}
return sellDetail;
}
}

View File

@ -1,261 +0,0 @@
package com.dd.admin.business.pay.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.dd.admin.business.card.entity.Card;
import com.dd.admin.business.card.service.CardService;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import com.dd.admin.business.memberCard.domain.MemberCardVo;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.pay.domain.*;
import com.dd.admin.business.pay.service.AddSellDetailService;
import com.dd.admin.business.pay.service.PayService;
import com.dd.admin.business.product.entity.Product;
import com.dd.admin.business.product.service.ProductService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.business.server.domain.ServerVo;
import com.dd.admin.business.stock.entity.Stock;
import com.dd.admin.business.stock.service.StockService;
import com.dd.admin.business.stockDetail.entity.StockDetail;
import com.dd.admin.business.stockDetail.service.StockDetailService;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.security.SecurityUtil;
import com.dd.admin.common.utils.BigDecimalUtil;
import com.dd.admin.common.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.*;
import static com.dd.admin.business.pay.enmus.PayConst.*;
import static com.dd.admin.common.consts.MemberShopConst.*;
@Service
public class SellDetailMemberProduct implements AddSellDetailService {
@Autowired
private MemberCardService memberCardService;
@Autowired
private SellDetailService sellDetailService;
@Autowired
private SellpayService sellpayService;
@Autowired
private PayService payService;
@Autowired
private ProductService productService;
@Autowired
private StockService stockService;
@Autowired
private StockDetailService stockDetailService;
@Autowired
private SellDetailServerService sellDetailServerService;
@Override
public void addSellDetail(Sell sell, BaseSell sellDto) {
MemberProductSell memberProductSell = (MemberProductSell) sellDto;
String memberCardId = memberProductSell.getMemberCardId();
MemberCard memberCard = null;
BigDecimal memberBeforeAmount = null;
BigDecimal memberBeforeGiveAmount = null;
//如果有会员卡
if(StringUtil.isNotEmpty(memberCardId)){
//先获取消费前前金额
MemberCard memberHistoryCard = memberCardService.getById(memberCardId);
memberBeforeAmount = memberHistoryCard.getAmount();
memberBeforeGiveAmount = memberHistoryCard.getGiveAmount();
//扣款
memberCard = deductMemberCard(memberHistoryCard,memberProductSell.getSellPayList());
}
//添加支付方式
sellpayService.addSellPayList(memberProductSell.getSellPayList(),sell.getSellId());
//订单详情
List<SellDetail> selldetailList = new ArrayList<>();
//获取订单详情
List<ProductForm> productDetailFormList = memberProductSell.getProductFormList();
MemberCard finalMemberCard = memberCard;
//设置细单会员余额
BigDecimal finalMemberBeforeAmount = memberBeforeAmount;
BigDecimal finalMemberBeforeGiveAmount = memberBeforeGiveAmount;
productDetailFormList.stream().forEach(productSellDetail -> {
SellDetail selldetail = addSellDetail(productSellDetail,sell, finalMemberCard, finalMemberBeforeAmount, finalMemberBeforeGiveAmount);
selldetailList.add(selldetail);
});
payService.setSellExtraInfo(sell.getSellId(),memberCard,memberBeforeAmount,memberBeforeGiveAmount);
}
//添加详情
SellDetail addSellDetail(ProductForm productDetail , Sell sell, MemberCard memberCard,BigDecimal memberBeforeAmount,BigDecimal memberBeforeGiveAmount ){
SellDetail sellDetail = new SellDetail();
//3设置订单id 订单类型 订单状态
sellDetail.setSellId(sell.getSellId());
sellDetail.setSellType(sell.getSellType());
sellDetail.setSellStatus(sell.getSellStatus());
sellDetail.setMemberId(sell.getMemberId());
//设置商品信息
sellDetail.setProductType(PRODUCT_TYPE_PRODUCT);
sellDetail.setProductId(productDetail.getProductId());
sellDetail.setProductName(productDetail.getProductName());
sellDetail.setAmount(productDetail.getProductAmount());
sellDetail.setDiscount(productDetail.getDiscount());
sellDetail.setCount(productDetail.getCount());
sellDetail.setRealAmount(productDetail.getRealAmount());
sellDetail.setTotalRealAmount(productDetail.getTotalRealAmount());
//设置会员信息
if(memberCard!=null){
sellDetail.setCardId(memberCard.getCardId());
sellDetail.setMemberCardId(memberCard.getMemberCardId());
}
Product product = productService.getById(productDetail.getProductId());
//减去库存信息
if(product.getStockControl().equals(STOCK_CONTROL_YES)) {
//创建入库总单
Stock stock = new Stock();
stock.setStockOutType(STOCK_OUT_TYPE_USE);
stock.setStockTitle(DateUtil.formatChineseDate(new Date(), false, true) + SecurityUtil.getLoginUser().getDeptName() + "出库单");
stock.setStockNo(StringUtil.getDateStringNow() + StringUtil.createCode(4));
stock.setStockType(STOCK_OUT);
stockService.save(stock);
StockDetail stockDetail = new StockDetail();
stockDetail.setStockId(stock.getStockId());
stockDetail.setProductId(product.getProductId());
stockDetail.setProductName(product.getProductName());
stockDetail.setCount(productDetail.getCount());
productService.subProductCount(product.getProductId(), productDetail.getCount());
stockDetailService.save(stockDetail);
}
sellDetailService.save(sellDetail);
//该条目有服务人员
List<ServerVo> serverList = productDetail.getServerList();
if(CollectionUtil.isNotEmpty(serverList)) {
//如果是固定金额 固定金额除以人数 获取固定金额
//如果是比例 计算出比例后提成 获取固定金额
//业绩和提成均平均分
//总提成
BigDecimal totalPushMoney = BigDecimal.ZERO;
//总业绩 为订单实付金额
BigDecimal totalGradeMoney = sellDetail.getTotalRealAmount();
//固定金额的话
if (product.getPushType().equals(PUSH_FIXED)) {
totalPushMoney = BigDecimalUtil.mul(product.getPushAmount(),new BigDecimal(sellDetail.getCount()));
}
//按比例
if (product.getPushType().equals(PUSH_SCALE)) {
//提成额 先转换为百分数
BigDecimal pushPercent = BigDecimalUtil.div(product.getPushPercent(), new BigDecimal("100"));
//折后价*百分数
totalPushMoney = BigDecimalUtil.mul(totalGradeMoney, pushPercent);
}
//平均分
BigDecimal pushMoney = BigDecimalUtil.div(totalPushMoney, new BigDecimal(serverList.size()));
BigDecimal gradeMoney = BigDecimalUtil.div(totalGradeMoney, new BigDecimal(serverList.size()));
//设置服务人员
serverList.stream().forEach(server -> {
SellDetailServer sellDetailServer = new SellDetailServer();
sellDetailServer.setSellId(sell.getSellId());
sellDetailServer.setSellDetailId(sellDetail.getSellDetailId());
sellDetailServer.setServerId(server.getServerId());
sellDetailServer.setServerName(server.getServerName());
sellDetailServer.setServerPushMoney(pushMoney);
sellDetailServer.setServerGrade(gradeMoney);
sellDetailServerService.save(sellDetailServer);
});
}
return sellDetail;
}
//减去卡金
MemberCard deductMemberCard(MemberCard memberHistoryCard, List<Sellpay> sellPayList){
//消费前会员卡余额
BigDecimal memberBeforeAmount = memberHistoryCard.getAmount();
BigDecimal memberBeforeGiveAmount = memberHistoryCard.getGiveAmount();
BigDecimal memberBeforeTotalAmount = BigDecimalUtil.add(memberBeforeAmount,memberBeforeGiveAmount);
//订单需要支付的卡金
BigDecimal memberCardCost = sellPayList.stream()
.filter(p -> p.getPayType().equals(PAY_TYPE_CARD))
.map(Sellpay::getAmount)
.findFirst().orElse(BigDecimal.ZERO);
//订单需要支付的金额 先扣卡金 退款仅退卡金
//如果卡金足够支付
try {
if(memberBeforeAmount.compareTo(memberCardCost) > -1){
BigDecimal memberAfterAmount = BigDecimalUtil.sub(memberBeforeAmount, memberCardCost);
memberHistoryCard.setAmount(memberAfterAmount);
//卡总金额是否够支付
}else if(memberBeforeTotalAmount.compareTo(memberCardCost) > -1){
//这里已经出现了卡金不够支付的情况了 所以置为0 减去的金额是赠送金需要支付的
BigDecimal memberCardGiveCost = BigDecimalUtil.sub(memberCardCost, memberBeforeAmount);
sellPayList.stream().forEach(sellpay -> {
if(sellpay.getPayType().equals(PAY_TYPE_CARD)){
sellpay.setAmount(memberBeforeAmount);
}
});
memberHistoryCard.setAmount(BigDecimal.ZERO);
if(memberBeforeGiveAmount.compareTo(memberCardGiveCost) > -1){
Sellpay sellpay = new Sellpay();
sellpay.setPayType(PAY_TYPE_CARD_GIVE);
sellpay.setAmount(memberCardGiveCost);
sellpay.setPayName(PAY_TYPE_CARD_GIVE_NAME);
sellPayList.add(sellpay);
BigDecimal memAfterGiveAmount = BigDecimalUtil.sub(memberBeforeGiveAmount, memberCardGiveCost);
memberHistoryCard.setGiveAmount(memAfterGiveAmount);
}
}else{
throw new ApiException(MEMBER_CARD_NOT_SUFFICIENT_FUNDS);
}
Boolean b = memberCardService.updateById(memberHistoryCard);
//监听数据 乐观锁改变
if(!b){
throw new ApiException(CARD_AMOUNT_CHANGE);
}
}catch (ArithmeticException e) {
// 处理数值计算异常并提供更详细的错误信息
throw new RuntimeException("数值计算出现异常:" + e.getMessage(), e);
}
return memberHistoryCard;
}
}

View File

@ -1,107 +0,0 @@
package com.dd.admin.business.product.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.business.file.service.FileService;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.product.entity.Product;
import com.dd.admin.business.product.domain.ProductVo;
import com.dd.admin.business.product.domain.ProductDto;
import com.dd.admin.business.product.service.ProductService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 商品 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Api(tags = "商品")
@RestController
public class ProductController {
@Autowired
ProductService productService;
@Autowired
FileService fileService;
@ApiOperation(value = "商品-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/product/page")
@OperLog(operModule = "获取商品列表",operType = OperType.QUERY,operDesc = "获取商品列表")
public ResultBean<IPage<ProductVo>> page(ProductDto productDto) {
productDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<ProductVo> pageInfo = productService.selectProductPage(productDto);
pageInfo.getRecords().stream().forEach(productVo -> {
String fileAuthUrl = fileService.getFileAuthUrl(productVo.getProductImage());
productVo.setProductImageUrl(fileAuthUrl);
});
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "商品-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/product/list")
public ResultBean<List<ProductVo>> list(ProductDto productDto) {
productDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<ProductVo> list = productService.selectProductList(productDto);
list.stream().forEach(productVo -> {
String fileAuthUrl = fileService.getFileAuthUrl(productVo.getProductImage());
productVo.setProductImageUrl(fileAuthUrl);
});
return ResultBean.success(list);
}
@ApiOperation(value = "商品-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/product/add")
@OperLog(operModule = "商品-添加",operType = OperType.ADD,operDesc = "商品-添加")
public ResultBean<Product> add(@RequestBody @Validated ProductDto productDto) {
Product product = BeanUtil.copyProperties(productDto, Product.class);
productService.save(product);
return ResultBean.success(product);
}
@ApiOperation(value = "商品-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/product/{productId}")
public ResultBean<ProductVo> get(@PathVariable @NotBlank String productId) {
Product product = productService.getById(productId);
ProductVo productVo = BeanUtil.copyProperties(product,ProductVo.class);
return ResultBean.success(productVo);
}
@ApiOperation(value = "商品-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/product/update")
public ResultBean<Product> update(@RequestBody @Validated(UpdateGroup.class) ProductDto productDto) {
Product product = BeanUtil.copyProperties(productDto, Product.class);
productService.updateById(product);
return ResultBean.success(product);
}
@ApiOperation(value = "商品-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/product/delete/{productId}")
public ResultBean<Product> delete(@PathVariable @NotBlank String productId) {
Boolean b = productService.removeById(productId);
return ResultBean.success(b);
}
}

View File

@ -1,114 +0,0 @@
package com.dd.admin.business.product.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 商品返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Data
@ApiModel(value="商品接收对象")
public class ProductDto {
@ApiModelProperty(value = "商品id")
@NotBlank(message = "商品id不能为空",groups = UpdateGroup.class)
private String productId;
@ApiModelProperty(value = "分类id")
@NotBlank(message = "分类不能为空")
private String categoryId;
@ApiModelProperty(value = "分类名")
@NotBlank(message = "分类不能为空")
private String categoryName;
@ApiModelProperty(value = "商品名")
@NotBlank(message = "商品名不能为空")
private String productName;
@ApiModelProperty(value = "商品金额")
private BigDecimal productAmount;
@ApiModelProperty(value = "商品会员金额")
private BigDecimal productMemberAmount;
@ApiModelProperty(value = "商品图片")
private String productImage;
@ApiModelProperty(value = "库存数量")
private Long productCount;
@ApiModelProperty(value = "提成金额")
private BigDecimal pushAmount;
@ApiModelProperty(value = "提成比例")
private BigDecimal pushPercent;
@ApiModelProperty(value = "0正常 1下架")
private Integer productStatus;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "0不开启 1开启")
@NotNull(message = "库存管理不能为空")
private Integer stockControl;
@ApiModelProperty(value = "0固定金额 1比例")
@NotNull(message = "提成规则不能为空")
private Integer pushType;
@ApiModelProperty(value = "搜索关键字")
private String keyword;
}

View File

@ -1,105 +0,0 @@
package com.dd.admin.business.product.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* <p>
* 商品返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Data
@ApiModel(value="商品返回对象")
public class ProductVo {
@ApiModelProperty(value = "商品id")
private String productId;
@ApiModelProperty(value = "分类id")
private String categoryId;
@ApiModelProperty(value = "分类名")
private String categoryName;
@ApiModelProperty(value = "商品名")
private String productName;
@ApiModelProperty(value = "商品金额")
private BigDecimal productAmount;
@ApiModelProperty(value = "商品会员金额")
private BigDecimal productMemberAmount;
@ApiModelProperty(value = "商品图片")
private String productImage;
@ApiModelProperty(value = "商品图片")
private String productImageUrl;
@ApiModelProperty(value = "库存数量")
private Long productCount;
@ApiModelProperty(value = "提成金额")
private BigDecimal pushAmount;
@ApiModelProperty(value = "提成比例")
private BigDecimal pushPercent;
@ApiModelProperty(value = "0正常 1下架")
private Integer productStatus;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "0不开启 1开启")
private Integer stockControl;
@ApiModelProperty(value = "0固定金额 1比例")
private Integer pushType;
}

View File

@ -1,132 +0,0 @@
package com.dd.admin.business.product.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 商品
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_product")
@ApiModel(value="Product对象", description="商品")
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "商品id")
@TableId(value = "PRODUCT_ID", type = IdType.ASSIGN_UUID)
private String productId;
@ApiModelProperty(value = "分类id")
@TableField("CATEGORY_ID")
private String categoryId;
@ApiModelProperty(value = "分类名")
@TableField("CATEGORY_NAME")
private String categoryName;
@ApiModelProperty(value = "商品名")
@TableField("PRODUCT_NAME")
private String productName;
@ApiModelProperty(value = "商品金额")
@TableField("PRODUCT_AMOUNT")
private BigDecimal productAmount;
@ApiModelProperty(value = "商品会员金额")
@TableField("PRODUCT_MEMBER_AMOUNT")
private BigDecimal productMemberAmount;
@ApiModelProperty(value = "商品图片")
@TableField("PRODUCT_IMAGE")
private String productImage;
@ApiModelProperty(value = "库存数量")
@TableField("PRODUCT_COUNT")
private Long productCount;
@ApiModelProperty(value = "库存数量")
@TableField(exist = false)
private Long count;
@ApiModelProperty(value = "提成金额")
@TableField("PUSH_AMOUNT")
private BigDecimal pushAmount;
@ApiModelProperty(value = "提成比例")
@TableField("PUSH_PERCENT")
private BigDecimal pushPercent;
@ApiModelProperty(value = "0正常 1下架")
@TableField("PRODUCT_STATUS")
private Integer productStatus;
@ApiModelProperty(value = "乐观锁字段")
@TableField("VERSION")
@Version
private Long version;
@ApiModelProperty(value = "0正常 1删除")
@TableField("DELETED")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
@ApiModelProperty(value = "0不开启 1开启")
@TableField("STOCK_CONTROL")
private Integer stockControl;
@ApiModelProperty(value = "0固定金额 1比例")
@TableField("PUSH_TYPE")
private Integer pushType;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.product.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.product.entity.Product;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.product.domain.ProductVo;
import com.dd.admin.business.product.domain.ProductDto;
import java.util.List;
/**
* <p>
* 商品 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Mapper
public interface ProductMapper extends BaseMapper<Product> {
IPage<ProductVo> selectProductPage(Page<ProductVo> page, @Param("productDto") ProductDto productDto);
List<ProductVo> selectProductList(@Param("productDto") ProductDto productDto);
}

View File

@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.product.mapper.ProductMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.product.entity.Product">
<id column="PRODUCT_ID" property="productId" />
<result column="CATEGORY_ID" property="categoryId" />
<result column="CATEGORY_NAME" property="categoryName" />
<result column="PRODUCT_NAME" property="productName" />
<result column="PRODUCT_AMOUNT" property="productAmount" />
<result column="PRODUCT_MEMBER_AMOUNT" property="productMemberAmount" />
<result column="PRODUCT_IMAGE" property="productImage" />
<result column="PRODUCT_COUNT" property="productCount" />
<result column="PUSH_AMOUNT" property="pushAmount" />
<result column="PUSH_PERCENT" property="pushPercent" />
<result column="PRODUCT_STATUS" property="productStatus" />
<result column="VERSION" property="version" />
<result column="DELETED" property="deleted" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
PRODUCT_ID, CATEGORY_ID, CATEGORY_NAME, PRODUCT_NAME, PRODUCT_AMOUNT, PRODUCT_MEMBER_AMOUNT, PRODUCT_IMAGE, PRODUCT_COUNT, PUSH_AMOUNT, PUSH_PERCENT, PRODUCT_STATUS, VERSION, DELETED, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID
</sql>
<select id="selectProductPage" resultType="com.dd.admin.business.product.domain.ProductVo">
select
*
from business_product where 1 = 1
<if test="productDto.keyword != null and productDto.keyword != ''">
and PRODUCT_NAME like CONCAT('%', #{productDto.keyword}, '%')
</if>
<if test="productDto.categoryId != null and productDto.categoryId != ''">
and CATEGORY_ID = #{productDto.categoryId}
</if>
<if test="productDto.deleted != null">
and DELETED = #{productDto.deleted}
</if>
<if test="productDto.stockControl != null">
and STOCK_CONTROL = #{productDto.stockControl}
</if>
<if test="productDto.productStatus != null">
and PRODUCT_STATUS = #{productDto.productStatus}
</if>
<if test="productDto.shopId != null and productDto.shopId != ''">
and shop_id = #{productDto.shopId}
</if>
order by create_time desc
</select>
<select id="selectProductList" resultType="com.dd.admin.business.product.domain.ProductVo">
select
*
from business_product where 1 = 1
<if test="productDto.categoryId != null and productDto.categoryId != ''">
and category_id = #{productDto.categoryId}
</if>
<if test="productDto.deleted != null">
and DELETED = #{productDto.deleted}
</if>
<if test="productDto.stockControl != null">
and STOCK_CONTROL = #{productDto.stockControl}
</if>
<if test="productDto.shopId != null and productDto.shopId != ''">
and shop_id = #{productDto.shopId}
</if>
<if test="productDto.productStatus != null">
and PRODUCT_STATUS = #{productDto.productStatus}
</if>
order by create_time desc
</select>
</mapper>

View File

@ -1,34 +0,0 @@
package com.dd.admin.business.product.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.product.entity.Product;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.product.domain.ProductVo;
import com.dd.admin.business.product.domain.ProductDto;
import java.util.List;
/**
* <p>
* 商品 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
public interface ProductService extends IService<Product> {
//商品-分页列表
IPage<ProductVo> selectProductPage(ProductDto productDto);
//商品-列表
List<ProductVo> selectProductList(ProductDto productDto);
Product addProductCount(String productId,Long count);
Product subProductCount(String productId,Long count);
//根据机构shopId查询商品库存数量排行可指定返回数量
List<Product> getProductStockRankByShopId(String shopId, Integer limit);
Integer selectProductCount(String shopId);
}

View File

@ -1,89 +0,0 @@
package com.dd.admin.business.product.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.product.entity.Product;
import com.dd.admin.business.product.mapper.ProductMapper;
import com.dd.admin.business.product.service.ProductService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.product.domain.ProductVo;
import com.dd.admin.business.product.domain.ProductDto;
import java.util.List;
/**
* <p>
* 商品 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-05-23
*/
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
@Override
public IPage<ProductVo> selectProductPage(ProductDto productDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectProductPage(page,productDto);
}
@Override
public List<ProductVo> selectProductList(ProductDto productDto) {
return baseMapper.selectProductList(productDto);
}
@Override
public Product addProductCount(String productId, Long count) {
Product product = this.getById(productId);
product.setProductCount(product.getProductCount() + count);
updateById(product);
return product;
}
@Override
public Product subProductCount(String productId, Long count) {
Product product = this.getById(productId);
product.setProductCount(product.getProductCount() - count);
if(product.getProductCount() < 0){
throw new ApiException("商品库存不足");
}
updateById(product);
return product;
}
/**
* 根据机构shopId查询商品库存数量排行可指定返回数量
*
* @param shopId 机构id
* @param limit 返回的排行数量限制例如取前几名如果为null则查询全部符合条件的商品排行
* @return 按库存数量排序后的商品列表库存数量从大到小排序
*/
@Override
public List<Product> getProductStockRankByShopId(String shopId, Integer limit) {
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
// 根据shopId添加筛选条件只查询指定机构下的商品
queryWrapper.eq(Product::getShopId, shopId);
// 按照库存数量字段PRODUCT_COUNT进行降序排序从大到小
queryWrapper.orderByDesc(Product::getProductCount);
if (limit!= null) {
// 如果传入了数量限制则添加限制条件只取前limit条记录
queryWrapper.last("LIMIT " + limit);
}
return baseMapper.selectList(queryWrapper);
}
@Override
public Integer selectProductCount(String shopId) {
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Product::getShopId, shopId);
return baseMapper.selectCount(queryWrapper);
}
}

View File

@ -1,132 +0,0 @@
package com.dd.admin.business.sell.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dd.admin.business.sell.domain.CancelSellDto;
import com.dd.admin.business.sell.enums.CancelSellServiceEnum;
import com.dd.admin.business.sell.service.CancelSellService;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.common.aop.operationLog.aop.OperLog;
import com.dd.admin.common.aop.operationLog.aop.OperType;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.security.SecurityUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.domain.SellVo;
import com.dd.admin.business.sell.domain.SellDto;
import com.dd.admin.business.sell.service.SellService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RestController;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.PAY_SELL_CANCEL_ERROR;
import static com.dd.admin.business.pay.enmus.PayConst.SELL_STATUS_REVOCATION;
import static com.dd.admin.common.consts.MemberShopConst.SELL_STATUS_CANCEL;
/**
* <p>
* 订单 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Api(tags = "订单")
@RestController
public class SellController {
@Autowired
SellService sellService;
@Autowired
Map<String, CancelSellService> cancelSellServiceMap;
@Autowired
SellDetailService sellDetailService;
@ApiOperation(value = "订单-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/sell/page")
@OperLog(operModule = "获取订单列表",operType = OperType.QUERY,operDesc = "获取订单列表")
public ResultBean<IPage<SellVo>> page(SellDto sellDto) {
sellDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<SellVo> pageInfo = sellService.selectSellPage(sellDto);
sellService.setSellDetail(pageInfo.getRecords());
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "订单-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/sell/list")
public ResultBean<List<SellVo>> list(SellDto sellDto) {
sellDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<SellVo> list = sellService.selectSellList(sellDto);
return ResultBean.success(list);
}
@ApiOperation(value = "订单-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/sell/add")
public ResultBean<Sell> add(@RequestBody @Validated SellDto sellDto) {
Sell sell = BeanUtil.copyProperties(sellDto, Sell.class);
sellService.save(sell);
return ResultBean.success(sell);
}
@ApiOperation(value = "订单-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/sell/{sellId}")
public ResultBean<SellVo> get(@PathVariable @NotBlank String sellId) {
Sell sell = sellService.getById(sellId);
SellVo sellVo = BeanUtil.copyProperties(sell,SellVo.class);
return ResultBean.success(sellVo);
}
@ApiOperation(value = "订单-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/sell/update")
public ResultBean<Sell> update(@RequestBody @Validated(UpdateGroup.class) SellDto sellDto) {
Sell sell = BeanUtil.copyProperties(sellDto, Sell.class);
sellService.updateById(sell);
return ResultBean.success(sell);
}
@ApiOperation(value = "订单-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/sell/delete/{sellId}")
public ResultBean<Sell> delete(@PathVariable @NotBlank String sellId) {
Boolean b = sellService.removeById(sellId);
return ResultBean.success(b);
}
@ApiOperation(value = "订单-销单")
@ApiOperationSupport(order = 6)
@PostMapping("/admin/sell/cancel")
@Transactional
public ResultBean<Sell> cancel(@RequestBody @Validated CancelSellDto cancelSellDto) {
Sell sell = sellService.getById(cancelSellDto.getSellId());
if(sell.getSellStatus().equals(SELL_STATUS_CANCEL)){
throw new ApiException(PAY_SELL_CANCEL_ERROR);
}
//销单
cancelSellServiceMap.get(CancelSellServiceEnum.getEnumBySellType(sell.getSellType()).getServiceName()).cancel(sell);
sell.setSellStatus(SELL_STATUS_REVOCATION);
sell.setRemark(cancelSellDto.getRemark());
sellService.updateById(sell);
sellDetailService.updateSellDetailStatus(sell.getSellId());
return ResultBean.success();
}
}

View File

@ -1,17 +0,0 @@
package com.dd.admin.business.sell.domain;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value="销售表接收对象")
public class CancelSellDto {
@NotBlank(message = "订单id不能为空")
private String sellId;
@NotBlank(message = "撤销原因不能为空")
private String remark;
}

View File

@ -1,117 +0,0 @@
package com.dd.admin.business.sell.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 订单返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单接收对象")
public class SellDto {
@ApiModelProperty(value = "订单id")
@NotBlank(message = "订单id不能为空",groups = UpdateGroup.class)
private String sellId;
@ApiModelProperty(value = "订单号")
private String sellNo;
@ApiModelProperty(value = "流水号")
private String serialNo;
@ApiModelProperty(value = "会员ID")
private String memberId;
@ApiModelProperty(value = "会员卡ID")
private String memberCardId;
@ApiModelProperty(value = "会员卡名")
private String memberCardName;
@ApiModelProperty(value = "会员卡编号")
private String memberCardNo;
@ApiModelProperty(value = "会员名称")
private String memberName;
@ApiModelProperty(value = "消费金额")
private BigDecimal sellAmount;
@ApiModelProperty(value = "实际入账")
private BigDecimal realAmount;
@ApiModelProperty(value = "1商品 2开卡 ")
@TableField("SELL_TYPE")
private Integer sellType;
@ApiModelProperty(value = "0正常 1取消")
private Integer sellStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "消费后金额")
private BigDecimal memberCardAfterAmount;
private BigDecimal memberCardBeforeAmount;
@ApiModelProperty(value = "消费后金额")
private BigDecimal memberCardAfterGiveAmount;
private BigDecimal memberCardBeforeGiveAmount;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "搜索关键字")
private String keyword;
}

View File

@ -1,122 +0,0 @@
package com.dd.admin.business.sell.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.List;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellPay.domain.SellpayVo;
import com.dd.admin.business.sellPay.entity.Sellpay;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单返回对象")
public class SellVo {
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "订单号")
private String sellNo;
@ApiModelProperty(value = "流水号")
private String serialNo;
@ApiModelProperty(value = "会员ID")
private String memberId;
@ApiModelProperty(value = "会员卡ID")
private String memberCardId;
@ApiModelProperty(value = "会员卡名")
private String memberCardName;
@ApiModelProperty(value = "会员卡编号")
private String memberCardNo;
@ApiModelProperty(value = "会员名称")
private String memberName;
@ApiModelProperty(value = "消费金额")
private BigDecimal sellAmount;
@ApiModelProperty(value = "实际入账")
private BigDecimal realAmount;
@ApiModelProperty(value = "1商品 2开卡 ")
@TableField("SELL_TYPE")
private Integer sellType;
@ApiModelProperty(value = "0正常 1取消")
private Integer sellStatus;
@ApiModelProperty(value = "0正常 1删除")
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
private Long version;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "消费后金额")
private BigDecimal memberCardAfterAmount;
private BigDecimal memberCardBeforeAmount;
@ApiModelProperty(value = "消费后金额")
private BigDecimal memberCardAfterGiveAmount;
private BigDecimal memberCardBeforeGiveAmount;
@ApiModelProperty("订单详情")
private List<SellDetail> sellDetailList;
@ApiModelProperty("支付方式")
private List<Sellpay> sellPayList;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -1,140 +0,0 @@
package com.dd.admin.business.sell.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_sell")
@ApiModel(value="Sell对象", description="订单")
public class Sell implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单id")
@TableId(value = "SELL_ID", type = IdType.ASSIGN_UUID)
private String sellId;
@ApiModelProperty(value = "订单号")
@TableField("SELL_NO")
private String sellNo;
@ApiModelProperty(value = "流水号")
@TableField("SERIAL_NO")
private String serialNo;
@ApiModelProperty(value = "会员ID")
@TableField("MEMBER_ID")
private String memberId;
@ApiModelProperty(value = "会员卡ID")
@TableField("MEMBER_CARD_ID")
private String memberCardId;
@ApiModelProperty(value = "会员卡名")
@TableField("MEMBER_CARD_NAME")
private String memberCardName;
@ApiModelProperty(value = "会员卡编号")
@TableField("MEMBER_CARD_NO")
private String memberCardNo;
@ApiModelProperty(value = "会员名称")
@TableField("MEMBER_NAME")
private String memberName;
@ApiModelProperty(value = "消费金额")
@TableField("SELL_AMOUNT")
private BigDecimal sellAmount;
@ApiModelProperty(value = "实际入账")
@TableField("REAL_AMOUNT")
private BigDecimal realAmount;
@ApiModelProperty(value = "1商品 2开卡 ")
@TableField("SELL_TYPE")
private Integer sellType;
@ApiModelProperty(value = "0正常 1取消")
@TableField("SELL_STATUS")
private Integer sellStatus;
@ApiModelProperty(value = "0正常 1删除")
@TableField("DELETED")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "乐观锁字段")
@TableField("VERSION")
@Version
private Long version;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
@ApiModelProperty(value = "消费后金额")
@TableField("MEMBER_CARD_AFTER_AMOUNT")
private BigDecimal memberCardAfterAmount;
@TableField("MEMBER_CARD_BEFORE_AMOUNT")
private BigDecimal memberCardBeforeAmount;
@ApiModelProperty(value = "消费后金额")
@TableField("MEMBER_CARD_AFTER_GIVE_AMOUNT")
private BigDecimal memberCardAfterGiveAmount;
@TableField("MEMBER_CARD_BEFORE_GIVE_AMOUNT")
private BigDecimal memberCardBeforeGiveAmount;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -1,48 +0,0 @@
package com.dd.admin.business.sell.enums;
import com.dd.admin.common.exception.ApiException;
import java.util.Arrays;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.PAY_SELL_CANCEL_ERROR;
import static com.dd.admin.business.pay.enmus.PayConst.*;
public enum CancelSellServiceEnum {
CANCEL_MEMBER_BUILD_CARD(SELL_TYPE_BUILD_CARD,"cancelMemberBuildCard"),
CANCEL_MEMBER_CHARGED_CARD(SELL_TYPE_CHARGED_CARD,"cancelMemberChargedCard"),
CANCEL_MEMBER_PRODUCT(SELL_TYPE_PRODUCT,"cancelMemberProduct"),
;
private Integer sellType;
private String serviceName;
CancelSellServiceEnum(Integer sellType, String serviceName) {
this.sellType = sellType;
this.serviceName = serviceName;
}
public Integer getSellType() {
return sellType;
}
public void setSellType(Integer sellType) {
this.sellType = sellType;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public static CancelSellServiceEnum getEnumBySellType(Integer sellType) {
CancelSellServiceEnum[] cancelSellServiceEnums = CancelSellServiceEnum.values();
return Arrays.stream(cancelSellServiceEnums)
.filter(cancelSellServiceEnum -> cancelSellServiceEnum.getSellType().equals(sellType))
.findFirst().orElseThrow(() -> new ApiException(PAY_SELL_CANCEL_ERROR));
}
}

View File

@ -1,30 +0,0 @@
package com.dd.admin.business.sell.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.sell.entity.Sell;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.sell.domain.SellVo;
import com.dd.admin.business.sell.domain.SellDto;
import java.util.List;
/**
* <p>
* 订单 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Mapper
public interface SellMapper extends BaseMapper<Sell> {
IPage<SellVo> selectSellPage(Page<SellVo> page, @Param("sellDto") SellDto sellDto);
List<SellVo> selectSellList(@Param("sellDto") SellDto sellDto);
Integer selectTodayCount(@Param("shopId") String shopId);
}

View File

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.sell.mapper.SellMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.sell.entity.Sell">
<id column="SELL_ID" property="sellId" />
<result column="SELL_NO" property="sellNo" />
<result column="SERIAL_NO" property="serialNo" />
<result column="MEMBER_ID" property="memberId" />
<result column="MEMBER_NAME" property="memberName" />
<result column="SELL_AMOUNT" property="sellAmount" />
<result column="REAL_AMOUNT" property="realAmount" />
<result column="SELL_TYPE" property="sellType" />
<result column="SELL_STATUS" property="sellStatus" />
<result column="DELETED" property="deleted" />
<result column="VERSION" property="version" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
<result column="MEMBER_CARD_AFTER_AMOUNT" property="memberCardAfterAmount" />
<result column="MEMBER_CARD_BEFORE_AMOUNT" property="memberCardBeforeAmount" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
SELL_ID, SELL_NO, SERIAL_NO, MEMBER_ID, MEMBER_CARD_ID,MEMBER_NAME, SELL_AMOUNT, REAL_AMOUNT, SELL_TYPE, SELL_STATUS, DELETED, VERSION, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID, MEMBER_CARD_AFTER_AMOUNT, MEMBER_CARD_BEFORE_AMOUNT,MEMBER_CARD_AFTER_GIVE_AMOUNT, MEMBER_CARD_BEFORE_GIVE_AMOUNT
</sql>
<select id="selectSellPage" resultType="com.dd.admin.business.sell.domain.SellVo">
select
*
from business_sell where 1 = 1
<if test="sellDto.shopId != null and sellDto.shopId != ''">
and shop_id = #{sellDto.shopId}
</if>
<if test="sellDto.keyword != null and sellDto.keyword != ''">
and (SELL_NO like CONCAT('%', #{sellDto.keyword}, '%')
or MEMBER_NAME like concat('%',#{sellDto.keyword},'%'))
</if>
order by create_time desc
</select>
<select id="selectSellList" resultType="com.dd.admin.business.sell.domain.SellVo">
select
*
from business_sell where 1 = 1
<if test="sellDto.shopId != null and sellDto.shopId != ''">
and shop_id = #{sellDto.shopId}
</if>
order by create_time desc
</select>
<select id="selectTodayCount" resultType="java.lang.Integer">
select count(*) from business_sell where shop_id = #{shopId} and DATE(create_time) = CURDATE()
</select>
</mapper>

View File

@ -1,9 +0,0 @@
package com.dd.admin.business.sell.service;
import com.dd.admin.business.sell.entity.Sell;
public interface CancelSellService {
void cancel(Sell sell);
}

View File

@ -1,32 +0,0 @@
package com.dd.admin.business.sell.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.sell.entity.Sell;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.sell.domain.SellVo;
import com.dd.admin.business.sell.domain.SellDto;
import java.util.List;
/**
* <p>
* 订单 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
public interface SellService extends IService<Sell> {
//订单-分页列表
IPage<SellVo> selectSellPage(SellDto sellDto);
//订单-列表
List<SellVo> selectSellList(SellDto sellDto);
Integer selectTodayCount(String shopId);
//填充销售详情
public void setSellDetail(List<SellVo> sellVoList);
Integer selectSellCount(String shopId);
}

View File

@ -1,48 +0,0 @@
package com.dd.admin.business.sell.service.impl;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.CancelSellService;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.common.exception.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.PAY_SELL_CARD_AMOUNT_CHANGE;
@Service
@Slf4j
public class CancelMemberBuildCard implements CancelSellService {
@Autowired
MemberCardService memberCardService;
@Autowired
SellDetailService sellDetailService;
@Autowired
SellService sellService;
@Override
public void cancel(Sell sell) {
Sell extraSellInfo = sellService.getById(sell.getSellId());
//消费时用的哪张会员卡
MemberCard membercard = memberCardService.getById(extraSellInfo.getMemberCardId());
BigDecimal sellCardAmount = extraSellInfo.getMemberCardAfterAmount();
BigDecimal sellCardGiveAmount = extraSellInfo.getMemberCardAfterGiveAmount();
log.info("订单显示的卡余额:"+sellCardAmount);
BigDecimal cardAmount = membercard.getAmount();
BigDecimal cardGiveAmount = membercard.getGiveAmount();
log.info("当前卡余额:"+cardAmount);
//当前余额和订单充值余额比较
if(sellCardAmount.compareTo(cardAmount) != 0 || cardGiveAmount.compareTo(sellCardGiveAmount) != 0){
throw new ApiException(PAY_SELL_CARD_AMOUNT_CHANGE);
}
//删除卡
memberCardService.removeById(membercard);
}
}

View File

@ -1,65 +0,0 @@
package com.dd.admin.business.sell.service.impl;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.CancelSellService;
import com.dd.admin.business.sell.service.SellService;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.utils.BigDecimalUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.CARD_AMOUNT_CHANGE;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.PAY_SELL_CARD_AMOUNT_NOT_SUFFICIENT_FUNDS;
@Service
@Slf4j
public class CancelMemberChargedCard implements CancelSellService {
@Autowired
MemberCardService memberCardService;
@Autowired
SellDetailService sellDetailService;
@Autowired
SellService sellService;
@Override
public void cancel(Sell sell) {
Sell extraSellInfo = sellService.getById(sell.getSellId());
//消费时用的哪张会员卡
MemberCard memberCard = memberCardService.getById(extraSellInfo.getMemberCardId());
List<SellDetail> sellDetailList = sellDetailService.selectSellDetailList(sell.getSellId());
SellDetail sellDetail = sellDetailList.get(0);
BigDecimal sellCardAmount = sellDetail.getAmount();
BigDecimal sellCardGiveAmount = sellDetail.getGiveAmount();
BigDecimal cardAmount = memberCard.getAmount();
log.info("当前卡余额:"+cardAmount);
BigDecimal cardGiveAmount = memberCard.getGiveAmount();
log.info("当前卡余额:"+cardAmount);
//消费后余额
BigDecimal nowCardAmount = BigDecimalUtil.sub(cardAmount,sellCardAmount);
BigDecimal nowGiveAmount = BigDecimalUtil.sub(cardGiveAmount,sellCardGiveAmount);
if (nowCardAmount.signum() == -1|nowGiveAmount.signum() == -1) {
throw new ApiException(PAY_SELL_CARD_AMOUNT_NOT_SUFFICIENT_FUNDS);
}
//修改当前卡金赠送金
memberCard.setAmount(nowCardAmount);
memberCard.setGiveAmount(nowGiveAmount);
Boolean b = memberCardService.updateById(memberCard);
if(!b){
throw new ApiException(CARD_AMOUNT_CHANGE);
}
}
}

View File

@ -1,131 +0,0 @@
package com.dd.admin.business.sell.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.dd.admin.business.memberCard.entity.MemberCard;
import com.dd.admin.business.memberCard.service.MemberCardService;
import com.dd.admin.business.product.entity.Product;
import com.dd.admin.business.product.service.ProductService;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.service.CancelSellService;
import com.dd.admin.business.sellDetail.domain.SellDetailDto;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.business.sellPay.domain.SellpayVo;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.business.stock.entity.Stock;
import com.dd.admin.business.stock.service.StockService;
import com.dd.admin.business.stockDetail.domain.StockDetailDto;
import com.dd.admin.business.stockDetail.entity.StockDetail;
import com.dd.admin.business.stockDetail.service.StockDetailService;
import com.dd.admin.common.exception.ApiException;
import com.dd.admin.common.security.SecurityUtil;
import com.dd.admin.common.utils.BigDecimalUtil;
import com.dd.admin.common.utils.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import static com.dd.admin.business.pay.enmus.CashierExceptionEnum.CARD_AMOUNT_CHANGE;
import static com.dd.admin.business.pay.enmus.PayConst.PAY_TYPE_CARD;
import static com.dd.admin.business.pay.enmus.PayConst.PAY_TYPE_CARD_GIVE;
import static com.dd.admin.common.consts.MemberShopConst.*;
@Service
@Slf4j
public class CancelMemberProduct implements CancelSellService {
@Autowired
MemberCardService memberCardService;
@Autowired
SellDetailService sellDetailService;
@Autowired
ProductService productService;
@Autowired
StockService stockService;
@Autowired
StockDetailService stockDetailService;
@Autowired
SellpayService sellpayService;
@Override
public void cancel(Sell sell) {
List<SellDetail> sellDetailList = sellDetailService.selectSellDetailList(sell.getSellId());
//增加库存
addInventory(sellDetailList);
MemberCard memberCard = memberCardService.getById(sell.getMemberCardId());
if(memberCard!=null){
BigDecimal cardAmount = memberCard.getAmount();
log.info("当前卡余额:"+cardAmount);
BigDecimal cardGiveAmount = memberCard.getGiveAmount();
log.info("当前卡赠送金余额:"+cardAmount);
List<Sellpay> sellPayVoList = sellpayService.selectSellPayList(sell.getSellId());
//计算订单卡金支付的金额
Sellpay memberCardPay = sellPayVoList.stream().filter(p->
p.getPayType().equals(PAY_TYPE_CARD)
).findFirst().orElse(null);
Sellpay memberGivePay= sellPayVoList.stream().filter(p->
p.getPayType().equals(PAY_TYPE_CARD_GIVE)
).findFirst().orElse(null);
if(memberCardPay!=null){
memberCard.setAmount(BigDecimalUtil.add(cardAmount,memberCardPay.getAmount()));
}
if(memberGivePay!=null){
memberCard.setGiveAmount(BigDecimalUtil.add(cardGiveAmount,memberGivePay.getAmount()));
}
Boolean b = memberCardService.updateById(memberCard);
if(!b){
throw new ApiException(CARD_AMOUNT_CHANGE);
}
}
}
void addInventory(List<SellDetail> productDetailList){
List<StockDetail> stockDetailList = new ArrayList<>();
//模拟入库
productDetailList.stream().forEach(sellDetail -> {
String productId = sellDetail.getProductId();
Product product = productService.getById(productId);
if(product.getStockControl().equals(STOCK_CONTROL_YES)){
StockDetail stockDetail = new StockDetail();
stockDetail.setProductId(product.getProductId());
stockDetail.setProductName(product.getProductName());
stockDetail.setCount(sellDetail.getCount());
productService.addProductCount(product.getProductId(),sellDetail.getCount());
stockDetailList.add(stockDetail);
}
});
if(CollectionUtil.isNotEmpty(stockDetailList)){
//创建入库总单
Stock stock = new Stock();
stock.setStockInType(STOCK_IN_TYPE_CANCEL);
stock.setStockTitle(DateUtil.formatChineseDate(new Date(),false,true) + SecurityUtil.getLoginUser().getDeptName() + "入库单");
stock.setStockNo(StringUtil.getDateStringNow() + StringUtil.createCode(4));
stock.setStockType(STOCK_IN);
stockService.save(stock);
stockDetailList.stream().forEach(stockDetail -> {stockDetail.setStockId(stock.getStockId());});
stockDetailService.saveBatch(stockDetailList);
}
}
}

View File

@ -1,97 +0,0 @@
package com.dd.admin.business.sell.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import com.dd.admin.business.detailServer.service.SellDetailServerService;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.dd.admin.business.sellPay.domain.SellpayVo;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.service.SellpayService;
import com.dd.admin.business.sellPay.service.impl.SellpayServiceImpl;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.sell.entity.Sell;
import com.dd.admin.business.sell.mapper.SellMapper;
import com.dd.admin.business.sell.service.SellService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dd.admin.common.utils.ColumnUtil;
import com.dd.admin.common.utils.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dd.admin.business.sell.domain.SellVo;
import com.dd.admin.business.sell.domain.SellDto;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* <p>
* 订单 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Service
public class SellServiceImpl extends ServiceImpl<SellMapper, Sell> implements SellService {
@Autowired
private SellDetailService sellDetailService;
@Autowired
private SellpayService sellpayService;
@Autowired
private SellDetailServerService sellDetailServerService;
@Override
public IPage<SellVo> selectSellPage(SellDto sellDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectSellPage(page,sellDto);
}
@Override
public List<SellVo> selectSellList(SellDto sellDto) {
return baseMapper.selectSellList(sellDto);
}
@Override
public Integer selectTodayCount(String shopId) {
return baseMapper.selectTodayCount(shopId);
}
@Override//TODO
public void setSellDetail(List<SellVo> sellVoList) {
List<String> sellIds = sellVoList.stream().map(SellVo::getSellId).collect(Collectors.toList());
// 使用 MyBatis Plus 的条件构造器查询 SelldetailVo 列表
List<SellDetail> sellDetailList = sellDetailService.selectSellDetailList(sellIds);
List<Sellpay> sellpayList = sellpayService.selectSellPayList(sellIds);
List<String> sellDetailIds = sellDetailList.stream().map(sellDetail -> sellDetail.getSellDetailId()).collect(Collectors.toList());
List<SellDetailServer> sellDetailServers = sellDetailServerService.selectSellDetailServerListBySellDetailIds(sellDetailIds);
// 获得所有的消费总单
sellVoList.forEach(sellVo -> {
List<SellDetail> selldetails = sellDetailList.stream()
.filter(selldetail -> sellVo.getSellId().equals(selldetail.getSellId()))
.collect(Collectors.toList());
selldetails.stream().forEach(sellDetail -> {
List<SellDetailServer> detailServerList = sellDetailServers.stream().filter(sellDetailServer -> sellDetail.getSellDetailId().equals(sellDetailServer.getSellDetailId())).collect(Collectors.toList());
sellDetail.setDetailServerList(detailServerList);
});
sellVo.setSellDetailList(selldetails);
List<Sellpay> sellpays = sellpayList.stream()
.filter(sellpay -> sellVo.getSellId().equals(sellpay.getSellId()))
.collect(Collectors.toList());
sellVo.setSellPayList(sellpays);
});
}
@Override
public Integer selectSellCount(String shopId) {
LambdaQueryWrapper<Sell> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Sell::getShopId, shopId);
return baseMapper.selectCount(queryWrapper);
}
}

View File

@ -1,88 +0,0 @@
package com.dd.admin.business.sellDetail.controller;
import cn.hutool.core.bean.BeanUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.domain.SellDetailDto;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 订单详情 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Api(tags = "订单详情")
@RestController
public class SellDetailController {
@Autowired
SellDetailService sellDetailService;
@ApiOperation(value = "订单详情-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/sellDetail/page")
public ResultBean<IPage<SellDetailVo>> page(SellDetailDto sellDetailDto) {
IPage<SellDetailVo> pageInfo = sellDetailService.selectSellDetailPage(sellDetailDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "订单详情-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/sellDetail/list")
public ResultBean<List<SellDetailVo>> list(SellDetailDto sellDetailDto) {
List<SellDetailVo> list = sellDetailService.selectSellDetailList(sellDetailDto);
return ResultBean.success(list);
}
@ApiOperation(value = "订单详情-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/sellDetail/add")
public ResultBean<SellDetail> add(@RequestBody @Validated SellDetailDto sellDetailDto) {
SellDetail sellDetail = BeanUtil.copyProperties(sellDetailDto, SellDetail.class);
sellDetailService.save(sellDetail);
return ResultBean.success(sellDetail);
}
@ApiOperation(value = "订单详情-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/sellDetail/{sellDetailId}")
public ResultBean<SellDetailVo> get(@PathVariable @NotBlank String sellDetailId) {
SellDetail sellDetail = sellDetailService.getById(sellDetailId);
SellDetailVo sellDetailVo = BeanUtil.copyProperties(sellDetail,SellDetailVo.class);
return ResultBean.success(sellDetailVo);
}
@ApiOperation(value = "订单详情-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/sellDetail/update")
public ResultBean<SellDetail> update(@RequestBody @Validated(UpdateGroup.class) SellDetailDto sellDetailDto) {
SellDetail sellDetail = BeanUtil.copyProperties(sellDetailDto, SellDetail.class);
sellDetailService.updateById(sellDetail);
return ResultBean.success(sellDetail);
}
@ApiOperation(value = "订单详情-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/sellDetail/delete/{sellDetailId}")
public ResultBean<SellDetail> delete(@PathVariable @NotBlank String sellDetailId) {
Boolean b = sellDetailService.removeById(sellDetailId);
return ResultBean.success(b);
}
}

View File

@ -1,107 +0,0 @@
package com.dd.admin.business.sellDetail.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 订单详情返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单详情接收对象")
public class SellDetailDto {
@ApiModelProperty(value = "销售细单id")
@NotBlank(message = "订单详情id不能为空",groups = UpdateGroup.class)
private String sellDetailId;
@ApiModelProperty(value = "会员id")
private String memberId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "1开卡 2续卡 3项目 4商品")
private Integer sellType;
@ApiModelProperty(value = "商品类型")
private Integer productType;
@ApiModelProperty(value = "会员卡id")
private String memberCardId;
@ApiModelProperty(value = "商品ID")
private String productId;
@ApiModelProperty(value = "商品名")
private String productName;
@ApiModelProperty(value = "商品数量")
private Long count;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "金额")
private BigDecimal amount;
@ApiModelProperty(value = "实际金额")
private BigDecimal realAmount;
@ApiModelProperty(value = "卡项ID")
private String cardId;
@ApiModelProperty(value = "卡名")
private String cardName;
@ApiModelProperty(value = "赠送金额")
private BigDecimal giveAmount;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "0正常 1取消")
private Integer sellStatus;
}

View File

@ -1,105 +0,0 @@
package com.dd.admin.business.sellDetail.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单详情返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单详情返回对象")
public class SellDetailVo {
@ApiModelProperty(value = "销售细单id")
private String sellDetailId;
@ApiModelProperty(value = "会员id")
private String memberId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "1开卡 2续卡 3项目 4商品")
private Integer sellType;
@ApiModelProperty(value = "商品类型")
private Integer productType;
@ApiModelProperty(value = "会员卡id")
private String memberCardId;
@ApiModelProperty(value = "商品ID")
private String productId;
@ApiModelProperty(value = "商品名")
private String productName;
@ApiModelProperty(value = "商品数量")
private Long count;
@ApiModelProperty(value = "折扣")
private BigDecimal discount;
@ApiModelProperty(value = "金额")
private BigDecimal amount;
@ApiModelProperty(value = "实际金额")
private BigDecimal realAmount;
@ApiModelProperty(value = "卡项ID")
private String cardId;
@ApiModelProperty(value = "卡名")
private String cardName;
@ApiModelProperty(value = "赠送金额")
private BigDecimal giveAmount;
@ApiModelProperty(value = "门店id")
private String shopId;
@ApiModelProperty(value = "门店名")
private String shopName;
@ApiModelProperty(value = "创建人")
private String createName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人id")
private String createId;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "修改人")
private String updateName;
@ApiModelProperty(value = "修改人id")
private String updateId;
@ApiModelProperty(value = "0正常 1取消")
private Integer sellStatus;
@ApiModelProperty(value = "百份比值")
private String percentage;
}

View File

@ -1,141 +0,0 @@
package com.dd.admin.business.sellDetail.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.ArrayList;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.List;
import com.dd.admin.business.detailServer.entity.SellDetailServer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单详情
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_sell_detail")
@ApiModel(value="SellDetail对象", description="订单详情")
public class SellDetail implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "销售细单id")
@TableId(value = "SELL_DETAIL_ID", type = IdType.ASSIGN_UUID)
private String sellDetailId;
@ApiModelProperty(value = "会员id")
@TableField("MEMBER_ID")
private String memberId;
@ApiModelProperty(value = "订单id")
@TableField("SELL_ID")
private String sellId;
@ApiModelProperty(value = "1开卡 2续卡 3项目 4商品")
@TableField("SELL_TYPE")
private Integer sellType;
@ApiModelProperty(value = "商品类型")
@TableField("PRODUCT_TYPE")
private Integer productType;
@ApiModelProperty(value = "会员卡id")
@TableField("MEMBER_CARD_ID")
private String memberCardId;
@ApiModelProperty(value = "商品ID")
@TableField("PRODUCT_ID")
private String productId;
@ApiModelProperty(value = "商品名")
@TableField("PRODUCT_NAME")
private String productName;
@ApiModelProperty(value = "商品数量")
@TableField("COUNT")
private Long count;
@ApiModelProperty(value = "折扣")
@TableField("DISCOUNT")
private BigDecimal discount;
@ApiModelProperty(value = "金额")
@TableField("AMOUNT")
private BigDecimal amount;
@ApiModelProperty(value = "实际金额")
@TableField("REAL_AMOUNT")
private BigDecimal realAmount;
@ApiModelProperty(value = "商品实际金额")
@TableField("TOTAL_REAL_AMOUNT")
private BigDecimal totalRealAmount;
@ApiModelProperty(value = "卡项ID")
@TableField("CARD_ID")
private String cardId;
@ApiModelProperty(value = "卡名")
@TableField("CARD_NAME")
private String cardName;
@ApiModelProperty(value = "赠送金额")
@TableField("GIVE_AMOUNT")
private BigDecimal giveAmount;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "修改时间")
@TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField(value = "UPDATE_NAME", fill = FieldFill.UPDATE)
private String updateName;
@ApiModelProperty(value = "修改人id")
@TableField(value = "UPDATE_ID", fill = FieldFill.UPDATE)
private String updateId;
@ApiModelProperty(value = "0正常 1取消")
@TableField("SELL_STATUS")
private Integer sellStatus;
@TableField(exist = false)
List<SellDetailServer> detailServerList = new ArrayList<>();
}

View File

@ -1,32 +0,0 @@
package com.dd.admin.business.sellDetail.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.domain.SellDetailDto;
import java.util.List;
/**
* <p>
* 订单详情 Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Mapper
public interface SellDetailMapper extends BaseMapper<SellDetail> {
IPage<SellDetailVo> selectSellDetailPage(Page<SellDetailVo> page, @Param("sellDetailDto") SellDetailDto sellDetailDto);
List<SellDetailVo> selectSellDetailList(@Param("sellDetailDto") SellDetailDto sellDetailDto);
Integer updateSellDetailStatus(@Param("SellId")String SellId);
List<SellDetailVo> productProportion(@Param("shopId") String shopId, @Param("limit") Integer limit);
}

View File

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.sellDetail.mapper.SellDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.sellDetail.entity.SellDetail">
<id column="SELL_DETAIL_ID" property="sellDetailId" />
<result column="MEMBER_ID" property="memberId" />
<result column="SELL_ID" property="sellId" />
<result column="SELL_TYPE" property="sellType" />
<result column="MEMBER_CARD_ID" property="memberCardId" />
<result column="PRODUCT_ID" property="productId" />
<result column="PRODUCT_NAME" property="productName" />
<result column="COUNT" property="count" />
<result column="DISCOUNT" property="discount" />
<result column="AMOUNT" property="amount" />
<result column="REAL_AMOUNT" property="realAmount" />
<result column="CARD_ID" property="cardId" />
<result column="CARD_NAME" property="cardName" />
<result column="GIVE_AMOUNT" property="giveAmount" />
<result column="SHOP_ID" property="shopId" />
<result column="SHOP_NAME" property="shopName" />
<result column="CREATE_NAME" property="createName" />
<result column="CREATE_TIME" property="createTime" />
<result column="CREATE_ID" property="createId" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="UPDATE_NAME" property="updateName" />
<result column="UPDATE_ID" property="updateId" />
<result column="SELL_STATUS" property="sellStatus" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
SELL_DETAIL_ID, MEMBER_ID, SELL_ID, SELL_TYPE, MEMBER_CARD_ID, PRODUCT_ID, PRODUCT_NAME, COUNT, DISCOUNT, AMOUNT, REAL_AMOUNT, CARD_ID, CARD_NAME, GIVE_AMOUNT, SHOP_ID, SHOP_NAME, CREATE_NAME, CREATE_TIME, CREATE_ID, UPDATE_TIME, UPDATE_NAME, UPDATE_ID, SELL_STATUS
</sql>
<update id="updateSellDetailStatus" parameterType="java.lang.String">
update business_sell_detail set sell_status = 1 where sell_id = #{sellId}
</update>
<select id="selectSellDetailPage" resultType="com.dd.admin.business.sellDetail.domain.SellDetailVo">
select
*
from business_sell_detail where 1 = 1
</select>
<select id="selectSellDetailList" resultType="com.dd.admin.business.sellDetail.domain.SellDetailVo">
select
*
from business_sell_detail where 1 = 1
</select>
<select id="productProportion" resultType="com.dd.admin.business.sellDetail.domain.SellDetailVo">
SELECT
a.product_id,
b.PRODUCT_NAME,
SUM(a.COUNT) AS productCount,
-- 计算百分比先计算每个分组的数量占总数的比例乘以100得到百分比值再使用ROUND函数保留两位小数最后用CONCAT拼接上%符号
ROUND(SUM(a.COUNT) / (SELECT SUM(COUNT) FROM business_sell_detail WHERE sell_type = 1 AND product_type = 1 AND SELL_STATUS = 0) * 100, 2) AS percentage
FROM
business_sell_detail a
LEFT JOIN
business_product b ON a.PRODUCT_ID = b.PRODUCT_ID
WHERE
a.sell_type = 1 AND a.product_type = 1 AND a.SELL_STATUS = 0
<if test="shopId != null and shopId != ''">
and a.shop_id = #{shopId}
</if>
GROUP BY
a.product_id
<if test="limit != null ">
limit #{limit}
</if>
</select>
</mapper>

View File

@ -1,38 +0,0 @@
package com.dd.admin.business.sellDetail.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.domain.SellDetailDto;
import java.util.List;
/**
* <p>
* 订单详情 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
public interface SellDetailService extends IService<SellDetail> {
//订单详情-分页列表
IPage<SellDetailVo> selectSellDetailPage(SellDetailDto sellDetailDto);
//订单详情-列表
List<SellDetailVo> selectSellDetailList(SellDetailDto sellDetailDto);
//订单详情-列表
List<SellDetail> selectSellDetailList(List<String> sellIds);
//订单详情-列表
List<SellDetail> selectSellDetailList(String sellId);
void updateSellDetailStatus(String sellId);
List<SellDetailVo> productProportion(String shopId, Integer limit);
}

View File

@ -1,70 +0,0 @@
package com.dd.admin.business.sellDetail.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.consts.MemberShopConst;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.sellDetail.entity.SellDetail;
import com.dd.admin.business.sellDetail.mapper.SellDetailMapper;
import com.dd.admin.business.sellDetail.service.SellDetailService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.sellDetail.domain.SellDetailVo;
import com.dd.admin.business.sellDetail.domain.SellDetailDto;
import java.util.List;
/**
* <p>
* 订单详情 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Service
public class SellDetailServiceImpl extends ServiceImpl<SellDetailMapper, SellDetail> implements SellDetailService {
@Override
public IPage<SellDetailVo> selectSellDetailPage(SellDetailDto sellDetailDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectSellDetailPage(page,sellDetailDto);
}
@Override
public List<SellDetailVo> selectSellDetailList(SellDetailDto sellDetailDto) {
return baseMapper.selectSellDetailList(sellDetailDto);
}
@Override
public List<SellDetail> selectSellDetailList(List<String> sellIds) {
LambdaQueryWrapper<SellDetail> selldetailQueryWrapper = new LambdaQueryWrapper<>();
if(CollectionUtil.isNotEmpty(sellIds)){
selldetailQueryWrapper.in(SellDetail::getSellId, sellIds);
}
List<SellDetail> sellDetailList = this.list(selldetailQueryWrapper);
return sellDetailList;
}
@Override
public List<SellDetail> selectSellDetailList(String sellId) {
LambdaQueryWrapper<SellDetail> selldetailQueryWrapper = new LambdaQueryWrapper<>();
selldetailQueryWrapper.eq(SellDetail::getSellId, sellId);
List<SellDetail> sellDetailList = this.list(selldetailQueryWrapper);
return sellDetailList;
}
@Override
public void updateSellDetailStatus(String sellId) {
baseMapper.updateSellDetailStatus(sellId);
}
@Override
public List<SellDetailVo> productProportion(String shopId, Integer limit) {
return baseMapper.productProportion(shopId,limit);
}
}

View File

@ -1,101 +0,0 @@
package com.dd.admin.business.sellJson.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.dd.admin.common.security.SecurityUtil;
import com.dd.admin.common.utils.StringUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.sellJson.entity.Selljson;
import com.dd.admin.business.sellJson.domain.SelljsonVo;
import com.dd.admin.business.sellJson.domain.SelljsonDto;
import com.dd.admin.business.sellJson.service.SelljsonService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 订单json 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Api(tags = "订单json")
@RestController
public class SelljsonController {
@Autowired
SelljsonService sellJsonService;
@ApiOperation(value = "订单json-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/sellJson/page")
public ResultBean<IPage<SelljsonVo>> page(SelljsonDto sellJsonDto) {
sellJsonDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
IPage<SelljsonVo> pageInfo = sellJsonService.selectSelljsonPage(sellJsonDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "订单json-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/sellJson/list")
public ResultBean<List<SelljsonVo>> list(SelljsonDto sellJsonDto) {
sellJsonDto.setShopId(SecurityUtil.getLoginUser().getDeptId());
List<SelljsonVo> list = sellJsonService.selectSelljsonList(sellJsonDto);
return ResultBean.success(list);
}
@ApiOperation(value = "订单json-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/sellJson/add")
public ResultBean<Selljson> add(@RequestBody @Validated SelljsonDto sellJsonDto) {
Selljson sellJson = BeanUtil.copyProperties(sellJsonDto, Selljson.class);
if(StringUtil.isNotEmpty(sellJson.getJsonId())){
Boolean b = sellJsonService.updateById(sellJson);
if(!b){
//证明该订单已经删除 或者计算 重新添加挂单即可
sellJsonService.save(sellJson);
}
}else{
sellJsonService.save(sellJson);
}
return ResultBean.success(sellJson);
}
@ApiOperation(value = "订单json-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/sellJson/{sellJsonId}")
public ResultBean<SelljsonVo> get(@PathVariable @NotBlank String sellJsonId) {
Selljson sellJson = sellJsonService.getById(sellJsonId);
SelljsonVo sellJsonVo = BeanUtil.copyProperties(sellJson,SelljsonVo.class);
return ResultBean.success(sellJsonVo);
}
@ApiOperation(value = "订单json-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/sellJson/update")
public ResultBean<Selljson> update(@RequestBody @Validated(UpdateGroup.class) SelljsonDto sellJsonDto) {
Selljson sellJson = BeanUtil.copyProperties(sellJsonDto, Selljson.class);
sellJsonService.updateById(sellJson);
return ResultBean.success(sellJson);
}
@ApiOperation(value = "订单json-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/sellJson/delete/{sellJsonId}")
public ResultBean<Selljson> delete(@PathVariable @NotBlank String sellJsonId) {
Boolean b = sellJsonService.removeById(sellJsonId);
return ResultBean.success(b);
}
}

View File

@ -1,70 +0,0 @@
package com.dd.admin.business.sellJson.domain;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 订单json返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单json接收对象")
public class SelljsonDto {
@NotBlank(message = "订单jsonid不能为空",groups = UpdateGroup.class)
private String jsonId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "获得下订单时的JSON")
private String sellJson;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "0挂单 1结算完成")
@TableField("PENDING_STATUS")
private Integer pendingStatus;
@ApiModelProperty(value = "会员姓名")
@TableField("MEMBER_NAME")
private String memberName;
@ApiModelProperty(value = "手机号")
@TableField("MEMBER_PHONE")
private String memberPhone;
}

View File

@ -1,66 +0,0 @@
package com.dd.admin.business.sellJson.domain;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 订单json返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单json返回对象")
public class SelljsonVo {
private String jsonId;
@ApiModelProperty(value = "订单id")
private String sellId;
@ApiModelProperty(value = "获得下订单时的JSON")
private String sellJson;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "0挂单 1结算完成")
@TableField("PENDING_STATUS")
private Integer pendingStatus;
@ApiModelProperty(value = "会员姓名")
@TableField("MEMBER_NAME")
private String memberName;
@ApiModelProperty(value = "手机号")
@TableField("MEMBER_PHONE")
private String memberPhone;
}

View File

@ -1,73 +0,0 @@
package com.dd.admin.business.sellJson.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 订单json
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_selljson")
@ApiModel(value="Selljson对象", description="订单json")
@Accessors(chain = true)
public class Selljson implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "JSON_ID", type = IdType.ASSIGN_UUID)
private String jsonId;
@ApiModelProperty(value = "订单id")
@TableField("SELL_ID")
private String sellId;
@ApiModelProperty(value = "获得下订单时的JSON")
@TableField("SELL_JSON")
private String sellJson;
@ApiModelProperty(value = "门店id")
@TableField(value = "SHOP_ID", fill = FieldFill.INSERT)
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField(value = "SHOP_NAME", fill = FieldFill.INSERT)
private String shopName;
@ApiModelProperty(value = "创建人")
@TableField(value = "CREATE_NAME", fill = FieldFill.INSERT)
private String createName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "创建人id")
@TableField(value = "CREATE_ID", fill = FieldFill.INSERT)
private String createId;
@ApiModelProperty(value = "0挂单 1结算完成")
@TableField("PENDING_STATUS")
private Integer pendingStatus;
@ApiModelProperty(value = "会员姓名")
@TableField("MEMBER_NAME")
private String memberName;
@ApiModelProperty(value = "手机号")
@TableField("MEMBER_PHONE")
private String memberPhone;
}

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.sellJson.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.business.sellJson.entity.Selljson;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dd.admin.business.sellJson.domain.SelljsonVo;
import com.dd.admin.business.sellJson.domain.SelljsonDto;
import java.util.List;
/**
* <p>
* 订单json Mapper 接口
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Mapper
public interface SelljsonMapper extends BaseMapper<Selljson> {
IPage<SelljsonVo> selectSelljsonPage(Page<SelljsonVo> page, @Param("sellJsonDto") SelljsonDto sellJsonDto);
List<SelljsonVo> selectSelljsonList(@Param("sellJsonDto") SelljsonDto sellJsonDto);
}

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dd.admin.business.sellJson.mapper.SelljsonMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.dd.admin.business.sellJson.entity.Selljson">
<id column="JSON_ID" property="jsonId" />
<result column="SELL_ID" property="sellId" />
<result column="SELL_JSON" property="sellJson" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
JSON_ID, SELL_ID, SELL_JSON
</sql>
<select id="selectSelljsonPage" resultType="com.dd.admin.business.sellJson.domain.SelljsonVo">
select
*
from business_selljson where 1 = 1
<if test="sellJsonDto.pendingStatus != null">
and PENDING_STATUS = #{sellJsonDto.pendingStatus}
</if>
<if test="sellJsonDto.shopId != null and sellJsonDto.shopId != ''">
and shop_id = #{sellJsonDto.shopId}
</if>
order by create_time desc
</select>
<select id="selectSelljsonList" resultType="com.dd.admin.business.sellJson.domain.SelljsonVo">
select
*
from business_selljson where 1 = 1
<if test="sellJsonDto.shopId != null and sellJsonDto.shopId != ''">
and shop_id = #{sellJsonDto.shopId}
</if>
</select>
</mapper>

View File

@ -1,28 +0,0 @@
package com.dd.admin.business.sellJson.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dd.admin.business.sellJson.entity.Selljson;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.admin.business.sellJson.domain.SelljsonVo;
import com.dd.admin.business.sellJson.domain.SelljsonDto;
import java.util.List;
/**
* <p>
* 订单json 服务类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
public interface SelljsonService extends IService<Selljson> {
//订单json-分页列表
IPage<SelljsonVo> selectSelljsonPage(SelljsonDto sellJsonDto);
//订单json-列表
List<SelljsonVo> selectSelljsonList(SelljsonDto sellJsonDto);
void completePendingSell(String jsonId);
}

View File

@ -1,46 +0,0 @@
package com.dd.admin.business.sellJson.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.admin.common.model.PageFactory;
import com.dd.admin.business.sellJson.entity.Selljson;
import com.dd.admin.business.sellJson.mapper.SelljsonMapper;
import com.dd.admin.business.sellJson.service.SelljsonService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.dd.admin.business.sellJson.domain.SelljsonVo;
import com.dd.admin.business.sellJson.domain.SelljsonDto;
import java.util.List;
import static com.dd.admin.business.pay.enmus.PayConst.PENDING_SELL_COMPLETE;
/**
* <p>
* 订单json 服务实现类
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Service
public class SelljsonServiceImpl extends ServiceImpl<SelljsonMapper, Selljson> implements SelljsonService {
@Override
public IPage<SelljsonVo> selectSelljsonPage(SelljsonDto sellJsonDto) {
Page page = PageFactory.defaultPage();
return baseMapper.selectSelljsonPage(page,sellJsonDto);
}
@Override
public List<SelljsonVo> selectSelljsonList(SelljsonDto sellJsonDto) {
return baseMapper.selectSelljsonList(sellJsonDto);
}
@Override
public void completePendingSell(String jsonId) {
Selljson selljson = new Selljson();
selljson.setJsonId(jsonId);
selljson.setPendingStatus(PENDING_SELL_COMPLETE);
this.updateById(selljson);
}
}

View File

@ -1,88 +0,0 @@
package com.dd.admin.business.sellPay.controller;
import cn.hutool.core.bean.BeanUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.dd.admin.common.model.UpdateGroup;
import com.dd.admin.common.model.result.ResultBean;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import com.dd.admin.business.sellPay.entity.Sellpay;
import com.dd.admin.business.sellPay.domain.SellpayVo;
import com.dd.admin.business.sellPay.domain.SellpayDto;
import com.dd.admin.business.sellPay.service.SellpayService;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 订单支付 前端控制器
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Api(tags = "订单支付")
@RestController
public class SellpayController {
@Autowired
SellpayService sellPayService;
@ApiOperation(value = "订单支付-分页列表")
@ApiOperationSupport(order = 1)
@GetMapping("/admin/sellPay/page")
public ResultBean<IPage<SellpayVo>> page(SellpayDto sellPayDto) {
IPage<SellpayVo> pageInfo = sellPayService.selectSellpayPage(sellPayDto);
return ResultBean.success(pageInfo);
}
@ApiOperation(value = "订单支付-列表")
@ApiOperationSupport(order = 2)
@GetMapping("/admin/sellPay/list")
public ResultBean<List<SellpayVo>> list(SellpayDto sellPayDto) {
List<SellpayVo> list = sellPayService.selectSellpayList(sellPayDto);
return ResultBean.success(list);
}
@ApiOperation(value = "订单支付-添加")
@ApiOperationSupport(order = 3)
@PostMapping("/admin/sellPay/add")
public ResultBean<Sellpay> add(@RequestBody @Validated SellpayDto sellPayDto) {
Sellpay sellPay = BeanUtil.copyProperties(sellPayDto, Sellpay.class);
sellPayService.save(sellPay);
return ResultBean.success(sellPay);
}
@ApiOperation(value = "订单支付-查询")
@ApiOperationSupport(order = 4)
@GetMapping("/admin/sellPay/{sellPayId}")
public ResultBean<SellpayVo> get(@PathVariable @NotBlank String sellPayId) {
Sellpay sellPay = sellPayService.getById(sellPayId);
SellpayVo sellPayVo = BeanUtil.copyProperties(sellPay,SellpayVo.class);
return ResultBean.success(sellPayVo);
}
@ApiOperation(value = "订单支付-修改")
@ApiOperationSupport(order = 5)
@PostMapping("/admin/sellPay/update")
public ResultBean<Sellpay> update(@RequestBody @Validated(UpdateGroup.class) SellpayDto sellPayDto) {
Sellpay sellPay = BeanUtil.copyProperties(sellPayDto, Sellpay.class);
sellPayService.updateById(sellPay);
return ResultBean.success(sellPay);
}
@ApiOperation(value = "订单支付-删除")
@ApiOperationSupport(order = 6)
@GetMapping("/admin/sellPay/delete/{sellPayId}")
public ResultBean<Sellpay> delete(@PathVariable @NotBlank String sellPayId) {
Boolean b = sellPayService.removeById(sellPayId);
return ResultBean.success(b);
}
}

View File

@ -1,50 +0,0 @@
package com.dd.admin.business.sellPay.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import com.dd.admin.common.model.UpdateGroup;
/**
* <p>
* 订单支付返回对象
* </p>
*
* @author 727869402@qq.com
* @since 2024-06-19
*/
@Data
@ApiModel(value="订单支付接收对象")
public class SellpayDto {
@ApiModelProperty(value = "支付id")
@NotBlank(message = "订单支付id不能为空",groups = UpdateGroup.class)
private String sellPayId;
@ApiModelProperty(value = "销售单id")
private String sellId;
@ApiModelProperty(value = "支付方式名称")
private String payName;
@ApiModelProperty(value = "1.卡金 2.扫码 3.现金 888.优惠 ")
private Integer payType;
@ApiModelProperty(value = "金额")
private BigDecimal amount;
@ApiModelProperty(value = "创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private Date createTime;
}

Some files were not shown because too many files have changed in this diff Show More