删除无用代码 集成websocket
This commit is contained in:
parent
f3363bb5f8
commit
32f77e5382
2
pom.xml
2
pom.xml
@ -167,6 +167,8 @@
|
|||||||
<version>3.3.2.v20190601-RELEASE</version>
|
<version>3.3.2.v20190601-RELEASE</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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));
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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<>();
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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>
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
Loading…
x
Reference in New Issue
Block a user