Commit 41a6eace authored by shiyu's avatar shiyu

编辑团购商品

parent 3deb99dd
...@@ -74,6 +74,9 @@ public class SysGroupPurchaseServiceImpl implements SysGroupPurchaseService { ...@@ -74,6 +74,9 @@ public class SysGroupPurchaseServiceImpl implements SysGroupPurchaseService {
groupPurchaseConfig.setState(GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode()); groupPurchaseConfig.setState(GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode());
groupPurchaseConfig.setIsValid(true); groupPurchaseConfig.setIsValid(true);
groupPurchaseConfig.setIsDeal(false); groupPurchaseConfig.setIsDeal(false);
groupPurchaseConfig.setTargetNum(0);
//不限购
groupPurchaseConfig.setLimitNum(supplierItem.getStock());
groupPurchaseConfig.setCreateTime(now); groupPurchaseConfig.setCreateTime(now);
groupPurchaseConfig.setUpdateTime(now); groupPurchaseConfig.setUpdateTime(now);
groupPurchaseConfigDao.insert(groupPurchaseConfig); groupPurchaseConfigDao.insert(groupPurchaseConfig);
......
...@@ -89,8 +89,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -89,8 +89,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
@Autowired @Autowired
GroupPurchaseConfigDao groupPurchaseConfigDao; GroupPurchaseConfigDao groupPurchaseConfigDao;
@Autowired
GroupPurchaseDiscountDao groupPurchaseDiscountDao;
@Override @Override
@Transactional @Transactional
...@@ -163,6 +161,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -163,6 +161,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
DistributionEnum.DistributionTypeEnum.AUCTION.getCode(), DistributionEnum.DistributionTypeEnum.AUCTION.getCode(),
DistributionEnum.DistributionTypeEnum.DISCOUNT.getCode())); DistributionEnum.DistributionTypeEnum.DISCOUNT.getCode()));
} }
Date now = new Date();
List<SupplierItem> supplierItemList = supplierItemDao.findList(dto); List<SupplierItem> supplierItemList = supplierItemDao.findList(dto);
PageInfo<SupplierItem> pageInfo = new PageInfo(supplierItemList); PageInfo<SupplierItem> pageInfo = new PageInfo(supplierItemList);
supplierItemList.forEach(supplierItem -> { supplierItemList.forEach(supplierItem -> {
...@@ -191,8 +190,13 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -191,8 +190,13 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
} }
} else if (supplierItem.getType() == DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) { } else if (supplierItem.getType() == DistributionEnum.DistributionTypeEnum.GROUP_PURCHASE.getCode()) {
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(supplierItem.getId()); GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(supplierItem.getId());
if (groupPurchaseConfig.getEndTime().before(now) && groupPurchaseConfig.getState() != GroupPurchaseEnum.ItemStateEnum.END.getCode()) {
groupPurchaseConfigDao.updateState(supplierItem.getId(), GroupPurchaseEnum.ItemStateEnum.END.getCode());
} else if (now.after(groupPurchaseConfig.getStartTime()) && groupPurchaseConfig.getEndTime().after(now)
&& groupPurchaseConfig.getState() == GroupPurchaseEnum.ItemStateEnum.NOT_START.getCode()) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
}
supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice())); supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice()));
supplierItemVo.setDeposit(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
supplierItemVo.setGroupPurchaseStartTime(DateUtils.toString(groupPurchaseConfig.getStartTime())); supplierItemVo.setGroupPurchaseStartTime(DateUtils.toString(groupPurchaseConfig.getStartTime()));
supplierItemVo.setGroupPurchaseEndTime(DateUtils.toString(groupPurchaseConfig.getEndTime())); supplierItemVo.setGroupPurchaseEndTime(DateUtils.toString(groupPurchaseConfig.getEndTime()));
} }
...@@ -357,12 +361,8 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -357,12 +361,8 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
//团购商品查询相关配置和优惠信息 //团购商品查询相关配置和优惠信息
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(itemId); GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(itemId);
supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice())); supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getPrice()));
supplierItemVo.setDeposit(PriceUtil.convertPriceFenToYuan(groupPurchaseConfig.getDeposit()));
supplierItemVo.setGroupPurchaseStartTime(DateUtils.toString(groupPurchaseConfig.getStartTime())); supplierItemVo.setGroupPurchaseStartTime(DateUtils.toString(groupPurchaseConfig.getStartTime()));
supplierItemVo.setGroupPurchaseEndTime(DateUtils.toString(groupPurchaseConfig.getEndTime())); supplierItemVo.setGroupPurchaseEndTime(DateUtils.toString(groupPurchaseConfig.getEndTime()));
List<GroupPurchaseDiscount> discountList = groupPurchaseDiscountDao.findByItemId(itemId);
supplierItemVo.setDiscountList(discountList);
} }
return Result.success(supplierItemVo); return Result.success(supplierItemVo);
} catch (Exception e) { } catch (Exception e) {
...@@ -403,13 +403,15 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -403,13 +403,15 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
//设置团购商品 //设置团购商品
GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(dto.getId()); GroupPurchaseConfig groupPurchaseConfig = groupPurchaseConfigDao.findByItemId(dto.getId());
groupPurchaseConfig.setPrice(PriceUtil.convertPriceFromStr(dto.getSalePrice())); groupPurchaseConfig.setPrice(PriceUtil.convertPriceFromStr(dto.getSalePrice()));
groupPurchaseConfig.setDeposit(PriceUtil.convertPriceFromStr(dto.getDeposit()));
groupPurchaseConfig.setSupplyPrice(PriceUtil.convertPriceFromStr(dto.getSupplyPrice())); groupPurchaseConfig.setSupplyPrice(PriceUtil.convertPriceFromStr(dto.getSupplyPrice()));
groupPurchaseConfig.setStartTime(DateUtils.parseString(dto.getGroupPurchaseStartTime())); groupPurchaseConfig.setStartTime(DateUtils.parseString(dto.getGroupPurchaseStartTime()));
groupPurchaseConfig.setEndTime(DateUtils.parseString(dto.getGroupPurchaseEndTime())); groupPurchaseConfig.setEndTime(DateUtils.parseString(dto.getGroupPurchaseEndTime()));
groupPurchaseConfig.setLimitNum(dto.getLimitNum());
groupPurchaseConfig.setTargetNum(dto.getTargetNum());
groupPurchaseConfig.setWxQrcode(dto.getWxQrcode());
groupPurchaseConfigDao.update(groupPurchaseConfig); groupPurchaseConfigDao.update(groupPurchaseConfig);
//设置团购商品优惠 /* //设置团购商品优惠
//先删除之前的优惠信息,再插入新的 //先删除之前的优惠信息,再插入新的
if (groupPurchaseDiscountDao.isExisted(dto.getId())) { if (groupPurchaseDiscountDao.isExisted(dto.getId())) {
groupPurchaseDiscountDao.delete(dto.getId()); groupPurchaseDiscountDao.delete(dto.getId());
...@@ -428,6 +430,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -428,6 +430,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
groupPurchaseDiscount.setState(GroupPurchaseEnum.StateEnum.VALID.getCode()); groupPurchaseDiscount.setState(GroupPurchaseEnum.StateEnum.VALID.getCode());
groupPurchaseDiscountDao.insert(groupPurchaseDiscount); groupPurchaseDiscountDao.insert(groupPurchaseDiscount);
} }
*/
} }
long oldDistributionPrice = oldSupplierItem.getDistributionPrice(); long oldDistributionPrice = oldSupplierItem.getDistributionPrice();
......
...@@ -34,6 +34,8 @@ public interface GroupPurchaseConfigDao { ...@@ -34,6 +34,8 @@ public interface GroupPurchaseConfigDao {
*/ */
int updateByItemId(GroupPurchaseConfig groupPurchaseConfig); int updateByItemId(GroupPurchaseConfig groupPurchaseConfig);
int updateDealByPrimaryKey(int id, boolean isDeal);
/** /**
* 更新状态 * 更新状态
* @param itemId * @param itemId
...@@ -52,7 +54,7 @@ public interface GroupPurchaseConfigDao { ...@@ -52,7 +54,7 @@ public interface GroupPurchaseConfigDao {
/** /**
* 查询团购商品列表 * 查询团购商品列表
* @param itemId * @param dto
* @return * @return
*/ */
List<GroupPurchaseConfig> findList(GroupPurchaseConfigRequestDto dto); List<GroupPurchaseConfig> findList(GroupPurchaseConfigRequestDto dto);
......
...@@ -38,4 +38,11 @@ public interface GroupPurchaseRecordDao { ...@@ -38,4 +38,11 @@ public interface GroupPurchaseRecordDao {
* @return * @return
*/ */
List<GroupPurchaseRecord> countPeople(GroupPurchaseRecordRequestDto dto); List<GroupPurchaseRecord> countPeople(GroupPurchaseRecordRequestDto dto);
/**
* 统计某商品的团购记录
* @param itemId
* @return
*/
List<GroupPurchaseRecord> findByItemId(long itemId);
} }
...@@ -10,7 +10,7 @@ import lombok.Data; ...@@ -10,7 +10,7 @@ import lombok.Data;
/** /**
* @author shiyu * @author shiyu
* @date 2024/07/25 * @date 2024/07/31
*/ */
@Data @Data
public class GroupPurchaseConfig implements Entity { public class GroupPurchaseConfig implements Entity {
...@@ -50,9 +50,19 @@ public class GroupPurchaseConfig implements Entity { ...@@ -50,9 +50,19 @@ public class GroupPurchaseConfig implements Entity {
private Long supplyPrice; private Long supplyPrice;
/** /**
* 定金 * 目标件数
*/ */
private Long deposit; private Integer targetNum;
/**
* 限时数量
*/
private Integer limitNum;
/**
* 群聊二维码
*/
private String wxQrcode;
/** /**
* 创建时间 * 创建时间
...@@ -94,7 +104,9 @@ public class GroupPurchaseConfig implements Entity { ...@@ -94,7 +104,9 @@ public class GroupPurchaseConfig implements Entity {
sb.append(", endTime=").append(endTime); sb.append(", endTime=").append(endTime);
sb.append(", price=").append(price); sb.append(", price=").append(price);
sb.append(", supplyPrice=").append(supplyPrice); sb.append(", supplyPrice=").append(supplyPrice);
sb.append(", deposit=").append(deposit); sb.append(", targetNum=").append(targetNum);
sb.append(", limitNum=").append(limitNum);
sb.append(", wxQrcode=").append(wxQrcode);
sb.append(", createTime=").append(createTime); sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", state=").append(state); sb.append(", state=").append(state);
...@@ -124,7 +136,9 @@ public class GroupPurchaseConfig implements Entity { ...@@ -124,7 +136,9 @@ public class GroupPurchaseConfig implements Entity {
&& (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime())) && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
&& (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice())) && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
&& (this.getSupplyPrice() == null ? other.getSupplyPrice() == null : this.getSupplyPrice().equals(other.getSupplyPrice())) && (this.getSupplyPrice() == null ? other.getSupplyPrice() == null : this.getSupplyPrice().equals(other.getSupplyPrice()))
&& (this.getDeposit() == null ? other.getDeposit() == null : this.getDeposit().equals(other.getDeposit())) && (this.getTargetNum() == null ? other.getTargetNum() == null : this.getTargetNum().equals(other.getTargetNum()))
&& (this.getLimitNum() == null ? other.getLimitNum() == null : this.getLimitNum().equals(other.getLimitNum()))
&& (this.getWxQrcode() == null ? other.getWxQrcode() == null : this.getWxQrcode().equals(other.getWxQrcode()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())) && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
&& (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState())) && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
...@@ -143,7 +157,9 @@ public class GroupPurchaseConfig implements Entity { ...@@ -143,7 +157,9 @@ public class GroupPurchaseConfig implements Entity {
result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode()); result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode()); result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
result = prime * result + ((getSupplyPrice() == null) ? 0 : getSupplyPrice().hashCode()); result = prime * result + ((getSupplyPrice() == null) ? 0 : getSupplyPrice().hashCode());
result = prime * result + ((getDeposit() == null) ? 0 : getDeposit().hashCode()); result = prime * result + ((getTargetNum() == null) ? 0 : getTargetNum().hashCode());
result = prime * result + ((getLimitNum() == null) ? 0 : getLimitNum().hashCode());
result = prime * result + ((getWxQrcode() == null) ? 0 : getWxQrcode().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
result = prime * result + ((getState() == null) ? 0 : getState().hashCode()); result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
...@@ -167,7 +183,9 @@ public class GroupPurchaseConfig implements Entity { ...@@ -167,7 +183,9 @@ public class GroupPurchaseConfig implements Entity {
endTime("end_time", "endTime", "TIMESTAMP", false), endTime("end_time", "endTime", "TIMESTAMP", false),
price("price", "price", "BIGINT", false), price("price", "price", "BIGINT", false),
supplyPrice("supply_price", "supplyPrice", "BIGINT", false), supplyPrice("supply_price", "supplyPrice", "BIGINT", false),
deposit("deposit", "deposit", "BIGINT", false), targetNum("target_num", "targetNum", "INTEGER", false),
limitNum("limit_num", "limitNum", "INTEGER", false),
wxQrcode("wx_qrcode", "wxQrcode", "VARCHAR", false),
createTime("create_time", "createTime", "TIMESTAMP", false), createTime("create_time", "createTime", "TIMESTAMP", false),
updateTime("update_time", "updateTime", "TIMESTAMP", false), updateTime("update_time", "updateTime", "TIMESTAMP", false),
state("state", "state", "INTEGER", true), state("state", "state", "INTEGER", true),
......
...@@ -1072,18 +1072,18 @@ public class GroupPurchaseConfigExample { ...@@ -1072,18 +1072,18 @@ public class GroupPurchaseConfigExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositIsNull() { public Criteria andTargetNumIsNull() {
addCriterion("deposit is null"); addCriterion("target_num is null");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositIsNotNull() { public Criteria andTargetNumIsNotNull() {
addCriterion("deposit is not null"); addCriterion("target_num is not null");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositEqualTo(Long value) { public Criteria andTargetNumEqualTo(Integer value) {
addCriterion("deposit =", value, "deposit"); addCriterion("target_num =", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1094,13 +1094,13 @@ public class GroupPurchaseConfigExample { ...@@ -1094,13 +1094,13 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositEqualToColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit = ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num = ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositNotEqualTo(Long value) { public Criteria andTargetNumNotEqualTo(Integer value) {
addCriterion("deposit <>", value, "deposit"); addCriterion("target_num <>", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1111,13 +1111,13 @@ public class GroupPurchaseConfigExample { ...@@ -1111,13 +1111,13 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositNotEqualToColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumNotEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit <> ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num <> ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositGreaterThan(Long value) { public Criteria andTargetNumGreaterThan(Integer value) {
addCriterion("deposit >", value, "deposit"); addCriterion("target_num >", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1128,13 +1128,13 @@ public class GroupPurchaseConfigExample { ...@@ -1128,13 +1128,13 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositGreaterThanColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumGreaterThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit > ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num > ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositGreaterThanOrEqualTo(Long value) { public Criteria andTargetNumGreaterThanOrEqualTo(Integer value) {
addCriterion("deposit >=", value, "deposit"); addCriterion("target_num >=", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1145,13 +1145,13 @@ public class GroupPurchaseConfigExample { ...@@ -1145,13 +1145,13 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositGreaterThanOrEqualToColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumGreaterThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit >= ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num >= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositLessThan(Long value) { public Criteria andTargetNumLessThan(Integer value) {
addCriterion("deposit <", value, "deposit"); addCriterion("target_num <", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1162,13 +1162,13 @@ public class GroupPurchaseConfigExample { ...@@ -1162,13 +1162,13 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositLessThanColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumLessThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit < ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num < ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositLessThanOrEqualTo(Long value) { public Criteria andTargetNumLessThanOrEqualTo(Integer value) {
addCriterion("deposit <=", value, "deposit"); addCriterion("target_num <=", value, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
...@@ -1179,28 +1179,302 @@ public class GroupPurchaseConfigExample { ...@@ -1179,28 +1179,302 @@ public class GroupPurchaseConfigExample {
* @mbg.generated * @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin * @project https://github.com/itfsw/mybatis-generator-plugin
*/ */
public Criteria andDepositLessThanOrEqualToColumn(GroupPurchaseConfig.Column column) { public Criteria andTargetNumLessThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("deposit <= ").append(column.getEscapedColumnName()).toString()); addCriterion(new StringBuilder("target_num <= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositIn(List<Long> values) { public Criteria andTargetNumIn(List<Integer> values) {
addCriterion("deposit in", values, "deposit"); addCriterion("target_num in", values, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositNotIn(List<Long> values) { public Criteria andTargetNumNotIn(List<Integer> values) {
addCriterion("deposit not in", values, "deposit"); addCriterion("target_num not in", values, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositBetween(Long value1, Long value2) { public Criteria andTargetNumBetween(Integer value1, Integer value2) {
addCriterion("deposit between", value1, value2, "deposit"); addCriterion("target_num between", value1, value2, "targetNum");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDepositNotBetween(Long value1, Long value2) { public Criteria andTargetNumNotBetween(Integer value1, Integer value2) {
addCriterion("deposit not between", value1, value2, "deposit"); addCriterion("target_num not between", value1, value2, "targetNum");
return (Criteria) this;
}
public Criteria andLimitNumIsNull() {
addCriterion("limit_num is null");
return (Criteria) this;
}
public Criteria andLimitNumIsNotNull() {
addCriterion("limit_num is not null");
return (Criteria) this;
}
public Criteria andLimitNumEqualTo(Integer value) {
addCriterion("limit_num =", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num = ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumNotEqualTo(Integer value) {
addCriterion("limit_num <>", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumNotEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num <> ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumGreaterThan(Integer value) {
addCriterion("limit_num >", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumGreaterThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num > ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumGreaterThanOrEqualTo(Integer value) {
addCriterion("limit_num >=", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumGreaterThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num >= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumLessThan(Integer value) {
addCriterion("limit_num <", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumLessThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num < ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumLessThanOrEqualTo(Integer value) {
addCriterion("limit_num <=", value, "limitNum");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andLimitNumLessThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("limit_num <= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andLimitNumIn(List<Integer> values) {
addCriterion("limit_num in", values, "limitNum");
return (Criteria) this;
}
public Criteria andLimitNumNotIn(List<Integer> values) {
addCriterion("limit_num not in", values, "limitNum");
return (Criteria) this;
}
public Criteria andLimitNumBetween(Integer value1, Integer value2) {
addCriterion("limit_num between", value1, value2, "limitNum");
return (Criteria) this;
}
public Criteria andLimitNumNotBetween(Integer value1, Integer value2) {
addCriterion("limit_num not between", value1, value2, "limitNum");
return (Criteria) this;
}
public Criteria andWxQrcodeIsNull() {
addCriterion("wx_qrcode is null");
return (Criteria) this;
}
public Criteria andWxQrcodeIsNotNull() {
addCriterion("wx_qrcode is not null");
return (Criteria) this;
}
public Criteria andWxQrcodeEqualTo(String value) {
addCriterion("wx_qrcode =", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode = ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeNotEqualTo(String value) {
addCriterion("wx_qrcode <>", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeNotEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode <> ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeGreaterThan(String value) {
addCriterion("wx_qrcode >", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeGreaterThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode > ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeGreaterThanOrEqualTo(String value) {
addCriterion("wx_qrcode >=", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeGreaterThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode >= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeLessThan(String value) {
addCriterion("wx_qrcode <", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeLessThanColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode < ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeLessThanOrEqualTo(String value) {
addCriterion("wx_qrcode <=", value, "wxQrcode");
return (Criteria) this;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table group_purchase_config
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public Criteria andWxQrcodeLessThanOrEqualToColumn(GroupPurchaseConfig.Column column) {
addCriterion(new StringBuilder("wx_qrcode <= ").append(column.getEscapedColumnName()).toString());
return (Criteria) this;
}
public Criteria andWxQrcodeLike(String value) {
addCriterion("wx_qrcode like", value, "wxQrcode");
return (Criteria) this;
}
public Criteria andWxQrcodeNotLike(String value) {
addCriterion("wx_qrcode not like", value, "wxQrcode");
return (Criteria) this;
}
public Criteria andWxQrcodeIn(List<String> values) {
addCriterion("wx_qrcode in", values, "wxQrcode");
return (Criteria) this;
}
public Criteria andWxQrcodeNotIn(List<String> values) {
addCriterion("wx_qrcode not in", values, "wxQrcode");
return (Criteria) this;
}
public Criteria andWxQrcodeBetween(String value1, String value2) {
addCriterion("wx_qrcode between", value1, value2, "wxQrcode");
return (Criteria) this;
}
public Criteria andWxQrcodeNotBetween(String value1, String value2) {
addCriterion("wx_qrcode not between", value1, value2, "wxQrcode");
return (Criteria) this; return (Criteria) this;
} }
......
...@@ -36,6 +36,11 @@ public class GroupPurchaseConfigRequestDto extends BaseRequestDto implements Ent ...@@ -36,6 +36,11 @@ public class GroupPurchaseConfigRequestDto extends BaseRequestDto implements Ent
*/ */
private Date endTime; private Date endTime;
/**
* 时间范围查询
*/
private Date queryEndTime;
/** /**
* 售价 * 售价
*/ */
......
...@@ -180,6 +180,21 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity { ...@@ -180,6 +180,21 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/ */
private String groupPurchaseEndTime; private String groupPurchaseEndTime;
/**
* 目标件数
*/
private Integer targetNum;
/**
* 限时数量
*/
private Integer limitNum;
/**
* 群聊二维码
*/
private String wxQrcode;
/** /**
* 起拍价 * 起拍价
* 单位元 需要转为分 * 单位元 需要转为分
......
...@@ -39,6 +39,14 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao { ...@@ -39,6 +39,14 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
return groupPurchaseConfigMapper.updateByExampleSelective(groupPurchaseConfig, example); return groupPurchaseConfigMapper.updateByExampleSelective(groupPurchaseConfig, example);
} }
@Override
public int updateDealByPrimaryKey(int id, boolean isDeal) {
GroupPurchaseConfig groupPurchaseConfig = new GroupPurchaseConfig();
groupPurchaseConfig.setId(id);
groupPurchaseConfig.setIsDeal(isDeal);
return groupPurchaseConfigMapper.updateByPrimaryKeySelective(groupPurchaseConfig);
}
@Override @Override
public int updateState(long itemId, int state) { public int updateState(long itemId, int state) {
GroupPurchaseConfigExample example = new GroupPurchaseConfigExample(); GroupPurchaseConfigExample example = new GroupPurchaseConfigExample();
...@@ -64,6 +72,8 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao { ...@@ -64,6 +72,8 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
GroupPurchaseConfigExample.Criteria criteria = example.createCriteria(); GroupPurchaseConfigExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getItemId(), criteria:: andItemIdEqualTo); JdbcHelper.ifPresent(dto.getItemId(), criteria:: andItemIdEqualTo);
JdbcHelper.ifPresent(dto.getState(), criteria:: andStateEqualTo); JdbcHelper.ifPresent(dto.getState(), criteria:: andStateEqualTo);
JdbcHelper.ifPresent(dto.getQueryEndTime(), criteria:: andEndTimeLessThanOrEqualTo);
JdbcHelper.ifPresent(dto.getIsDeal(), criteria:: andIsDealEqualTo);
example.setOrderByClause(" create_time desc"); example.setOrderByClause(" create_time desc");
PageHelper.startPage(dto.getPage(), dto.getLimit()); PageHelper.startPage(dto.getPage(), dto.getLimit());
return groupPurchaseConfigMapper.selectByExample(example); return groupPurchaseConfigMapper.selectByExample(example);
......
...@@ -72,4 +72,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao { ...@@ -72,4 +72,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo); JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
return groupPurchaseRecordMapper.selectByExampleSelective(example, GroupPurchaseRecord.Column.userId); return groupPurchaseRecordMapper.selectByExampleSelective(example, GroupPurchaseRecord.Column.userId);
} }
@Override
public List<GroupPurchaseRecord> findByItemId(long itemId) {
GroupPurchaseRecordExample example = new GroupPurchaseRecordExample();
GroupPurchaseRecordExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(itemId);
criteria.andStateEqualTo(1);
return groupPurchaseRecordMapper.selectByExample(example);
}
} }
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
<result column="end_time" jdbcType="TIMESTAMP" property="endTime" /> <result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
<result column="price" jdbcType="BIGINT" property="price" /> <result column="price" jdbcType="BIGINT" property="price" />
<result column="supply_price" jdbcType="BIGINT" property="supplyPrice" /> <result column="supply_price" jdbcType="BIGINT" property="supplyPrice" />
<result column="deposit" jdbcType="BIGINT" property="deposit" /> <result column="target_num" jdbcType="INTEGER" property="targetNum" />
<result column="limit_num" jdbcType="INTEGER" property="limitNum" />
<result column="wx_qrcode" jdbcType="VARCHAR" property="wxQrcode" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="state" jdbcType="INTEGER" property="state" /> <result column="state" jdbcType="INTEGER" property="state" />
...@@ -75,8 +77,8 @@ ...@@ -75,8 +77,8 @@
</where> </where>
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, item_id, creator_id, start_time, end_time, price, supply_price, deposit, create_time, id, item_id, creator_id, start_time, end_time, price, supply_price, target_num, limit_num,
update_time, `state`, is_valid, is_deal wx_qrcode, create_time, update_time, `state`, is_valid, is_deal
</sql> </sql>
<select id="selectByExample" parameterType="com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample" resultMap="BaseResultMap">
select select
...@@ -105,14 +107,14 @@ ...@@ -105,14 +107,14 @@
distinct distinct
</if> </if>
<choose> <choose>
<when test="selective != null and selective.length > 0"> <when test="selective != null and selective.length &gt; 0">
<foreach collection="selective" item="column" separator=","> <foreach collection="selective" item="column" separator=",">
${column.escapedColumnName} ${column.escapedColumnName}
</foreach> </foreach>
</when> </when>
<otherwise> <otherwise>
id, item_id, creator_id, start_time, end_time, price, supply_price, deposit, create_time, id, item_id, creator_id, start_time, end_time, price, supply_price, target_num, limit_num,
update_time, `state`, is_valid, is_deal wx_qrcode, create_time, update_time, `state`, is_valid, is_deal
</otherwise> </otherwise>
</choose> </choose>
from group_purchase_config from group_purchase_config
...@@ -137,14 +139,14 @@ ...@@ -137,14 +139,14 @@
--> -->
select select
<choose> <choose>
<when test="selective != null and selective.length > 0"> <when test="selective != null and selective.length &gt; 0">
<foreach collection="selective" item="column" separator=","> <foreach collection="selective" item="column" separator=",">
${column.escapedColumnName} ${column.escapedColumnName}
</foreach> </foreach>
</when> </when>
<otherwise> <otherwise>
id, item_id, creator_id, start_time, end_time, price, supply_price, deposit, create_time, id, item_id, creator_id, start_time, end_time, price, supply_price, target_num, limit_num,
update_time, `state`, is_valid, is_deal wx_qrcode, create_time, update_time, `state`, is_valid, is_deal
</otherwise> </otherwise>
</choose> </choose>
from group_purchase_config from group_purchase_config
...@@ -166,12 +168,14 @@ ...@@ -166,12 +168,14 @@
</selectKey> </selectKey>
insert into group_purchase_config (item_id, creator_id, start_time, insert into group_purchase_config (item_id, creator_id, start_time,
end_time, price, supply_price, end_time, price, supply_price,
deposit, create_time, update_time, target_num, limit_num, wx_qrcode,
`state`, is_valid, is_deal) create_time, update_time, `state`,
is_valid, is_deal)
values (#{itemId,jdbcType=BIGINT}, #{creatorId,jdbcType=BIGINT}, #{startTime,jdbcType=TIMESTAMP}, values (#{itemId,jdbcType=BIGINT}, #{creatorId,jdbcType=BIGINT}, #{startTime,jdbcType=TIMESTAMP},
#{endTime,jdbcType=TIMESTAMP}, #{price,jdbcType=BIGINT}, #{supplyPrice,jdbcType=BIGINT}, #{endTime,jdbcType=TIMESTAMP}, #{price,jdbcType=BIGINT}, #{supplyPrice,jdbcType=BIGINT},
#{deposit,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{targetNum,jdbcType=INTEGER}, #{limitNum,jdbcType=INTEGER}, #{wxQrcode,jdbcType=VARCHAR},
#{state,jdbcType=INTEGER}, #{isValid,jdbcType=BIT}, #{isDeal,jdbcType=BIT}) #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER},
#{isValid,jdbcType=BIT}, #{isDeal,jdbcType=BIT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig"> <insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
...@@ -197,8 +201,14 @@ ...@@ -197,8 +201,14 @@
<if test="supplyPrice != null"> <if test="supplyPrice != null">
supply_price, supply_price,
</if> </if>
<if test="deposit != null"> <if test="targetNum != null">
deposit, target_num,
</if>
<if test="limitNum != null">
limit_num,
</if>
<if test="wxQrcode != null">
wx_qrcode,
</if> </if>
<if test="createTime != null"> <if test="createTime != null">
create_time, create_time,
...@@ -235,8 +245,14 @@ ...@@ -235,8 +245,14 @@
<if test="supplyPrice != null"> <if test="supplyPrice != null">
#{supplyPrice,jdbcType=BIGINT}, #{supplyPrice,jdbcType=BIGINT},
</if> </if>
<if test="deposit != null"> <if test="targetNum != null">
#{deposit,jdbcType=BIGINT}, #{targetNum,jdbcType=INTEGER},
</if>
<if test="limitNum != null">
#{limitNum,jdbcType=INTEGER},
</if>
<if test="wxQrcode != null">
#{wxQrcode,jdbcType=VARCHAR},
</if> </if>
<if test="createTime != null"> <if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP},
...@@ -285,8 +301,14 @@ ...@@ -285,8 +301,14 @@
<if test="record.supplyPrice != null"> <if test="record.supplyPrice != null">
supply_price = #{record.supplyPrice,jdbcType=BIGINT}, supply_price = #{record.supplyPrice,jdbcType=BIGINT},
</if> </if>
<if test="record.deposit != null"> <if test="record.targetNum != null">
deposit = #{record.deposit,jdbcType=BIGINT}, target_num = #{record.targetNum,jdbcType=INTEGER},
</if>
<if test="record.limitNum != null">
limit_num = #{record.limitNum,jdbcType=INTEGER},
</if>
<if test="record.wxQrcode != null">
wx_qrcode = #{record.wxQrcode,jdbcType=VARCHAR},
</if> </if>
<if test="record.createTime != null"> <if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
...@@ -317,7 +339,9 @@ ...@@ -317,7 +339,9 @@
end_time = #{record.endTime,jdbcType=TIMESTAMP}, end_time = #{record.endTime,jdbcType=TIMESTAMP},
price = #{record.price,jdbcType=BIGINT}, price = #{record.price,jdbcType=BIGINT},
supply_price = #{record.supplyPrice,jdbcType=BIGINT}, supply_price = #{record.supplyPrice,jdbcType=BIGINT},
deposit = #{record.deposit,jdbcType=BIGINT}, target_num = #{record.targetNum,jdbcType=INTEGER},
limit_num = #{record.limitNum,jdbcType=INTEGER},
wx_qrcode = #{record.wxQrcode,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
`state` = #{record.state,jdbcType=INTEGER}, `state` = #{record.state,jdbcType=INTEGER},
...@@ -348,8 +372,14 @@ ...@@ -348,8 +372,14 @@
<if test="supplyPrice != null"> <if test="supplyPrice != null">
supply_price = #{supplyPrice,jdbcType=BIGINT}, supply_price = #{supplyPrice,jdbcType=BIGINT},
</if> </if>
<if test="deposit != null"> <if test="targetNum != null">
deposit = #{deposit,jdbcType=BIGINT}, target_num = #{targetNum,jdbcType=INTEGER},
</if>
<if test="limitNum != null">
limit_num = #{limitNum,jdbcType=INTEGER},
</if>
<if test="wxQrcode != null">
wx_qrcode = #{wxQrcode,jdbcType=VARCHAR},
</if> </if>
<if test="createTime != null"> <if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
...@@ -377,7 +407,9 @@ ...@@ -377,7 +407,9 @@
end_time = #{endTime,jdbcType=TIMESTAMP}, end_time = #{endTime,jdbcType=TIMESTAMP},
price = #{price,jdbcType=BIGINT}, price = #{price,jdbcType=BIGINT},
supply_price = #{supplyPrice,jdbcType=BIGINT}, supply_price = #{supplyPrice,jdbcType=BIGINT},
deposit = #{deposit,jdbcType=BIGINT}, target_num = #{targetNum,jdbcType=INTEGER},
limit_num = #{limitNum,jdbcType=INTEGER},
wx_qrcode = #{wxQrcode,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
`state` = #{state,jdbcType=INTEGER}, `state` = #{state,jdbcType=INTEGER},
...@@ -412,14 +444,14 @@ ...@@ -412,14 +444,14 @@
select select
'true' as QUERYID, 'true' as QUERYID,
<choose> <choose>
<when test="selective != null and selective.length > 0"> <when test="selective != null and selective.length &gt; 0">
<foreach collection="selective" item="column" separator=","> <foreach collection="selective" item="column" separator=",">
${column.escapedColumnName} ${column.escapedColumnName}
</foreach> </foreach>
</when> </when>
<otherwise> <otherwise>
id, item_id, creator_id, start_time, end_time, price, supply_price, deposit, create_time, id, item_id, creator_id, start_time, end_time, price, supply_price, target_num, limit_num,
update_time, `state`, is_valid, is_deal wx_qrcode, create_time, update_time, `state`, is_valid, is_deal
</otherwise> </otherwise>
</choose> </choose>
from group_purchase_config from group_purchase_config
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper.distribution" <javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper.distribution"
targetProject="ch-dao/src/main/java"/> targetProject="ch-dao/src/main/java"/>
<table tableName="group_purchase_record" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <table tableName="group_purchase_config" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<generatedKey column="id" sqlStatement="Mysql" identity="true" /> <generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table> </table>
......
...@@ -91,6 +91,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -91,6 +91,11 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
List<GroupPurchaseConfig> groupPurchaseConfigs = groupPurchaseConfigDao.findList(dto); List<GroupPurchaseConfig> groupPurchaseConfigs = groupPurchaseConfigDao.findList(dto);
List<GroupPurchaseItemVo> groupPurchaseItemVos = new ArrayList<>(); List<GroupPurchaseItemVo> groupPurchaseItemVos = new ArrayList<>();
for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigs) { for (GroupPurchaseConfig groupPurchaseConfig : groupPurchaseConfigs) {
//检测是否结束
if (groupPurchaseConfig.getEndTime().before(now)) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.END.getCode());
continue;
}
SupplierItem supplierItem = supplierItemDao.findById(groupPurchaseConfig.getItemId()); SupplierItem supplierItem = supplierItemDao.findById(groupPurchaseConfig.getItemId());
GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo(); GroupPurchaseItemVo groupPurchaseItemVo = new GroupPurchaseItemVo();
groupPurchaseItemVo.setItemId(supplierItem.getId()); groupPurchaseItemVo.setItemId(supplierItem.getId());
...@@ -300,6 +305,15 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService { ...@@ -300,6 +305,15 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
} }
@Override
public Result payBalance(GroupPurchaseRecordRequestDto dto) {
try {
} catch (Exception e) {
logger.error("支付尾款失败 error : {}", e);
}
return Result.failed("支付尾款失败");
}
@Override @Override
@Transactional @Transactional
......
...@@ -2,12 +2,18 @@ package com.wwdz.ch.wx.impl.distribution; ...@@ -2,12 +2,18 @@ package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.consts.CommConsts; import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum; import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.entity.DeliveryNoticeMsg;
import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.IdUtils; import com.wwdz.ch.core.util.IdUtils;
import com.wwdz.ch.db.dao.CollectorWhiteListDao;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.distribution.IdentifyOrderDao; import com.wwdz.ch.db.dao.distribution.IdentifyOrderDao;
import com.wwdz.ch.db.dao.distribution.SupplierItemDao;
import com.wwdz.ch.db.domain.CollectorWhiteList;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.IdentifyOrder; import com.wwdz.ch.db.domain.distribution.IdentifyOrder;
import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.IdentifyOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.IdentifyOrderRequestDto;
import com.wwdz.ch.wx.service.distribution.IdentifyOrderService; import com.wwdz.ch.wx.service.distribution.IdentifyOrderService;
...@@ -30,26 +36,76 @@ public class IdentifyOrderServiceImpl implements IdentifyOrderService { ...@@ -30,26 +36,76 @@ public class IdentifyOrderServiceImpl implements IdentifyOrderService {
@Autowired @Autowired
DistributionOrderDao distributionOrderDao; DistributionOrderDao distributionOrderDao;
@Autowired
CollectorWhiteListDao collectorWhiteListDao;
@Autowired
SendMsgService sendMsgService;
@Autowired
SupplierItemDao supplierItemDao;
@Override @Override
public Result createIdentifyOrder(DistributionOrderRequestDto dto) { public Result createIdentifyOrder(DistributionOrderRequestDto dto) {
try { try {
Date now = new Date();
String distributionOrderId = dto.getDistributionOrderId(); String distributionOrderId = dto.getDistributionOrderId();
DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId); DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId);
long sellerId = distributionOrder.getSellerId();
CollectorWhiteList collectorWhiteList = collectorWhiteListDao.findById(sellerId);
String identifyOrderId = IdUtils.getOrderNumber(CommConsts.IDENTIFY_ORDER_PREFIX); String identifyOrderId = IdUtils.getOrderNumber(CommConsts.IDENTIFY_ORDER_PREFIX);
IdentifyOrder identifyOrder = new IdentifyOrder(); IdentifyOrder identifyOrder = new IdentifyOrder();
if (collectorWhiteList.getDeliveryAuth() == 1) {
//藏家可以自行发货
DistributionOrder orderUpdateDto = new DistributionOrder();
orderUpdateDto.setDistributionOrderId(distributionOrderId);
orderUpdateDto.setLogisticsCode(dto.getLogisticsCode());
orderUpdateDto.setWaybill(dto.getWaybill());
orderUpdateDto.setDeliveryTime(now);
orderUpdateDto.setState(DistributionEnum.DistributionOrderStateEnum.PRE_SIGNED.getCode());
distributionOrderDao.update(orderUpdateDto);
//发货成功,发送模板信息通知买家
try {
DeliveryNoticeMsg deliveryNoticeMsg = new DeliveryNoticeMsg();
deliveryNoticeMsg.setDistributionOrderId(distributionOrderId);
deliveryNoticeMsg.setWaybill(dto.getWaybill());
deliveryNoticeMsg.setAddress(distributionOrder.getReceiverName() + " " + distributionOrder.getReceiverPhone() + " " + distributionOrder.getReceiverAddress());
SupplierItem supplierItem = supplierItemDao.findById(distributionOrder.getItemId());
deliveryNoticeMsg.setItemName(supplierItem.getName());
deliveryNoticeMsg.setDeliveryTime(now);
//发送给买家
String buyerOpenId = sendMsgService.getOpenIdByUserId(distributionOrder.getBuyerId());
if (com.xxdxxs.utils.StringUtils.hasLength(buyerOpenId)) {
deliveryNoticeMsg.setShopState(0);
sendMsgService.sendDeliveryTempletMsg(buyerOpenId, deliveryNoticeMsg);
} else {
logger.info(">>>>> 买家openid为空, 发送消息失败 <<<<<");
}
} catch (Exception e) {
logger.info("鉴定通过发货通知发送失败:{}", e);
}
//设置鉴定单状态
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_SENDED.getCode());
identifyOrder.setOutLogisticsCode(dto.getLogisticsCode());
identifyOrder.setOutWaybill(dto.getWaybill());
identifyOrder.setApproved(1);
} else {
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_WAIT_RECEIVE.getCode());
}
identifyOrder.setDistributionOrderId(distributionOrderId); identifyOrder.setDistributionOrderId(distributionOrderId);
identifyOrder.setItemId(distributionOrder.getItemId()); identifyOrder.setItemId(distributionOrder.getItemId());
identifyOrder.setItemNum(distributionOrder.getItemNum()); identifyOrder.setItemNum(distributionOrder.getItemNum());
identifyOrder.setSellerId(distributionOrder.getSellerId()); identifyOrder.setSellerId(distributionOrder.getSellerId());
identifyOrder.setIdentifyOrderId(identifyOrderId); identifyOrder.setIdentifyOrderId(identifyOrderId);
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_WAIT_RECEIVE.getCode());
identifyOrder.setFromLogisticsCode(dto.getLogisticsCode()); identifyOrder.setFromLogisticsCode(dto.getLogisticsCode());
identifyOrder.setFromWaybill(dto.getWaybill()); identifyOrder.setFromWaybill(dto.getWaybill());
identifyOrder.setReturnName(dto.getReturnName()); identifyOrder.setReturnName(dto.getReturnName());
identifyOrder.setReturnAddress(dto.getReturnAddress()); identifyOrder.setReturnAddress(dto.getReturnAddress());
identifyOrder.setReturnPhone(dto.getReturnPhone()); identifyOrder.setReturnPhone(dto.getReturnPhone());
identifyOrder.setCreateTime(new Date()); identifyOrder.setCreateTime(now);
identifyOrder.setUpdateTime(new Date()); identifyOrder.setUpdateTime(now);
identifyOrderDao.insert(identifyOrder); identifyOrderDao.insert(identifyOrder);
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
......
package com.wwdz.ch.wx.job;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.GroupPurchaseEnum;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.distribution.DistributorProfitDao;
import com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao;
import com.wwdz.ch.db.dao.distribution.GroupPurchaseRecordDao;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig;
import com.wwdz.ch.db.domain.distribution.GroupPurchaseRecord;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class GroupPurchaseJob {
private static final Logger logger = LoggerFactory.getLogger(GroupPurchaseJob.class);
private final static String GROUPPURCHASE_KEY = "GROUPPURCHASE_KEY";
@Autowired
RedissonClient redissonClient;
@Autowired
GroupPurchaseConfigDao groupPurchaseConfigDao;
@Autowired
GroupPurchaseRecordDao groupPurchaseRecordDao;
@Autowired
DistributionOrderDao distributionOrderDao;
@Autowired
DistributorProfitDao distributorProfitDao;
/**
* 隔2分钟运行一次
*/
@Scheduled(fixedDelay = 1000 * 60 * 2)
public void execute() {
RLock lock = redissonClient.getLock(GROUPPURCHASE_KEY);
if (!lock.tryLock()) {
logger.warn("检测团购进度任务,当前服务实例获取锁成功: {} 获取锁失败,锁被占用不执行", Thread.currentThread().getId());
return;
}
logger.info(">>>>>>>>>>>>>>>>>>>>>>> 检测团购进度任务, 开始执行 <<<<<<<<<<<<<<<<<<<<<");
try {
//查询状态进行中,但实际已经结束的团购商品
checkProcessGroupPurchase();
} catch (Exception e) {
logger.error("检测团购进度任务 error:{}", e);
} finally {
if (lock != null && lock.isHeldByCurrentThread()) {
lock.unlock();
logger.info("======================== 线程id: {} , 检测团购进度任务结束, 释放锁成功 ========================", Thread.currentThread().getId());
}
}
}
public void checkProcessGroupPurchase() {
Date now = new Date();
GroupPurchaseConfigRequestDto groupPurchaseConfigRequestDto = new GroupPurchaseConfigRequestDto();
groupPurchaseConfigRequestDto.setState(GroupPurchaseEnum.ItemStateEnum.PROCESSING.getCode());
groupPurchaseConfigRequestDto.setQueryEndTime(now);
groupPurchaseConfigRequestDto.setLimit(100);
List<GroupPurchaseConfig> purchaseConfigList = groupPurchaseConfigDao.findList(groupPurchaseConfigRequestDto);
for (GroupPurchaseConfig groupPurchaseConfig : purchaseConfigList) {
groupPurchaseConfigDao.updateState(groupPurchaseConfig.getItemId(), GroupPurchaseEnum.ItemStateEnum.END.getCode());
}
}
//查询已经结束,还未处理订单的团购商品
public void checkEndGroupPurchase() {
GroupPurchaseConfigRequestDto groupPurchaseConfigRequestDto = new GroupPurchaseConfigRequestDto();
groupPurchaseConfigRequestDto.setState(GroupPurchaseEnum.ItemStateEnum.END.getCode());
groupPurchaseConfigRequestDto.setIsDeal(false);
List<GroupPurchaseConfig> purchaseConfigList = groupPurchaseConfigDao.findList(groupPurchaseConfigRequestDto);
for (GroupPurchaseConfig groupPurchaseConfig : purchaseConfigList) {
//判断是否成功成团,暂时默认true
boolean flag = true;
long itemId = groupPurchaseConfig.getItemId();
List<GroupPurchaseRecord> groupPurchaseRecordList = groupPurchaseRecordDao.findByItemId(itemId);
for (GroupPurchaseRecord groupPurchaseRecord : groupPurchaseRecordList) {
String distributionOrderId = groupPurchaseRecord.getDistributionOrderId();
if (flag) {
//更改订单的状态为待发货
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.PRE_SEND.getCode());
} else {
distributionOrderDao.updateState(distributionOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
}
}
groupPurchaseConfigDao.updateDealByPrimaryKey(groupPurchaseConfig.getId(), true);
logger.info(">>>>>>>> 商品id:{}, 团购结果:{}, 已处理完团购结束流程 <<<<<<<<<", itemId, flag);
}
}
}
...@@ -29,7 +29,7 @@ import java.util.stream.Collectors; ...@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
/** /**
* 拍卖结束自动创建订单 * 藏品上新通知
*/ */
@Component @Component
public class NewItemNoticeJob { public class NewItemNoticeJob {
......
...@@ -5,7 +5,6 @@ import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto; ...@@ -5,7 +5,6 @@ import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto; import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.wx.entity.GroupPurchaseInfo; import com.wwdz.ch.wx.entity.GroupPurchaseInfo;
import java.util.Map;
public interface GroupPurchaseService { public interface GroupPurchaseService {
...@@ -32,10 +31,8 @@ public interface GroupPurchaseService { ...@@ -32,10 +31,8 @@ public interface GroupPurchaseService {
*/ */
Result payDeposit(GroupPurchaseRecordRequestDto dto); Result payDeposit(GroupPurchaseRecordRequestDto dto);
/** /**
* 取消订单退定金 * 取消订单退定金
* @param dto * @param dto
* @return * @return
*/ */
...@@ -48,6 +45,13 @@ public interface GroupPurchaseService { ...@@ -48,6 +45,13 @@ public interface GroupPurchaseService {
*/ */
Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto); Result<GroupPurchaseInfo> checkGroupPurchase(GroupPurchaseRecordRequestDto dto);
/**
* 支付团购订单尾款
* @param dto
* @return
*/
Result payBalance(GroupPurchaseRecordRequestDto dto);
Result calculateProfit(GroupPurchaseRecordRequestDto dto); Result calculateProfit(GroupPurchaseRecordRequestDto dto);
......
package com.wwdz.ch.wx.web.distribution;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto;
import com.wwdz.ch.wx.service.distribution.GroupPurchaseService;
import com.xxdxxs.utils.StringUtils;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/wx/groupPurchase")
public class GroupPurchaseController {
private static final Logger logger = LoggerFactory.getLogger(GroupPurchaseController.class);
@Autowired
GroupPurchaseService groupPurchaseService;
@ApiOperation(value = "查询团购信息")
@PostMapping("/findList")
public Result findList(@RequestBody GroupPurchaseConfigRequestDto dto) {
logger.info("查询团购信息,请求参数:{}", JSON.toJSONString(dto));
return groupPurchaseService.findList(dto);
}
@ApiOperation(value = "查询团购商品详情")
@PostMapping("/findItemDetail")
public Result findItemDetail(@RequestBody GroupPurchaseConfigRequestDto dto) {
logger.info("查询团购商品详情,请求参数:{}", JSON.toJSONString(dto));
if (dto.getItemId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return groupPurchaseService.findItemDetail(dto);
}
@ApiOperation(value = "支付团购定金")
@PostMapping("/payDeposit")
public Result payDeposit(@RequestBody GroupPurchaseRecordRequestDto dto) {
logger.info("支付团购定金,请求参数:{}", JSON.toJSONString(dto));
if (!StringUtils.isAllNotEmpty(dto.getItemId(), dto.getUserId(), dto.getAmount())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return groupPurchaseService.payDeposit(dto);
}
@ApiOperation(value = "取消订单退定金")
@PostMapping("/cancelDeposit")
public Result cancelDeposit(@RequestBody GroupPurchaseRecordRequestDto dto) {
logger.info("取消订单退定金,请求参数:{}", JSON.toJSONString(dto));
if (!StringUtils.isAllNotEmpty(dto.getDistributionOrderId())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return groupPurchaseService.cancelDeposit(dto);
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment