diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java index f3850a4..d4ef17a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java @@ -18,7 +18,6 @@ public interface TbProductMapper { TbProduct selectById(Integer id); - List selectByIdIn(@Param("ids") String ids); List selectByIdInAndCheck(@Param("ids") String ids); List selectHot(@Param("shopId") String shopId,@Param("list") Set proIds); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbProduct.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbProduct.java index 6e2d092..54010b0 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbProduct.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbProduct.java @@ -1,20 +1,23 @@ package com.chaozhanggui.system.cashierservice.entity; +import com.chaozhanggui.system.cashierservice.entity.vo.ProductGroupVo; import lombok.Data; import org.springframework.data.annotation.Transient; -import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalTime; +import java.io.Serializable; +import java.util.List; /** * (TbProduct)实体类 * * @author ww - * @since 2024-11-18 14:41:53 + * @since 2024-11-19 15:52:20 */ @Data public class TbProduct implements Serializable { - private static final long serialVersionUID = -40921077034892720L; + private static final long serialVersionUID = 876918627328411456L; /** * id */ @@ -27,11 +30,6 @@ public class TbProduct implements Serializable { * 商品规格 */ private Integer specId; - /** - * 商户Id - */ - private String merchantId; - private String shopId; /** * 商品名称 @@ -42,7 +40,7 @@ public class TbProduct implements Serializable { */ private String shortTitle; /** - * 商品类型(属性):REAL- 实物商品 VIR---虚拟商品 + * 普通商品 normal 套餐商品 package 称重商品 weigh 团购券 coupon */ private String type; /** @@ -76,10 +74,6 @@ public class TbProduct implements Serializable { * 0--待审核 1审核通过 -1审核失败 -2违规下架 */ private Integer status; - /** - * 审核失败原因 - */ - private String failMsg; /** * 是否热销 */ @@ -104,14 +98,14 @@ public class TbProduct implements Serializable { * 是否暂停销售 */ private Integer isPauseSale; - /** - * 是否删除0不删1删除 - */ - private Integer isDelete; private Long createdAt; private Long updatedAt; + /** + * 0 固定套餐 1可选套餐 + */ + private Integer groupType; /** * 套餐内容 */ @@ -152,6 +146,42 @@ public class TbProduct implements Serializable { * 库存警戒线 */ private Integer warnLine; + /** + * 堂食 table 自取 dine 配送 delivery 快递 express + */ + private String showType; + /** + * 称重 价格/千克 + */ + private BigDecimal weight; + /** + * 是否允许临时改价 + */ + private Integer isTempPrice; + /** + * 日销售上限 + */ + private Integer dayLimit; + /** + * 每单销售上限 + */ + private Integer singleOrderLimit; + /** + * 每人销售上限 + */ + private Integer singlePeopleLimit; + /** + * 周 数组 周一,周二,周日 + */ + private String days; + /** + * 可用开始时间 + */ + private LocalTime startTime; + /** + * 可用结束时间 + */ + private LocalTime endTime; private String cartNumber="0"; @@ -163,6 +193,6 @@ public class TbProduct implements Serializable { @Transient private TbProductSkuResult productSkuResult; - + private List proGroupVo; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopShareRecord.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopShareRecord.java index 9dccda5..eeb361d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopShareRecord.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopShareRecord.java @@ -1,6 +1,7 @@ package com.chaozhanggui.system.cashierservice.entity; import com.chaozhanggui.system.cashierservice.entity.dto.BasePageDto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @@ -55,10 +56,11 @@ public class TbShopShareRecord extends BasePageDto implements Serializable { /** * 生效时间/获得奖励的时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date rewardTime; - + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; - + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 0629b37..0b6a90b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1299,6 +1299,9 @@ public class PayService { orderInfo.setPaidTime(System.currentTimeMillis()); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); + // 消费送积分 + tbMemberPointsService.consumeAwardPoints(Long.valueOf(orderInfo.getMemberId()), Long.valueOf(orderInfo.getId())); + JSONObject jsonObject = new JSONObject(); jsonObject.put("token", 0); jsonObject.put("type", "wxcreate"); @@ -1520,7 +1523,7 @@ public class PayService { //充值送积分 TbActivate activate = tbActivateMapper.selectByAmountScope(tbShopUser.getShopId(), memberIn.getAmount()); if (ObjectUtil.isNotNull(activate)) { - tbMemberPointsService.addPoints(Convert.toLong(tbShopUser.getId()), activate.getGiftAmount(), StrUtil.format("充值¥{}送{}积分", memberIn.getAmount(), activate.getGiftAmount()), null, memberIn.getOrderNo()); + tbMemberPointsService.addPoints(Convert.toLong(tbShopUser.getId()), activate.getGiftPoints(), StrUtil.format("充值¥{}送{}积分", memberIn.getAmount(), activate.getGiftPoints()), null, memberIn.getOrderNo()); } JSONObject jsonObject = new JSONObject(); @@ -1722,7 +1725,7 @@ public class PayService { //充值送积分 TbActivate activate = tbActivateMapper.selectByAmountScope(tbShopUser.getShopId(), memberIn.getAmount()); if (ObjectUtil.isNotNull(activate)) { - tbMemberPointsService.addPoints(Convert.toLong(tbShopUser.getId()), activate.getGiftAmount(), StrUtil.format("充值¥{}送{}积分", memberIn.getAmount(), activate.getGiftAmount()), null, memberIn.getOrderNo()); + tbMemberPointsService.addPoints(Convert.toLong(tbShopUser.getId()), activate.getGiftPoints(), StrUtil.format("充值¥{}送{}积分", memberIn.getAmount(), activate.getGiftPoints()), null, memberIn.getOrderNo()); } JSONObject jsonObject = new JSONObject(); jsonObject.put("shopId", memberIn.getShopId()); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index 8d5a312..0f00642 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -254,12 +254,17 @@ public class ProductService { }); groupList.sort(Comparator.comparingInt(TbProductGroup::getIsSale).reversed()); - //热销 - TbProductGroup hot = new TbProductGroup(); - hot.setName("热销"); - List hots = tbProductMapper.selectHot(shopId,proSets); - hot.setProducts(handleDate(hots,true,1,false, shopInfo)); - groupList.add(0, hot); +// //热销 +// TbProductGroup hot = new TbProductGroup(); +// hot.setName("热销"); +// List hots = null; +// if (proSets.isEmpty()) { +// hots = new ArrayList<>(); +// }else { +// hots = tbProductMapper.selectHot(shopId,proSets); +// } +// hot.setProducts(handleDate(hots,true,1,false, shopInfo)); +// groupList.add(0, hot); concurrentMap.put("productInfo", groupList); } @@ -472,6 +477,9 @@ public class ProductService { boolean isMemberPrice = shopInfo.getIsMemberPrice() != null && shopInfo.getIsMemberPrice() == 1; if (!CollectionUtils.isEmpty(products)) { products.parallelStream().forEach(it -> { + if("package".equals(it.getType())){ + it.setProGroupVo(JSONUtil.parseListTNewList(it.getGroupSnap(), ProductGroupVo.class)); + } TbShopUnit tbShopUnit = unitMapper.selectByPrimaryKey(Integer.valueOf(it.getUnitId())); it.setUnitSnap(tbShopUnit != null ? tbShopUnit.getName() : ""); if(check){ diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopShareRecordServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopShareRecordServiceImpl.java index 9defde2..b398702 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopShareRecordServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopShareRecordServiceImpl.java @@ -76,9 +76,10 @@ public class TbShopShareRecordServiceImpl implements TbShopShareRecordService { records = tbShopShareRecordMapper.queryIsNoSuccess(tbShopShareRecord); } for (TbShopShareRecord shareRecord : records) { + shareRecord.setInvitedName(userInfoMapper.selectNameByPrimaryKey(shareRecord.getInvitedId())); shareRecord.setBeInvitedName(userInfoMapper.selectNameByPrimaryKey(shareRecord.getBeInvitedId())); } - result.put("records", new PageInfo<>()); + result.put("records", new PageInfo<>(records)); return result; } diff --git a/src/main/resources/mapper/TbActivateInRecordMapper.xml b/src/main/resources/mapper/TbActivateInRecordMapper.xml index 0cb283a..86d0a64 100644 --- a/src/main/resources/mapper/TbActivateInRecordMapper.xml +++ b/src/main/resources/mapper/TbActivateInRecordMapper.xml @@ -207,14 +207,14 @@ id, vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, nu insert into tb_activate_in_record(vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, num, over_num, shop_id, source_act_id, source_flow_id, use_start_time, use_end_time, create_time, update_time, coupon_json,source) - values (#{vipUserId}, #{couponId}, #{name}, #{type}, #{proId}, #{fullAmount}, #{discountAmount}, #{num}, #{overNum}, #{shopId}, #{sourceActId}, #{sourceFlowId}, #{useStartTime}, #{useEndTime}, #{createTime}, #{updateTime}, #{couponJson} , #{source}) + values (#{vipUserId}, #{couponId}, #{name}, #{type}, #{proId}, #{fullAmount}, #{discountAmount}, #{num}, #{overNum}, #{shopId}, #{sourceActId}, #{sourceFlowId}, #{useStartTime}, #{useEndTime}, now(), #{updateTime}, #{couponJson} , #{source}) insert into tb_activate_in_record(vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, num, over_num, shop_id, source_act_id, source_flow_id, use_start_time, use_end_time, create_time, update_time, coupon_json, source) values - (#{entity.vipUserId}, #{entity.couponId}, #{entity.name}, #{entity.type}, #{entity.proId}, #{entity.fullAmount}, #{entity.discountAmount}, #{entity.num}, #{entity.overNum}, #{entity.shopId}, #{entity.sourceActId}, #{entity.sourceFlowId}, #{entity.useStartTime}, #{entity.useEndTime}, #{entity.createTime}, #{entity.updateTime}, #{entity.couponJson}, #{entity.source}) + (#{entity.vipUserId}, #{entity.couponId}, #{entity.name}, #{entity.type}, #{entity.proId}, #{entity.fullAmount}, #{entity.discountAmount}, #{entity.num}, #{entity.overNum}, #{entity.shopId}, #{entity.sourceActId}, #{entity.sourceFlowId}, #{entity.useStartTime}, #{entity.useEndTime},now(), #{entity.updateTime}, #{entity.couponJson}, #{entity.source}) @@ -279,7 +279,7 @@ id, vip_user_id, coupon_id, name, type, pro_id, full_amount, discount_amount, nu update tb_activate_in_record - set over_num = #{overNum} + set over_num = #{overNum} ,update_time = now() where id = #{id} diff --git a/src/main/resources/mapper/TbProductGroupMapper.xml b/src/main/resources/mapper/TbProductGroupMapper.xml index 4bd40bf..51bbae2 100644 --- a/src/main/resources/mapper/TbProductGroupMapper.xml +++ b/src/main/resources/mapper/TbProductGroupMapper.xml @@ -244,6 +244,7 @@ FROM tb_product_group where shop_id=#{shopId} and is_show=1 + and product_ids != '[]' and id = #{groupId} diff --git a/src/main/resources/mapper/TbProductMapper.xml b/src/main/resources/mapper/TbProductMapper.xml index 57f74ee..a65bd38 100644 --- a/src/main/resources/mapper/TbProductMapper.xml +++ b/src/main/resources/mapper/TbProductMapper.xml @@ -6,28 +6,28 @@ - - - - + + - - + + + + @@ -35,14 +35,26 @@ + + + + + + + + + id - , category_id, spec_id, merchant_id, shop_id, name, short_title, type, pack_fee, low_price, low_member_price, - unit_id, cover_img, images, sort, status, fail_msg, is_hot, type_enum, is_del, is_stock, is_pause_sale, is_delete, - created_at, updated_at, group_snap, spec_info, select_spec, - spec_table_headers, group_category_id, real_sales_number, stock_number, is_grounding, is_refund_stock, warn_line + , category_id, spec_id, shop_id, name, short_title, type, pack_fee, + low_price, unit_id, cover_img, images, sort, status, fail_msg, is_hot, type_enum, + is_del, is_stock, is_pause_sale, created_at, updated_at, group_type, group_snap, + spec_info, select_spec, spec_table_headers, group_category_id, real_sales_number, + stock_number, is_grounding, is_refund_stock, warn_line, show_type, weight, is_temp_price, + day_limit, single_order_limit, single_people_limit, days, start_time, end_time + - @@ -77,9 +80,8 @@ LEFT JOIN tb_product_sku sku ON tb.id = sku.product_id JOIN (SELECT product_id ,SUM(real_sales_number) as realSalesNumber FROM tb_product_sku - WHERE shop_id = #{shopId} - and is_del = 0 - AND product_id IN + WHERE + shop_id = #{shopId} and is_del = 0 AND product_id IN #{item} @@ -87,7 +89,8 @@ ORDER BY realSalesNumber DESC LIMIT 3) AS top_products ON tb.id = top_products.product_id where tb.status = 1 - and tb.type_enum != 'group' + and tb.type != 'coupon' and tb.is_del = 0 + and tb.days LIKE concat('%',DAYNAME(CURRENT_DATE),'%') and tb.start_time <= CURRENT_TIMESTAMP and tb.end_time >= CURRENT_TIMESTAMP and tb.is_grounding = 1 group by tb.id order by stockNumber desc @@ -102,17 +105,12 @@ and tb.shop_id = #{shopId} and tb.status = 1 and tb.is_grounding = 1 - and tb.type_enum != 'group' + and tb.type != 'coupon' and tb.type != 'weigh' and tb.is_del = 0 + and tb.days LIKE concat('%',DAYNAME(CURRENT_DATE),'%') and tb.start_time <= CURRENT_TIMESTAMP and tb.end_time >= CURRENT_TIMESTAMP group by tb.id order by tb.sort asc - - - - - -