Merge remote-tracking branch 'origin/master'
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.ShopGoodsRelation; |
| | | import com.doumee.service.business.ShopGoodsRelationService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/12/15 09:39 |
| | | */ |
| | | @Api(tags = "ç»éåä¾è´§ä»·ä¿¡æ¯") |
| | | @RestController |
| | | @RequestMapping("/business/shopGoodsRelation") |
| | | public class ShopGoodsRelationController extends BaseController { |
| | | |
| | | @Autowired |
| | | private ShopGoodsRelationService shopGoodsRelationService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:shopgoodsrelation:create") |
| | | public ApiResponse create(@RequestBody ShopGoodsRelation shopGoodsRelation) { |
| | | return ApiResponse.success(shopGoodsRelationService.create(shopGoodsRelation)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:shopgoodsrelation:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | shopGoodsRelationService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:shopgoodsrelation:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | shopGoodsRelationService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:shopgoodsrelation:update") |
| | | public ApiResponse updateById(@RequestBody ShopGoodsRelation shopGoodsRelation) { |
| | | shopGoodsRelationService.updateById(shopGoodsRelation); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:shopgoodsrelation:query") |
| | | public ApiResponse<PageData<ShopGoodsRelation>> findPage (@RequestBody PageWrap<ShopGoodsRelation> pageWrap) { |
| | | return ApiResponse.success(shopGoodsRelationService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:shopgoodsrelation:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<ShopGoodsRelation> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(ShopGoodsRelation.class).export(shopGoodsRelationService.findPage(pageWrap).getRecords(), "ç»éåä¾è´§ä»·ä¿¡æ¯", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @RequiresPermissions("business:shopgoodsrelation:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(shopGoodsRelationService.findById(id)); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:shopgoodsrelation:create', 'æ°å»ºç»éåä¾è´§ä»·ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:shopgoodsrelation:delete', 'å é¤ç»éåä¾è´§ä»·ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:shopgoodsrelation:update', 'ä¿®æ¹ç»éåä¾è´§ä»·ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:shopgoodsrelation:query', 'æ¥è¯¢ç»éåä¾è´§ä»·ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:shopgoodsrelation:exportExcel', '导åºç»éåä¾è´§ä»·ä¿¡æ¯(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | |
| | |
| | | public enum ResponseStatus { |
| | | // 400å¼å¤´è¡¨ç¤ºåæ°é误 |
| | | BAD_REQUEST(4000, "åæ°é误"), |
| | | DATA_EMPTY(4001, "æ¾ä¸å°ç®æ æ°æ®"), |
| | | DATA_EMPTY(4001, "æ¾ä¸å°ç®æ æ°æ®ææ°æ®å·²å é¤"), |
| | | DATA_EXISTS(4002, "è®°å½å·²åå¨"), |
| | | PWD_INCORRECT(4003, "å¯ç 䏿£ç¡®"), |
| | | VERIFICATION_CODE_INCORRECT(4004, "éªè¯ç 䏿£ç¡®æå·²è¿æ"), |
| | |
| | | public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD"; |
| | | public static final String ACCESS_TOKEN = "ACCESS_TOKEN"; |
| | | |
| | | public static final String MINIMUM_AVAILABLE_INTEGRAL = "MINIMUM_AVAILABLE_INTEGRAL";//æä½å¯ç¨ç§¯åé
ç½® |
| | | public static final String SHOP_CONFIG = "SHOP_CONFIG"; |
| | | public static final String INTEGRAL_EXCHANGE_CASH_RATA = "INTEGRAL_EXCHANGE_CASH_RATA"; //积å-ç°éå
æ¢æ¯ä¾ï¼XXXç§¯åæµæ£1å
ï¼ |
| | | |
| | | |
| | | public static final String CASH_EXCHANGE_INTEGRAL_RATA = "CASH_EXCHANGE_INTEGRAL_RATA";//ç°é-积åå
æ¢æ¯ä¾ï¼1å
å¯å¾å°XXX积åï¼ |
| | | |
| | | |
| | | public static final String INITIAL_ROLE = "INITIAL_ROLE"; |
| | | |
| | | public static final String PLAT_ADDR="PLAT_ADDR"; |
| | |
| | | */ |
| | | public enum OrderStatus{ |
| | | WAIT_PAY(0, "å¾
æ¯ä»", "å¾
æ¯ä»"), |
| | | PAY_DONE(1, "å¾
åè´§", "å·²æ¯ä»å¾
åè´§"), |
| | | PAY_DONE(1, "å¾
åè´§/å¾
èªæ", "å·²æ¯ä»å¾
åè´§/å¾
èªæ"), |
| | | WAIT_RECEIVE(2, "å¾
æ¶è´§", "å·²åè´§å¾
æ¶è´§"), |
| | | DONE(3, "交æå®æ", "交æå®æ"), |
| | | CLOSE(4, "å·²å
³é", "å·²å
³é"), |
| | |
| | | EXCHANGE_CARD(11,"å¡å
å¼","å¡å
å¼",0), |
| | | SYSTEM_RECHARGE(12,"å¹³å°å
å¼","å¹³å°å
å¼",0), |
| | | SYSTEM_DEDUCT(13,"平尿£æ¬¾","平尿£æ¬¾",0), |
| | | SHOP_ORDER_CANCEL(14,"ä½é¢æµæ£ååéè¿","ä½é¢æµæ£ååéè¿",0) |
| | | SHOP_ORDER_CANCEL(14,"ä½é¢æµæ£ååéè¿","ä½é¢æµæ£ååéè¿",0), |
| | | SHOP_ORDER_SETTLEMENT(15,"ä¸åç»ç®éé¢","ä¸åç»ç®éé¢",0), //ç»éåä¸åç»ç®éé¢ |
| | | SHOP_ORDER_CANCEL_SETTLEMENT(16,"åæ¶è®¢åç»ç®éé¢è¿è¿","åæ¶è®¢åç»ç®éé¢è¿è¿",0), //åæ¶è®¢åç»ç®éé¢è¿è¿ |
| | | SHOP_YEAR_SETTLEMENT(17,"年度ç»ç®","年度ç»ç®",0) //年度ç»ç® |
| | | ; |
| | | // æååé |
| | | private String name; |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | public static String getRandomNumber(){ |
| | | Random random = new Random(); |
| | | long randomNumber = (long)(random.nextDouble() * 90000000000L) + 100000000000L; |
| | | return randomNumber +""; |
| | | } |
| | | |
| | | |
| | | public enum INTEGRAL_TYPE{ |
| | | ORDER_PAY(0, "è®¢åæ¶è", -1), |
| | | ORDER_CANCEL(1, "订ååæ¶è¿è¿", 1), |
| | | ; |
| | | // æååé |
| | | private String name; |
| | | private int key; |
| | | private int type;// æè¿° |
| | | |
| | | // æé æ¹æ³ |
| | | INTEGRAL_TYPE(int key, String name, int type) { |
| | | this.name = name; |
| | | this.key = key; |
| | | this.type = type; |
| | | } |
| | | |
| | | // æ®éæ¹æ³ |
| | | public static String getName(int index) { |
| | | for (INTEGRAL_TYPE c : INTEGRAL_TYPE.values()) { |
| | | if (c.getKey() == index) { |
| | | return c.name; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | // get set æ¹æ³ |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public int getKey() { |
| | | return key; |
| | | } |
| | | |
| | | public void setKey(int key) { |
| | | this.key = key; |
| | | } |
| | | |
| | | public int getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(int type) { |
| | | this.type = type; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | */ |
| | | public static String getCurrDateTime() { |
| | | Timestamp date = new Timestamp(System.currentTimeMillis()); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | return formatter.format(date); |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.utils; |
| | | |
| | | import org.springframework.beans.BeanUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.function.Supplier; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2025/12/12 9:31 |
| | | */ |
| | | public class ListUtil { |
| | | |
| | | public static <S, T> List<T> copyProperties(List<S> sources, Supplier<T> target) { |
| | | return sources.stream().map(source -> { |
| | | T t = target.get(); |
| | | BeanUtils.copyProperties(source, t); |
| | | return t; |
| | | }).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public static <S, T> List<T> copyListProperties(List<S> sources, Class<T> target) { |
| | | return sources.stream().map(source -> { |
| | | T t; |
| | | try { |
| | | t = target.newInstance(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return null; |
| | | } |
| | | BeanUtils.copyProperties(source, t); |
| | | return t; |
| | | }).collect(Collectors.toList()); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.business.model.Goods; |
| | | import com.doumee.dao.web.request.goods.GoodsRequest; |
| | | import com.doumee.dao.web.response.goods.GoodsInfoResponse; |
| | | import com.github.yulichang.base.mapper.MPJJoinMapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | | public interface GoodsMapper extends BaseMapper<Goods> { |
| | | public interface GoodsMapper extends MPJJoinMapper<Goods> { |
| | | |
| | | |
| | | |
| | | @Select(" select g.* , " + |
| | | "(( select count(1) from goodsorder_detail gd inner join goods_sku gs on gd.GOODS_SKU_ID = gs.id where gs.GOODS_ID = g.`id` )+ g.SALENUM) as realSaleNum " + |
| | | "(( select count(1) from goodsorder_detail gd inner join goods_sku gs on gd.GOODS_SKU_ID = gs.id where gs.GOODS_ID = g.`id` )+ g.SALENUM) as realSaleNum ," + |
| | | " ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = g.id ),0) as minPrice " + |
| | | " from goods g " + |
| | | " ${ew.customSqlSegment} ") |
| | | IPage<GoodsInfoResponse> goodsPage(IPage<GoodsRequest> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | @Select(" select g.* , ( select count(1) from goodsorder_detail gd inner join goods_sku gs on gd.GOODS_SKU_ID = gs.id where gs.GOODS_ID = g.id ) as realSaleNum " + |
| | | @Select(" select g.* , " + |
| | | "(( select count(1) from goodsorder_detail gd inner join goods_sku gs on gd.GOODS_SKU_ID = gs.id where gs.GOODS_ID = g.`id` )+ g.SALENUM) as realSaleNum ," + |
| | | " ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = g.id ),0) as minPrice " + |
| | | " from goods g " + |
| | | " where g.ISDELETED = 0 and g.id = #{id} ") |
| | | GoodsInfoResponse getGoodsInfo(@Param("id") Integer id); |
| | |
| | | import com.doumee.dao.web.response.OrderCommentResponse; |
| | | import com.doumee.dao.web.response.OrderDetailResponse; |
| | | import com.doumee.dao.web.response.goods.MemberOrderDetailResponse; |
| | | import com.github.yulichang.base.mapper.MPJJoinMapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | | public interface GoodsorderDetailMapper extends BaseMapper<GoodsorderDetail> { |
| | | public interface GoodsorderDetailMapper extends MPJJoinMapper<GoodsorderDetail> { |
| | | |
| | | |
| | | @Select(" select o.* , g.STATUS , g.PRICE as titlePrice " + |
| | |
| | | |
| | | @Select(" select g.CODE AS code , g.id as orderId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," + |
| | | " g.COUPON_PRICE as couponPrice , g.price , g.LINKNAME as linkName , g.LINKPHONE as linkPhone , g.LINKADDR as linkAddress , " + |
| | | "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " + |
| | | " , g.MEMBER_INFO " + |
| | | " from goodsorder g " + |
| | | "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.INTEGRAL_PRICE as integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " + |
| | | " , g.MEMBER_INFO , g.RECEIVE_TYPE as receiveType, s.name as shopName ,s.id as shopId ,g.exchange_code as exchangeCode " + |
| | | " from goodsorder g left join shop s on g.PICK_UP_SHOP_ID = s.id " + |
| | | " ${ew.customSqlSegment} ") |
| | | IPage<MemberOrderResponse> goodsOrderPage(IPage<MemberOrderResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | @Select(" select g.CODE AS code , g.id as orderId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," + |
| | | " g.COUPON_PRICE as couponPrice , g.price , g.LINKNAME as linkName , g.LINKPHONE as linkPhone , g.LINKADDR as linkAddress , " + |
| | | "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " + |
| | | " , g.MEMBER_INFO " + |
| | | " from goodsorder g " + |
| | | "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.INTEGRAL_PRICE as integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " + |
| | | " , g.MEMBER_INFO , g.RECEIVE_TYPE as receiveType, s.name as shopName ,s.id as shopId,g.exchange_code as exchangeCode " + |
| | | " from goodsorder g left join shop s on g.PICK_UP_SHOP_ID = s.id " + |
| | | " where g.id = #{id} ") |
| | | MemberOrderResponse goodsOrderDetail(@Param("id") Integer id); |
| | | |
| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Constants; |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.response.MemberCouponResponse; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | |
| | | @Select(" select m.* " + |
| | | " from member_coupon m " + |
| | | " ${ew.customSqlSegment} ") |
| | | IPage<CouponDTO> memberCouponPage(IPage<CouponDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | IPage<MemberCouponResponse> memberCouponPage(IPage<CouponDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.ShopGoodsRelation; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/12/15 09:39 |
| | | */ |
| | | public interface ShopGoodsRelationMapper extends BaseMapper<ShopGoodsRelation> { |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | |
| | | */ |
| | | public interface ShopMapper extends BaseMapper<Shop> { |
| | | |
| | | |
| | | /** |
| | | * æ·»å 积å |
| | | * @param memberId |
| | | * @param integral |
| | | */ |
| | | @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) + #{integral} , TOTAL_INTEGRAL = ifNull(TOTAL_INTEGRAL,0) + #{titleIntegral} , EDIT_DATE = now() where id = #{shopId} ") |
| | | void addIntegral(@Param("shopId") Integer shopId , @Param("integral") BigDecimal integral , @Param("titleIntegral")BigDecimal titleIntegral); |
| | | |
| | | /** |
| | | * åå°ç§¯å |
| | | * @param memberId |
| | | * @param integral |
| | | */ |
| | | @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) - #{integral} , EDIT_DATE = now() where id = #{shopId} ") |
| | | void subtractIntegral(@Param("shopId") Integer shopId , @Param("integral")BigDecimal integral); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | @ExcelColumn(name="ä¸çº§åç±»") |
| | | private String parentCategoryId; |
| | | |
| | | @ApiModelProperty(value = "æµæ£æ¯ä¾ï¼0.1%~100%ï¼", example = "1") |
| | | @ApiModelProperty(value = "æµæ£æ¯ä¾ï¼0.1%~100%ï¼", example = "1", hidden = true) |
| | | @TableField(exist = false) |
| | | private BigDecimal deductRata; |
| | | |
| | | |
| | | @ApiModelProperty(value = "skuéé", hidden = true) |
| | | @TableField(exist = false) |
| | | private BigDecimal weight; |
| | | |
| | | @ApiModelProperty(value = "skuéé¢", hidden = true) |
| | | @TableField(exist = false) |
| | | private BigDecimal skuPrice; |
| | |
| | | @TableField(exist = false) |
| | | private Integer skuId; |
| | | |
| | | @ApiModelProperty(value = "skuå¾ç", hidden = true) |
| | | @TableField(exist = false) |
| | | private String skuImg; |
| | | |
| | | @ApiModelProperty(value = "ååè½®æå¾", example = "1") |
| | | @TableField(exist = false) |
| | | private List<Multifile> fileList; |
| | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import java.util.Date; |
| | |
| | | @ApiModelProperty(value = "æ¶è´§å°å") |
| | | @ExcelColumn(name="è系人å°å" ,index =8 ,width = 10) |
| | | private String linkaddr; |
| | | |
| | | @ApiModelProperty(value = "è®¢åæ»ä»·æ ¼", example = "1") |
| | | private BigDecimal totalPrice; |
| | | |
| | | @ApiModelProperty(value = "订åå®ä»ä»·æ ¼ï¼å
/åè±ï¼", example = "1") |
| | | @ExcelColumn(name="订åå®ä»ä»·æ ¼",index =9,width = 10) |
| | |
| | | @ApiModelProperty(value = "伿 å¸ç¼ç ï¼å
³èMEMBER_COUPON表ï¼", example = "1") |
| | | private Integer couponId; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç§¯åæµæ£éé¢", example = "1") |
| | | private BigDecimal integralPrice; |
| | | |
| | | @ApiModelProperty(value = "æ¶è积åå¼", example = "1") |
| | | private BigDecimal useIntegral; |
| | | |
| | | |
| | | @ApiModelProperty(value = "åå¡è®¡å订åå½¢å¼ 0æ°å¢ 1å»¶é¿", example = "1") |
| | | private Integer planOrderType; |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§ç±»åï¼0=å¿«éé
éï¼1=é¨åºèªæï¼", example = "1") |
| | | private Integer receiveType; |
| | | |
| | | @ApiModelProperty(value = "æè´§åéºä¸»é® shopï¼id", example = "1") |
| | | private Integer pickUpShopId; |
| | | |
| | | @ApiModelProperty(value = "åéåéºä¸»é® shopï¼id", example = "1") |
| | | private Integer distributionShopId; |
| | | |
| | | @ApiModelProperty(value = "æ ¸éç ", example = "1") |
| | | private String exchangeCode; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°å") |
| | | @TableField(exist = false) |
| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "ååæ°é", example = "1") |
| | | @ExcelColumn(name="ååæ°é") |
| | | private Integer goodsNum; |
| | | |
| | | @ApiModelProperty(value = "ååéé", example = "1") |
| | | @ExcelColumn(name="ååéé") |
| | | private BigDecimal goodsWeight; |
| | | |
| | | @ApiModelProperty(value = "伿 叿µæ£éé¢", example = "1") |
| | | private BigDecimal couponDeduct; |
| | | |
| | | @ApiModelProperty(value = "ç§¯åæµæ£éé¢", example = "1") |
| | | private BigDecimal integralDeduct; |
| | | |
| | | @ApiModelProperty(value = "ç»éåç»ç®éé¢", example = "1") |
| | | private BigDecimal shopSettlement; |
| | | |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "ååæ ç¾åç§°") |
| | | @TableField(exist = false) |
| | | private String lablesName; |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.utils.Constants; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | |
| | | @ApiModelProperty(value = "交æåå·") |
| | | private String orderCode; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ç±»åï¼0=æ¶è´¹è
ï¼1=ç»éåï¼") |
| | | private Integer userType; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°") |
| | | @ExcelColumn(name="ç¨æ·",index =1,width = 10) |
| | |
| | | private String strObjType; |
| | | |
| | | |
| | | |
| | | // public static Integral createIntegral(Integer memberId, Constants.INTEGRAL_TYPE integralType,Integer objId){ |
| | | // Integral integral = new Integral(); |
| | | // integral.setCreator(memberId); |
| | | // integral.setCreateDate(new Date()); |
| | | // integral.setIsdeleted(Constants.ZERO); |
| | | // integral.setMemberId(memberId); |
| | | // integral.setTitle(integralType.getName()); |
| | | // integral.setObjId(objId); |
| | | // integral.setObjType(integralType.getKey()); |
| | | // integral.setType(integralType.getType()); |
| | | // |
| | | // return integral; |
| | | // } |
| | | |
| | | } |
| | |
| | | @ExcelColumn(name="sharingCode") |
| | | private String sharingCode; |
| | | |
| | | @ApiModelProperty(value = "ç»å®åéºä¸»é® shop:id åé人") |
| | | private Integer bindShopId; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°åå
¨è·¯å¾") |
| | | @TableField(exist = false) |
| | | private String imgFullUrl; |
| | |
| | | |
| | | @ApiModelProperty(value = "ä½¿ç¨æ¶é´") |
| | | @ExcelColumn(name="ä½¿ç¨æ¶é´") |
| | | |
| | | private Date useDate; |
| | | |
| | | @ApiModelProperty(value = "使ç¨ç§¯åå¥å±æ°é", example = "1") |
| | |
| | | @ExcelColumn(name="coupon表id") |
| | | private Integer couponId; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ç±»åï¼0=满åå¸ï¼1=ææ£å¸ï¼") |
| | | private Integer couponType; |
| | | |
| | | @ApiModelProperty(value = "éç¨ç±»åï¼0=å
¨åº;1=åç±»ï¼2=æå®åå") |
| | | private Integer applyType; |
| | | |
| | | @ApiModelProperty(value = "éç¨å
³è对象信æ¯ä¸»é®") |
| | | private String applyIds; |
| | | |
| | | @ApiModelProperty(value = "ææ£å·æ»¡åä¸ééé¢") |
| | | private BigDecimal maxPrice; |
| | | |
| | | @ApiModelProperty(value = "æµç§°") |
| | | @TableField(exist = false) |
| | | private String nikeName; |
| | | |
| | | @ApiModelProperty(value = "å®é
éç¨æ¶éé¢") |
| | | @TableField(exist = false) |
| | | private BigDecimal validAmount; |
| | | |
| | | } |
| | |
| | | @TableField(exist = false) |
| | | private BigDecimal score; |
| | | |
| | | @ApiModelProperty(value = "è·ç¦»") |
| | | @TableField(exist = false) |
| | | private BigDecimal distance; |
| | | |
| | | |
| | | @ApiModelProperty(value = "åºéºè®¿é®æ°æ®ï¼ä¸»é¡µæ»è®¿é®é") |
| | | @TableField(exist = false) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import java.util.Date; |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * ç»éåä¾è´§ä»·ä¿¡æ¯ |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/12/15 09:39 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç»éåä¾è´§ä»·ä¿¡æ¯") |
| | | @TableName("`shop_goods_relation`") |
| | | public class ShopGoodsRelation { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "忷䏻é®ï¼shop主é®ï¼", example = "1") |
| | | @ExcelColumn(name="忷䏻é®ï¼shop主é®ï¼") |
| | | private Integer shopId; |
| | | |
| | | @ApiModelProperty(value = "ååSKU IDï¼goods_sku主é®ï¼", example = "1") |
| | | @ExcelColumn(name="ååSKU IDï¼goods_sku主é®ï¼") |
| | | private Integer goodsSkuId; |
| | | |
| | | @ApiModelProperty(value = "ä¾è´§ä»·", example = "1") |
| | | @ExcelColumn(name="ä¾è´§ä»·") |
| | | private BigDecimal price; |
| | | |
| | | @ApiModelProperty(value = "å¯ç¨0 ç¦ç¨1", example = "1") |
| | | @ExcelColumn(name="å¯ç¨0 ç¦ç¨1") |
| | | private Integer status; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ç¶æ") |
| | | private String couponStatus; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ç±»åï¼0=满åå¸ï¼1=ææ£å¸ï¼") |
| | | private Integer couponType; |
| | | |
| | | @ApiModelProperty(value = "éç¨ç±»åï¼0=å
¨åº;1=åç±»ï¼2=æå®åå") |
| | | private Integer applyType; |
| | | |
| | | @ApiModelProperty(value = "éç¨å
³è对象信æ¯ä¸»é®") |
| | | private String applyIds; |
| | | |
| | | @ApiModelProperty(value = "ææ£å·æ»¡åä¸ééé¢") |
| | | private BigDecimal maxPrice; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "æ¶æ¯ç±»å 0æ¶å
¥ 1æ¯åº") |
| | | private Integer dealType; |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("订ååæ¶è¯·æ±ç±»") |
| | | public class OrderCancelRequest { |
| | | |
| | | @ApiModelProperty(value = "订å主é®",example = "0") |
| | | private Integer orderId; |
| | | |
| | | @ApiModelProperty(value = "åæ¶åå ") |
| | | private String cancelInfo; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",hidden = true) |
| | | private Integer memberId; |
| | | |
| | | } |
| | |
| | | private BigDecimal deductionBalance; |
| | | |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Integer memberId ; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "è´ç©è½¦åå主é®") |
| | | private Integer shopCartId; |
| | | |
| | | @ApiModelProperty(value = "伿 叿µæ£éé¢",hidden = true) |
| | | private BigDecimal deductAmount; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/24 15:32 |
| | | */ |
| | | @Data |
| | | @ApiModel("ååä¸å请æ±ç±»") |
| | | public class ShopOrderPayRequest { |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§å°å主é®") |
| | | private Integer addressId; |
| | | |
| | | @NotNull(message = "è®¢åæ»éé¢ ä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "è®¢åæ»éé¢") |
| | | private BigDecimal titlePrice; |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§ç±»åï¼0=å¿«éé
éï¼1=é¨åºèªæï¼") |
| | | private Integer receiveType; |
| | | |
| | | @ApiModelProperty(value = "èªæåæ·ä¸»é®") |
| | | private Integer shopId; |
| | | |
| | | @ApiModelProperty(value = "æ¯ä»åå详ç»") |
| | | List<PayDetailRequest> payDetailRequestList; |
| | | |
| | | @ApiModelProperty(value = "订å夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Integer memberId ; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("ææºæ¢ç»è¯·æ±ç±»") |
| | | public class UpdMobileRequest { |
| | | |
| | | @ApiModelProperty(value = "éªè¯ç ",example = "0") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",hidden = true) |
| | | private Integer memberId; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "订å主é®") |
| | | private Integer orderId; |
| | | |
| | | @ApiModelProperty(value = "è®¢åæ ¸éç ") |
| | | private String exchangeCode; |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§å°å主é®ï¼æ´æ°è®¢åæ¶è´§å°å使ç¨ï¼") |
| | | private Integer addressId; |
| | | |
| | |
| | | @ApiModelProperty(value = "订åè¯ä»·ä¿¡æ¯ï¼è®¢åè¯ä»·ä¸å¡ä½¿ç¨ï¼") |
| | | private String commentInfo; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Integer memberId; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "åååç§°") |
| | | private String goodsName; |
| | | |
| | | @ApiModelProperty(value = "éç¨åç lables 14") |
| | | private Integer applicableBrandId; |
| | | |
| | | @ApiModelProperty(value = "éç¨ç³»å lables 15") |
| | | private Integer seriesBrandId; |
| | | |
| | | @ApiModelProperty(value = "åè´¨ä¸åºä¸»é®") |
| | | private Integer qualityId; |
| | | |
| | | @ApiModelProperty(value = "æåºæ¹å¼ï¼0=综åæåºï¼1=ééç±ä½å°é« ï¼2=ä»·æ ¼ç±ä½å°é«ï¼3=ééç±é«å°ä½ï¼4=ä»·æ ¼ç±é«å°ä½") |
| | | private Integer sortInfo; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ä¸çº§åç±»ç¼ç ") |
| | | private Integer parentCategoryId; |
| | | |
| | |
| | | @ApiModelProperty(value = "订åç±»å 0å¹³å°åå 1åè±åå", example = "1") |
| | | private Integer orderType; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ", example = "1") |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ¯ä» 1å¾
åè´§/èªæ 2å¾
æ¶è´§ 3交æå®æ", example = "1") |
| | | private Integer orderStatus; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.dao.business.model.Member; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.apache.commons.math3.analysis.function.Log; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2025/12/15 14:46 |
| | | */ |
| | | @Data |
| | | public class HomeInfoResponse { |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¿¡æ¯") |
| | | private Member member; |
| | | |
| | | @ApiModelProperty(value = "è´ç©è½¦ååç§ç±»") |
| | | private Long cartTypeNum; |
| | | |
| | | @ApiModelProperty(value = "伿 叿°é") |
| | | private Long couponNum; |
| | | |
| | | @ApiModelProperty(value = "æ¶èæ°é") |
| | | private Long collectNum; |
| | | |
| | | @ApiModelProperty(value = "å¾
仿¬¾æ°é") |
| | | private Long waitPayNum; |
| | | |
| | | @ApiModelProperty(value = "å¾
æ¶è´§æ°é") |
| | | private Long waitReceiveNum; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel("ç¨æ·ä¼æ å¸ä¿¡æ¯") |
| | | public class MemberCouponResponse { |
| | | |
| | | |
| | | @ApiModelProperty(value = "id") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸åç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "åå®¶ç¼ç ï¼å
³èshop表ï¼") |
| | | private Integer shopId; |
| | | |
| | | @ApiModelProperty(value = "ç±»å0å家伿 å¸ 1å¹³å°ä¼æ å¸ ") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "满é¢ï¼å
ï¼") |
| | | private BigDecimal limitPrice; |
| | | |
| | | @ApiModelProperty(value = "伿 éé¢ï¼å
ï¼") |
| | | private BigDecimal price; |
| | | |
| | | @ApiModelProperty(value = "å¼å§æ¶é´") |
| | | private Date startDate; |
| | | |
| | | @ApiModelProperty(value = "ç»ææ¶é´") |
| | | private Date endDate; |
| | | |
| | | @ApiModelProperty(value = "é¢å忿天æ°") |
| | | private Integer validDays; |
| | | |
| | | @ApiModelProperty(value = "é¢åæ¹å¼ 0é¢å 1å
æ¢") |
| | | private Integer getMethod; |
| | | |
| | | @ApiModelProperty(value = "å
æ¢æéåè±éé¢") |
| | | private BigDecimal integral; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¯ç¨ 1ç¦ç¨") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "åæ¾æ»é") |
| | | private Integer num; |
| | | |
| | | @ApiModelProperty(value = "é¢åæ»é") |
| | | private Integer drawNum; |
| | | |
| | | @ApiModelProperty(value = "说æ") |
| | | private String info; |
| | | |
| | | @ApiModelProperty(value = "é¢åç¶æ ") |
| | | private String drawStatus; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ç¶æ") |
| | | private String couponStatus; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ç±»åï¼0=满åå¸ï¼1=ææ£å¸ï¼") |
| | | private Integer couponType; |
| | | |
| | | @ApiModelProperty(value = "éç¨ç±»åï¼0=å
¨åº;1=åç±»ï¼2=æå®åå") |
| | | private Integer applyType; |
| | | |
| | | @ApiModelProperty(value = "éç¨å
³è对象信æ¯ä¸»é®") |
| | | private String applyIds; |
| | | |
| | | @ApiModelProperty(value = "ææ£å·æ»¡åä¸ééé¢") |
| | | private BigDecimal maxPrice; |
| | | |
| | | @ApiModelProperty(value = "éç¨å
³è对象信æ¯") |
| | | private List<String> relationInfoList; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/24 15:32 |
| | | */ |
| | | @Data |
| | | @ApiModel("订å确认è¿åç±»") |
| | | public class PayDetailResponse { |
| | | |
| | | @ApiModelProperty(value = "skuç»åç¼ç ï¼å
³ègoods_sku表ï¼") |
| | | private Integer goodsSkuId; |
| | | |
| | | @ApiModelProperty(value = "ååæ°é") |
| | | private Integer goodsNum; |
| | | |
| | | @ApiModelProperty(value = "ååæ°é") |
| | | private String skuImg; |
| | | |
| | | @ApiModelProperty(value = "åååç§°") |
| | | private String goodsName; |
| | | |
| | | @ApiModelProperty(value = "è´ç©è½¦åå主é®") |
| | | private Integer shopCartId; |
| | | |
| | | @ApiModelProperty(value = "伿 叿µæ£éé¢",hidden = true) |
| | | private BigDecimal deductAmount; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "åç") |
| | | private Labels brandLabels; |
| | | |
| | | @ApiModelProperty(value = "å±ç¤ºä»·æ ¼") |
| | | @ApiModelProperty(value = "å±ç¤ºä»·æ ¼ï¼å线价ï¼") |
| | | private BigDecimal price; |
| | | |
| | | @ApiModelProperty(value = "æä½ä»·") |
| | | private BigDecimal minPrice; |
| | | |
| | | @ApiModelProperty(value = "åå详æ
") |
| | | private String content; |
| | |
| | | @ApiModelProperty(value = "æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "çå®åºå") |
| | | private Integer stock; |
| | | |
| | | // @ApiModelProperty(value = "ååæ ç¾") |
| | | // private List<Labels> labelsList; |
| | | |
| | |
| | | package com.doumee.dao.web.response.goods; |
| | | |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | @ApiModelProperty(value = "订åç±»å 0å¹³å°åå 1åè±åå 2åå¡è®¡åç¼ç ", example = "1") |
| | | private Integer orderType; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§", example = "1") |
| | | @ApiModelProperty(value = "æ¶è´§ç±»åï¼0=å¿«éé
éï¼1=é¨åºèªæï¼", example = "1") |
| | | private Integer receiveType; |
| | | |
| | | @ApiModelProperty(value = "èªæç»éå主é®", example = "1") |
| | | private Integer shopId; |
| | | |
| | | @ApiModelProperty(value = "ç»éååç§°", example = "1") |
| | | private String shopName; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ¯ä» 1å¾
åè´§/å¾
èªæ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§", example = "1") |
| | | private Integer orderStatus; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å·²è¯ä»· 0æªè¯ä»· 1å·²è¯ä»·", example = "1") |
| | |
| | | @ApiModelProperty(value = "宿æ¶é´", example = "1") |
| | | private Date doneDate; |
| | | |
| | | @ApiModelProperty(value = "æ ¸éç ", example = "1") |
| | | private String exchangeCode; |
| | | |
| | | @ApiModelProperty(value = "æµæ£éé¢", example = "1") |
| | | private BigDecimal integral; |
| | |
| | | @ApiModelProperty(value = "订åæç»ä¿¡æ¯", example = "1") |
| | | private List<MemberOrderDetailResponse> memberOrderDetailResponseList; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç»éåä¿¡æ¯", example = "1") |
| | | private Shop shopInfo; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ä¿¡æ¯", example = "1") |
| | | private MemberCoupon memberCoupon; |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response.goods; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.model.GoodsSku; |
| | | import com.doumee.dao.business.model.Multifile; |
| | | import com.doumee.dao.business.model.Sku; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import org.apache.xpath.operations.Bool; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ååä¿¡æ¯è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | | @Data |
| | | public class OrderGoodsCalculateResponse { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "åç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "åç±»ç¼ç ï¼å
³èlabels表ï¼", example = "1") |
| | | private Integer categoryId; |
| | | |
| | | @ApiModelProperty(value = "åçç¼ç ï¼å
³èlabels表ï¼", example = "1") |
| | | private Integer brandId; |
| | | |
| | | @ApiModelProperty(value = "æµæ£æ¯ä¾ï¼0.1%~100%ï¼", example = "1") |
| | | private BigDecimal deductRata; |
| | | |
| | | @ApiModelProperty(value = "ååæ°é") |
| | | private Integer goodsNum; |
| | | |
| | | @ApiModelProperty(value = "å个ååéé(kg)", example = "1") |
| | | private BigDecimal weight; |
| | | |
| | | @ApiModelProperty(value = "skuéé¢") |
| | | private BigDecimal skuPrice; |
| | | |
| | | @ApiModelProperty(value = "skuæ»éé¢") |
| | | private BigDecimal skuAmount; |
| | | |
| | | @ApiModelProperty(value = "skuId") |
| | | private Integer skuId; |
| | | |
| | | @ApiModelProperty(value = "订åä¸ä¼æ å¸éé¢å æ¯", hidden = true) |
| | | private BigDecimal orderCouponRata; |
| | | |
| | | @ApiModelProperty(value = "伿 叿µæ£éé¢", hidden = true) |
| | | private BigDecimal couponDeductCash; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å¯ä»¥ä½¿ç¨ä¼æ å¸", hidden = true) |
| | | private Boolean useCoupon; |
| | | |
| | | @ApiModelProperty(value = "积åæå¤§å¯æµæ£éé¢", hidden = true) |
| | | private BigDecimal integralMaxDeductCash; |
| | | |
| | | @ApiModelProperty(value = "积åå®é
æµæ£éé¢", hidden = true) |
| | | private BigDecimal integralDeductCash; |
| | | |
| | | @ApiModelProperty(value = "å®é
使ç¨ç§¯å", hidden = true) |
| | | private BigDecimal integralDeduct; |
| | | |
| | | @ApiModelProperty(value = "订åä¸ç§¯åéé¢å®é
å æ¯", hidden = true) |
| | | private BigDecimal orderIntegralRata; |
| | | |
| | | @ApiModelProperty(value = "åºåé") |
| | | private BigDecimal stockNum; |
| | | |
| | | @ApiModelProperty(value = "å®é
éé") |
| | | private BigDecimal salesVolume; |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response.goods; |
| | | |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ååSKUè§æ ¼ç»ä¿¡æ¯è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | | @Data |
| | | @ApiModel("åå确认页信æ¯ååºç±»") |
| | | public class OrderPayConfirmResponse { |
| | | |
| | | @ApiModelProperty(value = "è®¢åæ»éé¢", example = "1") |
| | | private BigDecimal amount; |
| | | |
| | | @ApiModelProperty(value = "伿 叿µæ£éé¢", example = "1") |
| | | private BigDecimal couponAmount; |
| | | |
| | | @ApiModelProperty(value = "ç§¯åæµæ£éé¢", example = "1") |
| | | private BigDecimal integralAmount; |
| | | |
| | | @ApiModelProperty(value = "æµæ£ç§¯åå¼", example = "1") |
| | | private BigDecimal deductIntegral; |
| | | |
| | | @ApiModelProperty(value = "é®è´¹éé¢", example = "1") |
| | | private BigDecimal mailAmount; |
| | | |
| | | @ApiModelProperty(value = "æ¯ä»éé¢", example = "1") |
| | | private BigDecimal payAmount; |
| | | |
| | | @ApiModelProperty(value = "ä¸åè¿ç§¯å", example = "1") |
| | | private BigDecimal integralBack; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ä¿¡æ¯", example = "1") |
| | | private MemberCoupon memberCoupon; |
| | | |
| | | @ApiModelProperty(value = "ååä¿¡æ¯", example = "1") |
| | | private List<OrderGoodsCalculateResponse> goodsCalculateList; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.request.OrderCancelRequest; |
| | | import com.doumee.dao.web.request.OrderPayRequest; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.request.ShopOrderPayRequest; |
| | | import com.doumee.dao.web.request.goods.DealOrderRequest; |
| | | import com.doumee.dao.web.request.goods.MemberOrderRequest; |
| | | import com.doumee.dao.web.request.goods.OrderCommentRequest; |
| | | import com.doumee.dao.web.response.HomeInfoResponse; |
| | | import com.doumee.dao.web.response.MyPageResponse; |
| | | import com.doumee.dao.web.response.goods.MemberOrderResponse; |
| | | import com.doumee.dao.web.response.goods.PayResponse; |
| | | import com.doumee.service.business.impl.MemberCouponServiceImpl; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | void orderSendOutGoods(Goodsorder goodsorder); |
| | | |
| | | void orderRemark(Goodsorder goodsorder); |
| | | |
| | | IPage<Shop> getShopPage(PageWrap<Shop> pageWrap); |
| | | void coffeePlanCancelOrder(Goodsorder goodsorder); |
| | | void orderPlanCancelOrder(Goodsorder goodsorder); |
| | | |
| | |
| | | * @param orderPayRequest |
| | | * @return |
| | | */ |
| | | PayResponse orderPay(OrderPayRequest orderPayRequest); |
| | | PayResponse orderPay(ShopOrderPayRequest orderPayRequest, MemberCouponServiceImpl memberCouponService); |
| | | |
| | | /** |
| | | * éæ°æ¯ä» |
| | |
| | | void updAddress(DealOrderRequest updAddressRequest); |
| | | |
| | | /** |
| | | * åæ¶è®¢å |
| | | * åæ¶è®¢å - åå²çæ¬ |
| | | * @param orderId |
| | | * @param optUserId |
| | | * @param cancelInfo |
| | | */ |
| | | void cancelOrder(Integer orderId,Integer optUserId,String cancelInfo); |
| | | |
| | | /** |
| | | * 订ååæ¶ - æ° |
| | | * @param orderId |
| | | * @param optUserId |
| | | * @param cancelInfo |
| | | */ |
| | | void cancelOrderNew(Integer orderId,Integer optUserId,String cancelInfo); |
| | | |
| | | /** |
| | | * å¬åè´§ |
| | |
| | | */ |
| | | void affirmOrder(Integer orderId,Integer memberId); |
| | | |
| | | void orderWriteOff(String exchangeCode,Integer memberId); |
| | | |
| | | /** |
| | | * 订åå é¤ |
| | | * @param orderId |
| | | * @param memberId |
| | | */ |
| | | void delOrder(Integer orderId,Integer memberId); |
| | | |
| | | /** |
| | | * 订å详æ
|
| | |
| | | MyPageResponse ordersStatistics(Integer memberId); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 订åèªå¨ç¡®è®¤ |
| | | */ |
| | |
| | | void resetOrderCodes(); |
| | | |
| | | void refreshOrderCodes(); |
| | | |
| | | HomeInfoResponse getHomeInfo(int memberId); |
| | | } |
| | |
| | | */ |
| | | PageData<IntegralDTO> findIntegralDTOPage(PageWrap<IntegralDTO> pageWrap,Integer memberId); |
| | | /** |
| | | * æ´æ°ç§¯åä¿¡æ¯ |
| | | * æ´æ°æ¶è´¹è
积å |
| | | * @param dealIntegralRequest å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | | Integer dealIntegral(DealIntegralRequest dealIntegralRequest); |
| | | |
| | | /** |
| | | * æ´æ°ç»éåä½é¢ |
| | | * @param dealIntegralRequest |
| | | * @return |
| | | */ |
| | | Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest); |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.dto.MemberCouponDTO; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.response.MemberCouponResponse; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | |
| | | * @param couponType |
| | | * @return |
| | | */ |
| | | IPage<CouponDTO> memberCouponPage(IPage pages, BigDecimal price, Integer memberId, Integer couponType); |
| | | IPage<MemberCouponResponse> memberCouponPage(IPage pages, BigDecimal price, Integer memberId, Integer couponType, Integer status); |
| | | |
| | | |
| | | /** |
| | | * ä¼å伿 å¸è¯¦æ
|
| | | * @param id |
| | | * @return |
| | | */ |
| | | MemberCouponResponse getMemberCouponDetail(Integer id); |
| | | /** |
| | | * å¯ç¨ä¼æ 叿°é |
| | | * @param price |
| | |
| | | */ |
| | | PageData<MemberCouponDTO> findMemberCouponDTO(PageWrap<MemberCouponDTO> pageWrap); |
| | | |
| | | /** |
| | | * æ ¹æ®ååéæ©ä¿¡æ¯ æ¥è¯¢å¯¹åºå¯ä½¿ç¨ç伿 å¸ |
| | | * @param requestList |
| | | * @param memberId |
| | | * @return |
| | | */ |
| | | List<MemberCoupon> getApplyCoupon(List<PayDetailRequest> requestList, Integer memberId); |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.system.dto.MemberRechargeDTO; |
| | | import com.doumee.dao.web.dto.MemberOwnDTO; |
| | | import com.doumee.dao.web.dto.shop.Position; |
| | | import com.doumee.dao.web.request.UpdMobileRequest; |
| | | import com.doumee.dao.web.request.UpdateMemberRequest; |
| | | import com.doumee.dao.web.request.WxPhoneRequest; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | |
| | | */ |
| | | Member updateMember(UpdateMemberRequest updateMemberRequest); |
| | | |
| | | /** |
| | | * éªè¯ææºå· |
| | | * @param request |
| | | */ |
| | | void verifyUserPhone(UpdMobileRequest request); |
| | | |
| | | |
| | | /** |
| | | * æ¢ç»ææºå· |
| | | * @param request |
| | | */ |
| | | void updateUserPhone(UpdMobileRequest request); |
| | | |
| | | MemberOwnDTO getMemberOwnDTO(Integer memberId); |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.ShopGoodsRelation; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç»éåä¾è´§ä»·ä¿¡æ¯Serviceå®ä¹ |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/12/15 09:39 |
| | | */ |
| | | public interface ShopGoodsRelationService { |
| | | |
| | | /** |
| | | * å建 |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | | Integer create(ShopGoodsRelation shopGoodsRelation); |
| | | |
| | | /** |
| | | * 主é®å é¤ |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | */ |
| | | void delete(ShopGoodsRelation shopGoodsRelation); |
| | | |
| | | /** |
| | | * æ¹é主é®å é¤ |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | */ |
| | | void updateById(ShopGoodsRelation shopGoodsRelation); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | | * @param shopGoodsRelations å®ä½é |
| | | */ |
| | | void updateByIdInBatch(List<ShopGoodsRelation> shopGoodsRelations); |
| | | |
| | | /** |
| | | * 䏻鮿¥è¯¢ |
| | | * |
| | | * @param id ä¸»é® |
| | | * @return ShopGoodsRelation |
| | | */ |
| | | ShopGoodsRelation findById(Integer id); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | * @return ShopGoodsRelation |
| | | */ |
| | | ShopGoodsRelation findOne(ShopGoodsRelation shopGoodsRelation); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢ |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | * @return List<ShopGoodsRelation> |
| | | */ |
| | | List<ShopGoodsRelation> findList(ShopGoodsRelation shopGoodsRelation); |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param pageWrap å页对象 |
| | | * @return PageData<ShopGoodsRelation> |
| | | */ |
| | | PageData<ShopGoodsRelation> findPage(PageWrap<ShopGoodsRelation> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | | * |
| | | * @param shopGoodsRelation å®ä½å¯¹è±¡ |
| | | * @return long |
| | | */ |
| | | long count(ShopGoodsRelation shopGoodsRelation); |
| | | } |
| | |
| | | */ |
| | | IPage<CartGoodsResponse> cartGoodsPage(PageWrap pageWrap, Integer memberId); |
| | | |
| | | /** |
| | | * è´ç©è½¦ååæ°é |
| | | * @param memberId |
| | | * @return |
| | | */ |
| | | Integer cartGoodsTypeNum(Integer memberId); |
| | | |
| | | /** |
| | | * æ´æ°è´ç©è½¦æ°éä¿¡æ¯ |
| | |
| | | */ |
| | | @Override |
| | | public IPage<GoodsInfoResponse> getGoodsPage(PageWrap<GoodsRequest> pageWrap) { |
| | | GoodsRequest model = pageWrap.getModel(); |
| | | |
| | | QueryWrapper<GoodsRequest> wrapper = new QueryWrapper<GoodsRequest>() |
| | | .eq("g.ISDELETED",Constants.ZERO) |
| | | .eq("g.PARENT_CATEGORY_ID",pageWrap.getModel().getParentCategoryId()) |
| | | .eq(!Objects.isNull(pageWrap.getModel()) && Objects.nonNull(pageWrap.getModel().getCategoryId()), |
| | | "g.CATEGORY_ID", pageWrap.getModel().getCategoryId()) |
| | | .eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()), |
| | | "g.CATEGORY_ID", model.getCategoryId()) |
| | | |
| | | //TODO éç¨åç éç¨ç³»å |
| | | // .eq(!Objects.isNull(model) && Objects.nonNull(model.getApplicableBrandId()), |
| | | // "","") |
| | | // .eq(!Objects.isNull(model) && Objects.nonNull(model.getSeriesBrandId()), |
| | | // "","") |
| | | |
| | | .eq("g.STATUS", Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),"g.NAME",pageWrap.getModel().getGoodsName()); |
| | | // .eq(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getType()), "g.TYPE", pageWrap.getModel().getType()); |
| | | .like(StringUtils.isNotBlank(model.getGoodsName()),"g.NAME",model.getGoodsName()); |
| | | |
| | | for(PageWrap.SortData sortData:pageWrap.getSorts1()){ |
| | | if ("CREATE_DATE".equalsIgnoreCase(sortData.getProperty())){ |
| | | if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | wrapper.orderByAsc("g.CREATE_DATE"); |
| | | } |
| | | if(Objects.nonNull(model.getSortInfo())){ |
| | | //æåºæ¹å¼ï¼0=综åæåºï¼1=ééç±ä½å°é« ï¼2=ä»·æ ¼ç±ä½å°é«ï¼3=ééç±é«å°ä½ï¼4=ä»·æ ¼ç±é«å°ä½ |
| | | if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){ |
| | | wrapper.orderByDesc("g.CREATE_DATE"); |
| | | |
| | | } |
| | | if ("realSaleNum".equalsIgnoreCase(sortData.getProperty())){ |
| | | |
| | | if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | wrapper.orderByAsc("realSaleNum"); |
| | | } |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){ |
| | | wrapper.orderByAsc("realSaleNum"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){ |
| | | wrapper.orderByAsc("g.price"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){ |
| | | wrapper.orderByDesc("realSaleNum"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){ |
| | | wrapper.orderByDesc("g.price"); |
| | | } |
| | | if ("PRICE".equalsIgnoreCase(sortData.getProperty())){ |
| | | if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | wrapper.orderByAsc("g.PRICE"); |
| | | } |
| | | wrapper.orderByDesc("g.PRICE"); |
| | | } |
| | | |
| | | } |
| | | |
| | | // for(PageWrap.SortData sortData:pageWrap.getSorts1()){ |
| | | // if ("CREATE_DATE".equalsIgnoreCase(sortData.getProperty())){ |
| | | // if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | // wrapper.orderByAsc("g.CREATE_DATE"); |
| | | // } |
| | | // wrapper.orderByDesc("g.CREATE_DATE"); |
| | | // |
| | | // } |
| | | // if ("realSaleNum".equalsIgnoreCase(sortData.getProperty())){ |
| | | // |
| | | // if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | // wrapper.orderByAsc("realSaleNum"); |
| | | // } |
| | | // wrapper.orderByDesc("realSaleNum"); |
| | | // } |
| | | // if ("PRICE".equalsIgnoreCase(sortData.getProperty())){ |
| | | // if (PageWrap.ASC.equalsIgnoreCase(sortData.getDirection())){ |
| | | // wrapper.orderByAsc("g.PRICE"); |
| | | // } |
| | | // wrapper.orderByDesc("g.PRICE"); |
| | | // } |
| | | // |
| | | // } |
| | | |
| | | IPage<GoodsInfoResponse> page = goodsMapper.goodsPage(pageWrap.toPage(),wrapper); |
| | | if (!CollectionUtils.isEmpty(page.getRecords())){ |
| | | String preFixPath = systemDictDataBiz.getPreFixPath(Constants.RESOURCE_PATH, Constants.GOODS_FILE); |
| | | page.getRecords().forEach(s->s.setImgurl(preFixPath+s.getImgurl())); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode(); |
| | | Integer sumStock = Constants.ZERO; |
| | | for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) { |
| | | if(StringUtils.isBlank(goodsSkuResponse.getImgurl())){ |
| | | goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getGoodsImgUrl()); |
| | |
| | | indexData.append("," + ( skuAttr.getSortnum()-1)); |
| | | } |
| | | goodsSkuResponse.setIndexData(indexData.toString().substring(1)); |
| | | sumStock = sumStock + goodsSkuResponse.getStock(); |
| | | } |
| | | |
| | | //çå®éé = realSaleNum - saleNum; |
| | | //çå®åºå= sumStock - (realSaleNum - saleNum) |
| | | goodsResponse.setStock(sumStock - goodsResponse.getRealSaleNum() + goodsResponse.getSaleNum()); |
| | | goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList); |
| | | //Skuåºç¡ä¿¡æ¯ |
| | | List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId()); |
| | |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode(); |
| | | GoodsInfoResponse goodsResponse = goodsMapper.getGoodsInfo(goodsId); |
| | | if(Objects.isNull(goodsResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å½åä¸åºå
³èååå·²å é¤"); |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | goodsResponse.setImgurl(fullUrl + goodsResponse.getImgurl()); |
| | | //æ¥è¯¢ååçåç±» |
| | |
| | | Constants.GOODS_FILE); |
| | | List<MultiFileDTO> multiFileDTOS = objAllFileUrl.get(Constants.MultiFile.PLATFORM_GOOD_ROTATION.getKey()); |
| | | goodsResponse.setGoodBannerMultiFiles(multiFileDTOS); |
| | | |
| | | return goodsResponse; |
| | | } |
| | | |
| | |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.RedisUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.utils.*; |
| | | import com.doumee.core.utils.kuaidi100.DeliveryDTO; |
| | | import com.doumee.core.utils.kuaidi100.ExpressUtils; |
| | | import com.doumee.core.wx.SendWxMessage; |
| | |
| | | import com.doumee.dao.business.join.GoodsorderJoinMapper; |
| | | import com.doumee.dao.business.join.PlanorderDetailJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.dao.web.request.OrderPayRequest; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.request.*; |
| | | import com.doumee.dao.web.request.goods.MemberOrderRequest; |
| | | import com.doumee.dao.web.request.goods.DealOrderRequest; |
| | | import com.doumee.dao.web.request.goods.OrderCommentRequest; |
| | | import com.doumee.dao.web.request.goods.OrderGoodsCommentRequest; |
| | | import com.doumee.dao.web.response.HomeInfoResponse; |
| | | import com.doumee.dao.web.response.MyPageResponse; |
| | | import com.doumee.dao.web.response.goods.MemberOrderDetailResponse; |
| | | import com.doumee.dao.web.response.goods.MemberOrderResponse; |
| | | import com.doumee.dao.web.response.goods.PayResponse; |
| | | import com.doumee.dao.web.response.goods.*; |
| | | import com.doumee.service.business.AreasService; |
| | | import com.doumee.service.business.GoodsorderService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; |
| | | import com.github.binarywang.wxpay.bean.result.WxPayRefundResult; |
| | | import com.github.binarywang.wxpay.exception.WxPayException; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.checkerframework.checker.units.qual.C; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | |
| | | import java.net.InetAddress; |
| | | import java.net.UnknownHostException; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * åå订åä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | private ActivitySignMapper activitySignMapper; |
| | | @Autowired |
| | | private AftersaleMapper aftersaleMapper; |
| | | |
| | | @Autowired |
| | | private ShopGoodsRelationMapper shopGoodsRelationMapper; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | |
| | | private AddrMapper addrMapper; |
| | | |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | |
| | | @Autowired |
| | | private ShopGoodsRelationMapper relationMapper; |
| | | |
| | | @Autowired |
| | | private MemberCouponMapper memberCouponMapper; |
| | | |
| | | @Autowired |
| | | private CollectMapper collectMapper; |
| | | |
| | | @Autowired |
| | | private WxMiniUtilService wxMiniUtilService; |
| | |
| | | |
| | | @Autowired |
| | | private GoodsorderDetailJoinMapper goodsorderDetailJoinMapper; |
| | | |
| | | @Autowired |
| | | private IntegralMapper integralMapper; |
| | | |
| | | @Override |
| | | public Integer create(Goodsorder goodsorder) { |
| | |
| | | goodsorder.setEditor(user.getId()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<Shop> getShopPage(PageWrap<Shop> pageWrap) { |
| | | IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | Shop model = pageWrap.getModel(); |
| | | if(Objects.isNull(model.getLatitude())||Objects.isNull(model.getLongitude())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | return shopMapper.selectPage(page,new MPJLambdaWrapper<Shop>() |
| | | .selectAll(Shop.class) |
| | | .select(" case when LONGITUDE IS NULL OR LATITUDE IS NULL THEN 0 " + |
| | | " when t.TYPE = 0 then CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( "+model.getLongitude()+", "+model.getLatitude()+" )) /1000,DECIMAL(15,2)) " + |
| | | " when t.TYPE = 1 then CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( "+model.getLongitude()+", "+model.getLatitude()+" )) /1000,DECIMAL(15,2)) " + |
| | | " else CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( "+model.getLongitude()+", "+model.getLatitude()+" )) /1000,DECIMAL(15,2)) end " , Shop::getDistance) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .eq(Shop::getStatus,Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(model.getAddr()),Shop::getAddr,model.getAddr()) |
| | | .like(StringUtils.isNotBlank(model.getName()),Shop::getName,model.getName()) |
| | | .orderByAsc(" distance ") |
| | | ); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * åè± åå订ååè´§ |
| | | * @param goodsorder |
| | |
| | | /****************************************ç§»å¨ç«¯æ¥å£å¼å§********************************************************************/ |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public PayResponse orderPay(OrderPayRequest orderPayRequest){ |
| | | Member member = memberMapper.selectById(orderPayRequest.getMemberId()); |
| | |
| | | goodsorderMapper.insert(goodsorder); |
| | | //æ°æ®åå¨ |
| | | BigDecimal total = Constants.formatBigdecimal(goodsorder.getPrice()).add(Constants.formatBigdecimal(goodsorder.getIntegral())).add(Constants.formatBigdecimal(goodsorder.getCouponPrice())); |
| | | BigDecimal rate =Constants.formatBigdecimal(goodsorder.getCouponPrice()) .divide(total,4,BigDecimal.ROUND_HALF_UP); |
| | | BigDecimal rate =Constants.formatBigdecimal(goodsorder.getCouponPrice()).divide(total,4,BigDecimal.ROUND_HALF_UP); |
| | | BigDecimal totalWxMoney = new BigDecimal(0); |
| | | BigDecimal totalIntegral = new BigDecimal(0); |
| | | for (int i =0;i< goodsOrderDetailList.size();i++) { |
| | |
| | | //å½åæç»å®é
ä»·æ ¼ |
| | | BigDecimal detialTotal = Constants.formatBigdecimal(goodsOrderDetail.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(goodsOrderDetail.getGoodsNum()))); |
| | | //æç®ä¼æ å¸åæ¯ä»ä»·æ ¼ï¼å
å«ç°éåä½é¢é¨åï¼ |
| | | BigDecimal actDetialTotal = detialTotal .subtract(detialTotal.multiply(rate)); |
| | | BigDecimal actDetialTotal = detialTotal.subtract(detialTotal.multiply(rate)); |
| | | //æç°éåç§¯åæ¯ä»æ¯ä¾ï¼æç®æ¯ä¸ªæç»ç°éåç§¯åæ¯ä»çæ°é |
| | | BigDecimal rate1 = detialTotal .divide(total,4,BigDecimal.ROUND_HALF_UP); |
| | | //å¯éç°ééé¢ |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public PayResponse orderPay(ShopOrderPayRequest orderPayRequest,MemberCouponServiceImpl memberCouponService){ |
| | | Member member = memberMapper.selectById(orderPayRequest.getMemberId()); |
| | | |
| | | Goodsorder goodsorder = new Goodsorder(); |
| | | goodsorder.setCreator(orderPayRequest.getMemberId()); |
| | | goodsorder.setIntegral(BigDecimal.ZERO); |
| | | goodsorder.setCreateDate(new Date()); |
| | | goodsorder.setIsdeleted(Constants.ZERO); |
| | | goodsorder.setMemberInfo(orderPayRequest.getRemark()); |
| | | goodsorder.setMemberId(member.getId()); |
| | | goodsorder.setType(Constants.ZERO); |
| | | goodsorder.setStatus(Constants.ZERO); |
| | | |
| | | if(Constants.equalsInteger(orderPayRequest.getReceiveType(),Constants.ZERO)){ |
| | | //æ¥è¯¢æ¶è´§å°å |
| | | Addr addr = addrMapper.selectById(orderPayRequest.getAddressId()); |
| | | if(Objects.isNull(addr)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°æ¶è´§å°åä¿¡æ¯ï¼"); |
| | | } |
| | | Areas area = areasService.findById(addr.getAreaId(), Constants.TWO); |
| | | if(Objects.isNull(area)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æ¶è´§å°ååºåä¿¡æ¯åçååï¼è¯·æ´æ°åä¸åï¼"); |
| | | } |
| | | |
| | | goodsorder.setAddrId(addr.getId()); |
| | | goodsorder.setLinkaddr(area.getProvinceName()+area.getCityName() + area.getName() + addr.getAddr()); |
| | | goodsorder.setLinkphone(addr.getPhone()); |
| | | goodsorder.setLinkname(addr.getName()); |
| | | if(Objects.nonNull(member.getBindShopId())){ |
| | | goodsorder.setDistributionShopId(member.getBindShopId()); |
| | | } |
| | | }else{ |
| | | if(Objects.isNull(orderPayRequest.getShopId())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"è¯·éæ©æ£ç¡®çèªæé¨åºï¼"); |
| | | } |
| | | Shop shop = shopMapper.selectById(orderPayRequest.getShopId()); |
| | | if(Objects.isNull(shop)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"è¯·éæ©æ£ç¡®çèªæé¨åºï¼"); |
| | | } |
| | | |
| | | |
| | | //æ ¹æ®éæ©åæ·è¿è¡ä¼åä¸åæ·ä¿¡æ¯ç»å® |
| | | if(Objects.isNull(member.getBindShopId())){ |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getBindShopId,shop.getId()) |
| | | .eq(Member::getId,member.getId()) |
| | | ); |
| | | } |
| | | goodsorder.setPickUpShopId(shop.getId()); |
| | | goodsorder.setDistributionShopId(shop.getId()); |
| | | if(Objects.isNull(member.getBindShopId())){ |
| | | member.setBindShopId(shop.getId()); |
| | | } |
| | | } |
| | | //åæ®ç¼å· èªå¢ |
| | | goodsorder.setCode(getNextInCode()); |
| | | //计ç®è®¢åæ»éé¢ |
| | | BigDecimal sumPrice = BigDecimal.ZERO; |
| | | |
| | | //åå¨è®°å½æç» |
| | | OrderPayConfirmResponse orderPayConfirmResponse = this.orderPayConfirm(orderPayRequest.getReceiveType(),orderPayRequest.getPayDetailRequestList(),orderPayRequest.getAddressId(),memberCouponService,member.getId()); |
| | | if(Objects.isNull(orderPayConfirmResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç³»ç»æ¯ä»é误,请è系管çå"); |
| | | } |
| | | goodsorder.setPrice(orderPayConfirmResponse.getPayAmount()); |
| | | goodsorder.setTotalPrice(orderPayConfirmResponse.getAmount()); |
| | | goodsorder.setUseIntegral(orderPayConfirmResponse.getDeductIntegral()); |
| | | goodsorder.setIntegral(goodsorder.getUseIntegral()); |
| | | goodsorder.setIntegralPrice(orderPayConfirmResponse.getIntegralAmount()); |
| | | |
| | | if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){ |
| | | MemberCoupon memberCoupon = memberCouponMapper.selectById(orderPayConfirmResponse.getMemberCoupon().getId()); |
| | | if(Objects.isNull(memberCoupon)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ä¼æ å¸ä¿¡æ¯ï¼"); |
| | | } |
| | | if(memberCoupon.getStatus().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"伿 å¸å·²ä½¿ç¨ï¼"); |
| | | } |
| | | sumPrice = sumPrice.subtract(memberCoupon.getPrice()); |
| | | goodsorder.setCouponId(memberCoupon.getId()); |
| | | goodsorder.setCouponPrice(orderPayConfirmResponse.getMemberCoupon().getValidAmount()); |
| | | |
| | | memberCouponMapper.update(null,new UpdateWrapper<MemberCoupon>().lambda() |
| | | .set(MemberCoupon::getStatus,Constants.ONE) |
| | | .set(MemberCoupon::getUseDate,DateUtil.getCurrDateTime()) |
| | | .eq(MemberCoupon::getId,memberCoupon.getId()) |
| | | ); |
| | | } |
| | | |
| | | goodsorderMapper.insert(goodsorder); |
| | | List<OrderGoodsCalculateResponse> goodsCalculateList = orderPayConfirmResponse.getGoodsCalculateList(); |
| | | if(CollectionUtils.isEmpty(goodsCalculateList)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æ æç»æ°æ®,è¯·æ£æ¥éæ©æ°æ®ï¼"); |
| | | } |
| | | List<GoodsorderDetail> goodsOrderDetailList = new ArrayList<>(); |
| | | for (OrderGoodsCalculateResponse payDetailRequest:goodsCalculateList) { |
| | | //æ¥è¯¢åå |
| | | GoodsSku goodsSku = goodsSkuMapper.selectById(payDetailRequest.getSkuId()); |
| | | if(Objects.isNull(goodsSku)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ååSKUä¿¡æ¯ï¼"); |
| | | } |
| | | Goods goods = goodsMapper.selectById(goodsSku.getGoodsId()); |
| | | if(Objects.isNull(goods)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ååä¿¡æ¯ï¼"); |
| | | } |
| | | if(goods.getStatus().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åå¨ååå·²å 餿已䏿¶ï¼æ æ³ä¸å"); |
| | | } |
| | | if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åå¨åååºåä¸è¶³ï¼æ æ³ä¸åï¼"); |
| | | } |
| | | //åååºåæ£é¤ |
| | | goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))); |
| | | goodsSkuMapper.updateById(goodsSku); |
| | | GoodsorderDetail goodsOrderDetail = new GoodsorderDetail(); |
| | | goodsOrderDetail.setCreator(member.getId()); |
| | | goodsOrderDetail.setCreateDate(new Date()); |
| | | goodsOrderDetail.setImgurl(StringUtils.isBlank(goodsSku.getImgurl())?goods.getImgurl():goodsSku.getImgurl()); |
| | | goodsOrderDetail.setName(goods.getName()); |
| | | goodsOrderDetail.setGoodsSkuId(goodsSku.getId().toString()); |
| | | goodsOrderDetail.setSkuName(goodsSku.getName()); |
| | | goodsOrderDetail.setPrice(goodsSku.getPrice()); |
| | | goodsOrderDetail.setGoodsNum(payDetailRequest.getGoodsNum()); |
| | | goodsOrderDetail.setGoodsWeight(payDetailRequest.getWeight()); |
| | | goodsOrderDetail.setCouponDeduct(payDetailRequest.getCouponDeductCash()); |
| | | goodsOrderDetail.setIntegralDeduct(payDetailRequest.getIntegralDeductCash()); |
| | | goodsOrderDetail.setOrderId(goodsorder.getId()); |
| | | |
| | | //夿é¨åºæ¯å¦è®¾ç½®ååçä»·æ ¼ä¿¡æ¯ |
| | | if(Objects.nonNull(goodsorder.getDistributionShopId())){ |
| | | ShopGoodsRelation shopGoodsRelation = relationMapper.selectOne(new QueryWrapper<ShopGoodsRelation>().lambda() |
| | | .eq(ShopGoodsRelation::getIsdeleted,Constants.ZERO) .eq(ShopGoodsRelation::getShopId,goodsorder.getDistributionShopId()) |
| | | .eq(ShopGoodsRelation::getStatus,Constants.ZERO) |
| | | .eq(ShopGoodsRelation::getIsdeleted,Constants.ZERO) |
| | | .eq(ShopGoodsRelation::getGoodsSkuId,goodsOrderDetail.getGoodsSkuId()) |
| | | .last(" limit 1 ") |
| | | ); |
| | | if(Objects.isNull(shopGoodsRelation)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对ä¸èµ·ï¼å
³èç»éåæªç»å®["+goods.getName()+"]ååï¼è¯·è系管çåï¼"); |
| | | } |
| | | goodsOrderDetail.setShopSettlement(shopGoodsRelation.getPrice()); |
| | | } |
| | | goodsOrderDetailList.add(goodsOrderDetail); |
| | | //å é¤è´ç©è½¦åå |
| | | shopcartMapper.delete(new QueryWrapper<Shopcart>().lambda() |
| | | .eq(Shopcart::getMemberId,member.getId()) |
| | | .eq(Shopcart::getGoodsSkuId,goodsOrderDetail.getGoodsSkuId()) |
| | | ); |
| | | } |
| | | //积ååå¨è®°å½ |
| | | if(goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //æ´æ°ä½é¢ä¿¡æ¯ æ·»å 积ååå¨è®°å½ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(goodsorder.getUseIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ONE); |
| | | dealIntegralRequest.setMemberId(member.getId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | | dealIntegralRequest.setOrderCode(goodsorder.getCode().toString()); |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER); |
| | | integralService.dealIntegral(dealIntegralRequest); |
| | | } |
| | | |
| | | if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ååä»·æ ¼åçååï¼è¯·å·æ°åéæ°æ¯ä»ï¼"); |
| | | } |
| | | |
| | | return this.wxPay(goodsorder,member); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * éæ°æ¯ä» |
| | | * @param orderId |
| | |
| | | Object response = null; |
| | | WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); |
| | | request.setBody("å¹³å°åå"); |
| | | request.setAttach("terraceMall"); |
| | | request.setAttach("shopGoods"); |
| | | request.setOutTradeNo(goodsorder.getCode().toString()); |
| | | request.setTotalFee(BaseWxPayRequest.yuanToFen(goodsorder.getPrice().toString())); |
| | | // request.setTotalFee(2); |
| | |
| | | j.setImgUrl(fullUrl + j.getImgUrl()); |
| | | }); |
| | | memberOrderResponse.setMemberOrderDetailResponseList(memberOrderDetailResponseList); |
| | | if(Constants.equalsInteger(memberOrderResponse.getReceiveType(),Constants.ONE)){ |
| | | memberOrderResponse.setShopInfo(shopMapper.selectById(memberOrderResponse.getShopId())); |
| | | } |
| | | return memberOrderResponse; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void cancelOrderNew(Integer orderId,Integer optUserId,String cancelInfo){ |
| | | if(Objects.isNull(orderId)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Goodsorder goodsorder = goodsorderMapper.selectById(orderId); |
| | | if(Objects.isNull(goodsorder)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_PAY.getKey()) |
| | | || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey()) |
| | | || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订ååæ¶å¤±è´¥ï¼è®¢åç¶æå·²æµè½¬ï¼"); |
| | | } |
| | | if(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //微信ç°é鿬¾ |
| | | String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), goodsorder.getPrice()); |
| | | Fund fund = new Fund(); |
| | | fund.setOrderCode(refundCode); |
| | | fund.setCreateDate(new Date()); |
| | | fund.setIsdeleted(Constants.ZERO); |
| | | fund.setRemark(goodsorder.getId().toString()); |
| | | fund.setMemberId(goodsorder.getCreator()); |
| | | fund.setTitle("订ååæ¶"); |
| | | fund.setContent(StringUtils.isBlank(cancelInfo)?"ç¨æ·ä¸»å¨åæ¶":cancelInfo); |
| | | fund.setObjId(goodsorder.getId()); |
| | | fund.setObjType(Constants.ONE); |
| | | fund.setType(Constants.ONE); |
| | | fund.setNum(goodsorder.getPrice()); |
| | | fundMapper.insert(fund); |
| | | } |
| | | if(goodsorder.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //æ´æ°ä½é¢ä¿¡æ¯ æ·»å 积ååå¨è®°å½ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(goodsorder.getIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | | dealIntegralRequest.setMemberId(goodsorder.getMemberId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | | dealIntegralRequest.setOrderCode(goodsorder.getCode().toString()); |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_CANCEL); |
| | | integralService.dealIntegral(dealIntegralRequest); |
| | | } |
| | | //订åä¿¡æ¯åæ¶ |
| | | goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey()); |
| | | goodsorder.setCancelDate(new Date()); |
| | | goodsorder.setCancelInfo(StringUtils.isBlank(cancelInfo)?"ç¨æ·ä¸»å¨åæ¶":cancelInfo); |
| | | goodsorder.setCancelUser(optUserId); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | String goodsName = ""; |
| | | List<GoodsorderDetail> goodsorderDetailList = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId())); |
| | | if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){ |
| | | for (GoodsorderDetail goodsorderDetail:goodsorderDetailList) { |
| | | GoodsSku goodsSku = goodsSkuMapper.selectById(goodsorderDetail.getGoodsSkuId()); |
| | | if(StringUtils.isBlank(goodsName)){ |
| | | Goods goods = goodsMapper.selectById(goodsSku.getGoodsId()); |
| | | goodsName = goods.getName(); |
| | | } |
| | | if(!Objects.isNull(goodsSku)){ |
| | | goodsSku.setStock(goodsSku.getStock().add(new BigDecimal(Constants.formatIntegerNum(goodsorderDetail.getGoodsNum())))); |
| | | goodsSkuMapper.updateById(goodsSku); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //SendWxMessage.orderCancel(goodsorder,memberMapper.selectById(goodsorder.getMemberId()),goodsName); |
| | | |
| | | //æ¥è¯¢ä¼æ å¸ä¿¡æ¯è®°å½ |
| | | if(!Objects.isNull(goodsorder.getCouponId())){ |
| | | MemberCoupon memberCoupon = memberCouponMapper.selectById(goodsorder.getCouponId()); |
| | | if(!Objects.isNull(memberCoupon)){ |
| | | memberCoupon.setStatus(Constants.ZERO); |
| | | memberCouponMapper.updateById(memberCoupon); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){ |
| | | List<MemberCoupon> memberCouponList = new ArrayList<>(); |
| | | |
| | | List<GoodsSku> goodsSkuList = goodsSkuMapper.selectList(new QueryWrapper<GoodsSku>() |
| | | .lambda() |
| | | .eq(GoodsSku::getIsdeleted,Constants.ZERO) |
| | | .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList())) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(goodsSkuList)||!Constants.equalsInteger(goodsSkuList.size(),requestList.size())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ååSKUä¿¡æ¯é误,è¯·å·æ°éè¯"); |
| | | } |
| | | |
| | | //æ¥è¯¢ååå表 |
| | | List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class, |
| | | new MPJLambdaWrapper<Goods>() |
| | | .selectAs(GoodsSku::getPrice,Goods::getSkuPrice) |
| | | .selectAs(GoodsSku::getId,Goods::getSkuId) |
| | | .leftJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId) |
| | | .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList()))); |
| | | if(Objects.isNull(goodsList)){ |
| | | return BigDecimal.ZERO; |
| | | } |
| | | //è·åéæ©çååæ»éé¢ ä¸ å个ååéé¢ |
| | | BigDecimal deductAmount = BigDecimal.ZERO; |
| | | for (Goods goods:goodsList) { |
| | | List<PayDetailRequest> request = requestList.stream().filter(i->Constants.equalsInteger(i.getGoodsSkuId(), goods.getSkuId())).collect(Collectors.toList()); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(request)){ |
| | | goods.setSkuAmount(goods.getSkuPrice().multiply(new BigDecimal(request.get(Constants.ZERO).getGoodsNum()+""))); |
| | | deductAmount = deductAmount.add(goods.getSkuAmount().multiply(goods.getDeductRata())); |
| | | } |
| | | } |
| | | return deductAmount; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 订å确认æ¥å£ |
| | | * @param receiveType 0=å¿«éé
é 1=èªæ |
| | | * @param requestList |
| | | * @param addressId |
| | | * @param memberCouponService |
| | | * @param memberId |
| | | */ |
| | | public OrderPayConfirmResponse orderPayConfirm(Integer receiveType,List<PayDetailRequest> requestList,Integer addressId, |
| | | MemberCouponServiceImpl memberCouponService,Integer memberId){ |
| | | OrderPayConfirmResponse orderPayConfirmResponse = new OrderPayConfirmResponse(); |
| | | List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class, |
| | | new MPJLambdaWrapper<Goods>() |
| | | .selectAs(GoodsSku::getPrice,Goods::getSkuPrice) |
| | | .selectAs(GoodsSku::getId,Goods::getSkuId) |
| | | .selectAs(GoodsSku::getIntegralRate,Goods::getDeductRata) |
| | | .selectAs(GoodsSku::getWeight,Goods::getWeight) |
| | | .selectAs(GoodsSku::getImgurl,Goods::getSkuImg) |
| | | .leftJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId) |
| | | .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList()))); |
| | | if(CollectionUtils.isEmpty(goodsList)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªå¹é
å°ååä¿¡æ¯"); |
| | | } |
| | | |
| | | List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new); |
| | | |
| | | //è®¢åæ»éé¢ |
| | | BigDecimal amount = BigDecimal.ZERO; |
| | | //伿 叿µæ£éé¢ |
| | | BigDecimal couponAmount = BigDecimal.ZERO; |
| | | //ç§¯åæµæ£éé¢ |
| | | BigDecimal integralAmount = BigDecimal.ZERO; |
| | | //æµæ£ç§¯åå¼ |
| | | BigDecimal deductIntegral = BigDecimal.ZERO; |
| | | //é®è´¹éé¢ |
| | | BigDecimal mailAmount = BigDecimal.ZERO; |
| | | for (OrderGoodsCalculateResponse response:goodsCalculateList) { |
| | | List<PayDetailRequest> request = requestList.stream().filter(i->Constants.equalsInteger(i.getGoodsSkuId(), response.getSkuId())).collect(Collectors.toList()); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(request)){ |
| | | PayDetailRequest payDetailRequest = request.get(Constants.ZERO); |
| | | response.setSkuAmount(response.getSkuPrice().multiply(new BigDecimal(payDetailRequest.getGoodsNum()+""))); |
| | | response.setGoodsNum(payDetailRequest.getGoodsNum()); |
| | | amount = amount.add(response.getSkuAmount()); |
| | | } |
| | | } |
| | | //è·å伿 å¸ä¼æ éé¢ |
| | | List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(requestList,memberId); |
| | | MemberCoupon memberCoupon = new MemberCoupon(); |
| | | if(CollectionUtils.isNotEmpty(memberCouponList)){ |
| | | memberCoupon = memberCouponList.get(Constants.ZERO); |
| | | couponAmount = memberCoupon.getValidAmount(); |
| | | memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount); |
| | | orderPayConfirmResponse.setMemberCoupon(memberCoupon); |
| | | } |
| | | //ç§¯åæµæ£éé¢ |
| | | //æ¥è¯¢ç¨æ·æ»ç§¯å |
| | | Member member = memberMapper.selectById(memberId); |
| | | //积å大äº0 ä¸å¤§äºå¯ç¨ç§¯åé
置项 æå¯ä»¥ä½¿ç¨ |
| | | if(member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //æä½å¯ç¨å¯ç¨ç§¯å |
| | | BigDecimal minimumIntegral = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.MINIMUM_AVAILABLE_INTEGRAL).getCode()); |
| | | if(member.getIntegral().compareTo(minimumIntegral)>=Constants.ZERO){ |
| | | this.calculateIntegralRata(goodsCalculateList,member.getIntegral()); |
| | | } |
| | | } |
| | | //é®è´¹éé¢ |
| | | if(Constants.equalsInteger(receiveType,Constants.ZERO)){ |
| | | //TODO æ ¹æ®æ¶è´§å°å æ¥è¯¢è¿è´¹é
ç½® |
| | | |
| | | //计ç®ååä¿¡æ¯æ»éé |
| | | BigDecimal totalWeight = goodsCalculateList.stream().map(i-> |
| | | i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString())) |
| | | ).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | |
| | | } |
| | | |
| | | orderPayConfirmResponse.setAmount(amount); |
| | | orderPayConfirmResponse.setCouponAmount(couponAmount); |
| | | orderPayConfirmResponse.setDeductIntegral(deductIntegral); |
| | | orderPayConfirmResponse.setMailAmount(mailAmount); |
| | | orderPayConfirmResponse.setIntegralAmount(integralAmount); |
| | | orderPayConfirmResponse.setPayAmount(amount.subtract(couponAmount).subtract(mailAmount).subtract(integralAmount)); |
| | | orderPayConfirmResponse.setGoodsCalculateList(goodsCalculateList); |
| | | BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.CASH_EXCHANGE_INTEGRAL_RATA).getCode()); |
| | | orderPayConfirmResponse.setIntegralBack( |
| | | orderPayConfirmResponse.getPayAmount().multiply(cashToIntegralRata) |
| | | ); |
| | | |
| | | return orderPayConfirmResponse; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param goodsCalculateList ååéå |
| | | * @param totalIntegral ç¨æ·æ»ç§¯å |
| | | */ |
| | | public void calculateIntegralRata(List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalIntegral){ |
| | | //å½åéæ©ååæå¤§å¯ç¨ç§¯åæµæ£çéé¢ |
| | | BigDecimal maxDeductionCash = goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(i.getCouponDeductCash()) |
| | | .multiply(i.getDeductRata())).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | //积å - ç°é æ¯ä¾ |
| | | BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.INTEGRAL_EXCHANGE_CASH_RATA).getCode()); |
| | | //å½åéæ©ååæµæ£éè¦ä½¿ç¨ç积å |
| | | BigDecimal maxDeductionIntegral = maxDeductionCash.multiply(cashToIntegralRata).multiply(new BigDecimal("100")); |
| | | BigDecimal deductionRata = BigDecimal.ONE; |
| | | //妿å®é
积åå°äºæå¤§éè¦ç§¯å éè¦è®¡ç®æ¯ä¾å æ¯ å»å¯¹åºæ·»å è³å¯¹åºçååé |
| | | if(totalIntegral.compareTo(maxDeductionIntegral)<=Constants.ZERO) { |
| | | deductionRata = totalIntegral.divide(maxDeductionIntegral, 2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | //è·åæ»çæµæ£éé¢ ä¸ æ¯ä¸ªåå坿µæ£éé¢ |
| | | //å·²ç¨å æ¯æ¯ä¾å¼ |
| | | BigDecimal rata = BigDecimal.ZERO; |
| | | //å©ä½å¯åé
éé¢ |
| | | BigDecimal surplusValidAmount = maxDeductionCash; |
| | | for (int j = 0; j < goodsCalculateList.size(); j++) { |
| | | if(Constants.equalsInteger(j+1,goodsCalculateList.size())){ |
| | | goodsCalculateList.get(j).setIntegralMaxDeductCash(surplusValidAmount); |
| | | goodsCalculateList.get(j).setOrderIntegralRata(new BigDecimal("1").subtract(rata)); |
| | | }else{ |
| | | //积åæå¤§å¯æµæ£éé¢ |
| | | goodsCalculateList.get(j).setIntegralMaxDeductCash( |
| | | goodsCalculateList.get(j).getSkuAmount() |
| | | .subtract(goodsCalculateList.get(j).getCouponDeductCash()) |
| | | .multiply(goodsCalculateList.get(j).getDeductRata())); |
| | | //订åä¸ç§¯åéé¢å®é
å æ¯ |
| | | goodsCalculateList.get(j).setOrderIntegralRata( |
| | | goodsCalculateList.get(j) |
| | | .getIntegralMaxDeductCash().divide(maxDeductionCash,2,BigDecimal.ROUND_DOWN) |
| | | ); |
| | | rata = rata.add(goodsCalculateList.get(j).getOrderIntegralRata()); |
| | | surplusValidAmount = surplusValidAmount.subtract(goodsCalculateList.get(j).getIntegralMaxDeductCash()); |
| | | } |
| | | //å¦æç¨æ·ç§¯åå¤§äºæ¬æ¬¡éè¦ä½¿ç¨çæå¤§ç§¯å åç´æ¥ä½¿ç¨å¦åéè¦éæ°è®¡ç® |
| | | goodsCalculateList.get(j).setIntegralDeductCash(goodsCalculateList.get(j).getIntegralMaxDeductCash().multiply(deductionRata)); |
| | | goodsCalculateList.get(j).setIntegralDeduct(goodsCalculateList.get(j).getIntegralMaxDeductCash().multiply(cashToIntegralRata).multiply(deductionRata)); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * å¬åè´§ |
| | | * @param orderId |
| | |
| | | orderUrgeMapper.insert(orderUrge); |
| | | } |
| | | |
| | | @Override |
| | | public void delOrder(Integer orderId,Integer memberId){ |
| | | Goodsorder goodsorder = goodsorderMapper.selectById(orderId); |
| | | if(!goodsorder.getMemberId().equals(memberId)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼ç¨æ·ä¿¡æ¯å¹é
失败ï¼"); |
| | | } |
| | | if(!goodsorder.getStatus().equals(Constants.OrderStatus.CLOSE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼å½å订åç¶æï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | goodsorder.setIsdeleted(Constants.ONE); |
| | | goodsorder.setEditDate(new Date()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 订å确认æ¶è´§ |
| | |
| | | if(!goodsorder.getMemberId().equals(memberId)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼ç¨æ·ä¿¡æ¯å¹é
失败ï¼"); |
| | | } |
| | | if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼èªæè®¢åï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | if(!goodsorder.getStatus().equals(Constants.OrderStatus.WAIT_RECEIVE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼è®¢åæªåè´§ï¼æ æ³è¿è¡ç¡®è®¤ï¼"); |
| | | } |
| | |
| | | goodsorder.setStatus(Constants.OrderStatus.DONE.getKey()); |
| | | goodsorder.setDoneDate(new Date()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | //ç»éååé æ·»å åééé¢è®°å½ |
| | | this.addShopIntegral(goodsorder); |
| | | } |
| | | |
| | | /** |
| | | * è®¢åæ ¸é |
| | | * @param code |
| | | * @param memberId |
| | | */ |
| | | @Override |
| | | public void orderWriteOff(String exchangeCode,Integer memberId){ |
| | | Goodsorder goodsorder = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda() |
| | | .eq(Goodsorder::getExchangeCode,exchangeCode) |
| | | .eq(Goodsorder::getIsdeleted,Constants.ZERO).last("limit 1 ")); |
| | | if(Objects.isNull(goodsorder)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼é
é订åï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | if(!goodsorder.getStatus().equals(Constants.OrderStatus.PAY_DONE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æä½å¤±è´¥ï¼è®¢åç¶æå·²æµè½¬ï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | Shop shop = shopMapper.selectById(goodsorder.getPickUpShopId());/*selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getMemberId,memberId) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO).last("limit 1 ") |
| | | );*/ |
| | | if(Objects.isNull(shop)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°è®¢åå
³èç»éåä¿¡æ¯,请è系管çå"); |
| | | } |
| | | if(!Constants.equalsInteger(shop.getMemberId(),memberId)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"["+shop.getName()+"]鿍ç»å®çç»éåï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | goodsorder.setStatus(Constants.OrderStatus.DONE.getKey()); |
| | | goodsorder.setDoneDate(new Date()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | //ç»éååé æ·»å åééé¢è®°å½ |
| | | this.addShopIntegral(goodsorder); |
| | | } |
| | | |
| | | |
| | | public void addShopIntegral(Goodsorder goodsorder){ |
| | | if(Objects.isNull(goodsorder.getDistributionShopId())){ |
| | | return; |
| | | } |
| | | List<GoodsorderDetail> detailList = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda() |
| | | .eq(GoodsorderDetail::getOrderId,goodsorder.getId()) |
| | | .isNotNull(GoodsorderDetail::getShopSettlement) |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(detailList)){ |
| | | BigDecimal settlement = detailList.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | //æ´æ°ä½é¢ä¿¡æ¯ æ·»å 积ååå¨è®°å½ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(settlement); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | | dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | | dealIntegralRequest.setOrderCode(goodsorder.getCode().toString()); |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_SETTLEMENT); |
| | | integralService.dealShopIntegral(dealIntegralRequest); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public HomeInfoResponse getHomeInfo(int memberId){ |
| | | HomeInfoResponse homeInfoResponse = new HomeInfoResponse(); |
| | | Member member = memberMapper.selectById(memberId); |
| | | if(Objects.isNull(member)){ |
| | | return homeInfoResponse; |
| | | } |
| | | homeInfoResponse.setMember(member); |
| | | homeInfoResponse.setWaitReceiveNum( |
| | | goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Goodsorder::getMemberId,member.getId()) |
| | | .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey())) |
| | | ); |
| | | homeInfoResponse.setWaitPayNum( |
| | | goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Goodsorder::getMemberId,member.getId()) |
| | | .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey())) |
| | | ); |
| | | homeInfoResponse.setCartTypeNum( |
| | | shopcartMapper.selectCount(new QueryWrapper<Shopcart>().lambda() |
| | | .eq(Shopcart::getIsdeleted,Constants.ZERO) |
| | | .eq(Shopcart::getMemberId,member.getId())) |
| | | ); |
| | | homeInfoResponse.setCouponNum( |
| | | memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getIsdeleted,Constants.ZERO) |
| | | .eq(MemberCoupon::getMemberId,member.getId()) |
| | | .eq(MemberCoupon::getStatus,Constants.ZERO) |
| | | .apply(" end_date >now() ") |
| | | ) |
| | | ); |
| | | homeInfoResponse.setCollectNum( |
| | | collectMapper.selectCount(new QueryWrapper<Collect>().lambda() |
| | | .eq(Collect::getIsdeleted,Constants.ZERO) |
| | | .eq(Collect::getMemberId,member.getId()) |
| | | ) |
| | | ); |
| | | |
| | | return homeInfoResponse; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.IntegralMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.dao.business.join.IntegralJoinMapper; |
| | | import com.doumee.dao.business.model.Fund; |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.IntegralDTO; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.service.business.AreasService; |
| | |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | |
| | | @Transactional(rollbackFor = {Exception.class, BusinessException.class}) |
| | | @Override |
| | |
| | | integral.setNum(dealIntegralRequest.getIntegralNum()); |
| | | integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? member.getIntegral().add(integral.getNum()):member.getIntegral().subtract(integral.getNum())); |
| | | integral.setOrderCode(dealIntegralRequest.getOrderCode()); |
| | | integral.setUserType(Constants.ZERO); |
| | | integralMapper.insert(integral); |
| | | if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){ |
| | | memberMapper.addIntegral(member.getId(),dealIntegralRequest.getIntegralNum(), |
| | |
| | | return integral.getId(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class, BusinessException.class}) |
| | | public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest) { |
| | | Shop shop = shopMapper.selectById(dealIntegralRequest.getMemberId()); |
| | | if(Objects.isNull(shop)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°åæ·ä¿¡æ¯"); |
| | | } |
| | | Integral integral = new Integral(); |
| | | integral.setMemberId(shop.getId()); |
| | | integral.setCreateDate(new Date()); |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setTitle(dealIntegralRequest.getIntegralObjType().getName()); |
| | | integral.setContent(dealIntegralRequest.getIntegralObjType().getNoteinfo()); |
| | | integral.setObjId(dealIntegralRequest.getObjId()); |
| | | integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey()); |
| | | integral.setType(dealIntegralRequest.getDealType()); |
| | | integral.setNum(dealIntegralRequest.getIntegralNum()); |
| | | integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? shop.getIntegral().add(integral.getNum()):shop.getIntegral().subtract(integral.getNum())); |
| | | integral.setOrderCode(dealIntegralRequest.getOrderCode()); |
| | | integral.setUserType(Constants.ONE); |
| | | integralMapper.insert(integral); |
| | | if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){ |
| | | shopMapper.addIntegral(shop.getId(),dealIntegralRequest.getIntegralNum(), |
| | | dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO); |
| | | }else{ |
| | | shopMapper.subtractIntegral(shop.getId(),dealIntegralRequest.getIntegralNum()); |
| | | } |
| | | return integral.getId(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.ListUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.CouponMapper; |
| | | import com.doumee.dao.business.MemberCouponJoinMapper; |
| | | import com.doumee.dao.business.MemberCouponMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.dto.MemberCouponDTO; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.response.MemberCouponResponse; |
| | | import com.doumee.dao.web.response.goods.OrderGoodsCalculateResponse; |
| | | import com.doumee.service.business.MemberCouponService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * ç¨æ·ä¼æ å¸å
³è表Serviceå®ç° |
| | |
| | | private MemberCouponMapper memberCouponMapper; |
| | | |
| | | @Autowired |
| | | private GoodsMapper goodsMapper; |
| | | |
| | | @Autowired |
| | | private GoodsSkuMapper goodsSkuMapper; |
| | | |
| | | @Autowired |
| | | private MemberCouponJoinMapper memberCouponJoinMapper; |
| | | |
| | | @Autowired |
| | | private LabelsMapper labelsMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private CouponMapper couponMapper; |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<CouponDTO> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType) { |
| | | IPage<CouponDTO> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<CouponDTO>() |
| | | public IPage<MemberCouponResponse> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType,Integer status) { |
| | | IPage<MemberCouponResponse> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<MemberCouponResponse>() |
| | | .eq("m.MEMBER_ID",memberId) |
| | | .eq("m.TYPE",Constants.ONE) |
| | | .eq("m.STATUS",Constants.ZERO) |
| | | .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ZERO),"m.STATUS = 0 and m.END_DATE >= now()" ) |
| | | .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ONE),"m.STATUS = 1" ) |
| | | .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.TWO),"m.STATUS = 0 and m.END_DATE < now() " ) |
| | | .eq("TYPE",couponType) |
| | | .apply(!Objects.isNull(price)," m.LIMIT_PRICE >= "+price+" ") |
| | | .apply(" now() between m.START_DATE and m.END_DATE ") |
| | |
| | | ); |
| | | return page; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public MemberCouponResponse getMemberCouponDetail(Integer id){ |
| | | MemberCoupon memberCoupon = memberCouponJoinMapper.selectById(id); |
| | | if(Objects.isNull(memberCoupon)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | MemberCouponResponse memberCouponResponse = new MemberCouponResponse(); |
| | | BeanUtils.copyProperties(memberCoupon,memberCouponResponse); |
| | | if(StringUtils.isNotBlank(memberCouponResponse.getApplyIds())){ |
| | | if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.ONE)){ |
| | | List<Labels> labelsList = labelsMapper.selectList(new QueryWrapper<Labels>().lambda() |
| | | .eq(Labels::getIsdeleted,Constants.ZERO) |
| | | .eq(Labels::getType,Constants.LabelsType.GOODSTYPE.getKey()) |
| | | .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"' ) ") |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(labelsList)){ |
| | | memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList())); |
| | | } |
| | | }else if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.TWO)){ |
| | | List<Goods> labelsList = goodsMapper.selectList(new QueryWrapper<Goods>().lambda() |
| | | .eq(Goods::getIsdeleted,Constants.ZERO) |
| | | .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"' ) ") |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(labelsList)){ |
| | | memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return memberCouponResponse; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 伿 叿°é |
| | |
| | | public long memberCouponNum( BigDecimal price, Integer memberId,Integer couponType) { |
| | | long count = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>() |
| | | .eq("MEMBER_ID",memberId) |
| | | .eq("TYPE",Constants.ONE) |
| | | .eq("STATUS",Constants.ZERO) |
| | | .eq("TYPE",couponType) |
| | | .apply("LIMIT_PRICE >= "+price+" ") |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ®ååä¿¡æ¯è·åéç¨ç伿 å¸ |
| | | */ |
| | | @Override |
| | | public List<MemberCoupon> getApplyCoupon(List<PayDetailRequest> requestList,Integer memberId){ |
| | | List<MemberCoupon> memberCouponList = new ArrayList<>(); |
| | | List<GoodsSku> goodsSkuList = goodsSkuMapper.selectList(new QueryWrapper<GoodsSku>() |
| | | .lambda() |
| | | .eq(GoodsSku::getIsdeleted,Constants.ZERO) |
| | | .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList())) |
| | | ); |
| | | if(CollectionUtils.isEmpty(goodsSkuList)||!Constants.equalsInteger(goodsSkuList.size(),requestList.size())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ååSKUä¿¡æ¯é误,è¯·å·æ°éè¯"); |
| | | } |
| | | |
| | | //æ¥è¯¢ååå表 |
| | | List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class, |
| | | new MPJLambdaWrapper<Goods>() |
| | | .selectAs(GoodsSku::getPrice,Goods::getSkuPrice) |
| | | .selectAs(GoodsSku::getId,Goods::getSkuId) |
| | | .leftJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId) |
| | | .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList()))); |
| | | |
| | | if(Objects.isNull(goodsList)){ |
| | | return memberCouponList; |
| | | } |
| | | |
| | | //è·åéæ©çååæ»éé¢ ä¸ å个ååéé¢ |
| | | BigDecimal totalAmount = BigDecimal.ZERO; |
| | | for (Goods goods:goodsList) { |
| | | List<PayDetailRequest> request = requestList.stream().filter(i->Constants.equalsInteger(i.getGoodsSkuId(), goods.getSkuId())).collect(Collectors.toList()); |
| | | if(CollectionUtils.isNotEmpty(request)){ |
| | | goods.setSkuAmount(goods.getSkuPrice().multiply(new BigDecimal(request.get(Constants.ZERO).getGoodsNum()+""))); |
| | | totalAmount = totalAmount.add(goods.getSkuAmount()); |
| | | } |
| | | } |
| | | List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new); |
| | | //è·åæææ»¡è¶³éé¢ä¸å¯ç¨ç伿 å¸ |
| | | List<MemberCoupon> allCoupon = memberCouponMapper.selectList(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getIsdeleted,Constants.ZERO) |
| | | .eq(MemberCoupon::getStatus,Constants.ZERO) |
| | | .apply(" LIMIT_PRICE <= " + totalAmount) |
| | | .apply(" now() between START_DATE and END_DATE ")); |
| | | |
| | | if(CollectionUtils.isNotEmpty(allCoupon)){ |
| | | for (MemberCoupon memberCoupon:allCoupon) { |
| | | //éç¨ç±»åï¼0=å
¨åº;1=åç±»ï¼2=æå®åå |
| | | if(Constants.equalsInteger(memberCoupon.getApplyType(),Constants.ZERO)){ |
| | | memberCoupon.setValidAmount(memberCoupon.getPrice()); |
| | | }else{ |
| | | List<String> applyIdList = Arrays.asList(memberCoupon.getApplyIds().split(",")); |
| | | //è·åææå¯ä»¥ä½¿ç¨ä¼æ å¸çæ°æ® |
| | | isVaildUse(applyIdList,goodsCalculateList, |
| | | Constants.equalsInteger(memberCoupon.getApplyType(),Constants.ONE)?Constants.ONE:Constants.ZERO); |
| | | BigDecimal skuAmount = goodsCalculateList.stream().filter(i->i.getUseCoupon()).map(i->i.getSkuAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | if(skuAmount.compareTo(memberCoupon.getLimitPrice())>=Constants.ZERO){ |
| | | //æ ¹æ®éé¢è®¡ç®å®é
ææ£éé¢ |
| | | BigDecimal couponPrice = skuAmount.multiply(memberCoupon.getPrice()).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP); |
| | | //ææ£éé¢å¤§äºæå¤§å¯ææ£éé¢ åä½¿ç¨æå¤§å¯ææ£éé¢ |
| | | memberCoupon.setValidAmount(couponPrice.compareTo(memberCoupon.getMaxPrice())>Constants.ZERO?memberCoupon.getMaxPrice():couponPrice); |
| | | memberCouponList.add(memberCoupon); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // ä½¿ç¨ Stream æåº reversed() 表示ååº |
| | | memberCouponList = memberCouponList.stream().sorted(Comparator.comparing(MemberCoupon::getValidAmount,Comparator.nullsFirst(BigDecimal::compareTo)).reversed()) |
| | | .collect(Collectors.toList()); |
| | | return memberCouponList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 计ç®å½å已鿩伿 叿¯ä¸ªååå æ¯éé¢ |
| | | * @param coupon 伿 å¸ä¿¡æ¯ |
| | | * @param goodsCalculateList ååéå |
| | | * @param totalAmount è®¢åæ»éé¢ |
| | | */ |
| | | public void calculateCouponRata(MemberCoupon coupon,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalAmount){ |
| | | //æ»ä½é¢ |
| | | BigDecimal validAmount = coupon.getValidAmount(); |
| | | //å©ä½å¯åé
éé¢ |
| | | BigDecimal surplusValidAmount = validAmount; |
| | | //å·²ç¨å æ¯æ¯ä¾å¼ |
| | | BigDecimal rata = BigDecimal.ZERO; |
| | | //æ ¹æ®ä¼æ å¸ç±»å 计ç®å¯ä»¥ä½¿ç¨ä¼æ å¸çååä¿¡æ¯ éç¨ç±»åï¼0=å
¨åº;1=åç±»ï¼2=æå®åå |
| | | if(!Constants.equalsInteger(coupon.getApplyType(),Constants.ZERO)){ |
| | | List<String> applyIdList = Arrays.asList(coupon.getApplyIds().split(",")); |
| | | isVaildUse(applyIdList,goodsCalculateList, |
| | | Constants.equalsInteger(coupon.getApplyType(),Constants.ONE)?Constants.ONE:Constants.ZERO); |
| | | } |
| | | //使ç¨äºä¼æ å¸çååæ°é |
| | | Integer countCouponNum = goodsCalculateList.stream().filter(i->i.getUseCoupon()).collect(Collectors.toList()).size(); |
| | | Integer useCouponNum = Constants.ZERO; |
| | | for (int i = 0; i < goodsCalculateList.size(); i++) { |
| | | if(!goodsCalculateList.get(i).getUseCoupon()){ |
| | | goodsCalculateList.get(i).setCouponDeductCash(BigDecimal.ZERO); |
| | | continue; |
| | | } |
| | | if(Constants.equalsInteger(useCouponNum+1,countCouponNum)){ |
| | | goodsCalculateList.get(i).setOrderCouponRata(new BigDecimal("1").subtract(rata)); |
| | | goodsCalculateList.get(i).setCouponDeductCash(surplusValidAmount); |
| | | break; |
| | | } |
| | | goodsCalculateList.get(i).setOrderCouponRata(goodsCalculateList.get(i).getSkuAmount().divide(totalAmount,2,BigDecimal.ROUND_DOWN)); |
| | | goodsCalculateList.get(i).setCouponDeductCash(validAmount.multiply(goodsCalculateList.get(i).getOrderCouponRata())); |
| | | surplusValidAmount = surplusValidAmount.subtract(goodsCalculateList.get(i).getCouponDeductCash()); |
| | | rata = rata.add(goodsCalculateList.get(i).getOrderCouponRata()); |
| | | useCouponNum = useCouponNum + 1; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 夿æ¯å¦å¯ä»¥ææä½¿ç¨ |
| | | * @param idList |
| | | * @param goodsList |
| | | * @param vaildType 0=ååï¼1=åç±» |
| | | * @return |
| | | */ |
| | | public void isVaildUse(List<String> idList,List<OrderGoodsCalculateResponse> goodsList,Integer vaildType){ |
| | | for (OrderGoodsCalculateResponse response:goodsList) { |
| | | response.setUseCoupon(idList.contains(Constants.equalsInteger(vaildType,Constants.ZERO)?response.getId().toString():response.getCategoryId().toString())?true:false); |
| | | } |
| | | } |
| | | // public Set<Integer> isVaildUse(List<String> idList,List<OrderGoodsCalculateResponse> goodsList,Integer vaildType){ |
| | | // List<OrderGoodsCalculateResponse> resultList = new ArrayList<>(); |
| | | // for (String id:idList) { |
| | | // if(Constants.equalsInteger(vaildType,Constants.ZERO)){ |
| | | // resultList.addAll(goodsList.stream().filter(i->i.getId().toString().equals(id)).collect(Collectors.toList())); |
| | | // }else{ |
| | | // resultList.addAll(goodsList.stream().filter(i->i.getCategoryId().toString().equals(id)).collect(Collectors.toList())); |
| | | // } |
| | | // } |
| | | // if(CollectionUtils.isNotEmpty(resultList)){ |
| | | // return new HashSet<>(resultList.stream().map(i->i.getId()).collect(Collectors.toList())); |
| | | // } |
| | | // return new HashSet<>(); |
| | | // } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.SmsrecordMapper; |
| | | import com.doumee.dao.business.join.MemberJoinMapper; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Smsrecord; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.dto.MemberRechargeDTO; |
| | | import com.doumee.dao.web.dto.MemberOwnDTO; |
| | | import com.doumee.dao.web.dto.shop.Position; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.dao.web.request.UpdMobileRequest; |
| | | import com.doumee.dao.web.request.UpdateMemberRequest; |
| | | import com.doumee.dao.web.request.WxPhoneRequest; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private SmsrecordMapper smsrecordMapper; |
| | | |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Override |
| | | public Member updateMember(UpdateMemberRequest updateMemberRequest){ |
| | | if(StringUtils.isBlank(updateMemberRequest.getImgurl()) |
| | | && StringUtils.isBlank(updateMemberRequest.getNickname()) |
| | | && StringUtils.isBlank(updateMemberRequest.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = new Member(); |
| | | BeanUtils.copyProperties(updateMemberRequest,member); |
| | | member.setId(updateMemberRequest.getMemberId()); |
| | |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl()); |
| | | return dbMember; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public MemberOwnDTO getMemberOwnDTO(Integer memberId) { |
| | |
| | | memberMapper.updateById(member); |
| | | } |
| | | |
| | | @Override |
| | | public void verifyUserPhone(UpdMobileRequest request){ |
| | | if(Objects.isNull(request) |
| | | || Objects.isNull(request.getMemberId()) |
| | | || StringUtils.isBlank(request.getPhone()) |
| | | || StringUtils.isBlank(request.getCode()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(request.getMemberId()); |
| | | if(StringUtils.isNotBlank(member.getPhone())&&!member.getPhone().equals(request.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ææºå·é误"); |
| | | } |
| | | this.verifyPhoneCode(request.getCode(),request.getMemberId()); |
| | | } |
| | | |
| | | public void verifyPhoneCode(String code,Integer memberId){ |
| | | //éªè¯ç |
| | | Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda() |
| | | .eq(Smsrecord::getIsdeleted,Constants.ZERO) |
| | | .eq(Smsrecord::getCode,code) |
| | | .eq(Smsrecord::getMemberId,memberId) |
| | | .last(" limit 1") |
| | | ); |
| | | if(Objects.isNull(smsrecord)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éªè¯ç é误ï¼"); |
| | | } |
| | | if(!Constants.equalsInteger(smsrecord.getStatus(),Constants.ZERO)){ |
| | | if(Constants.equalsInteger(smsrecord.getStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éªè¯ç 已使ç¨"); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éªè¯ç å·²è¿æ"); |
| | | } |
| | | } |
| | | smsrecordMapper.update(new UpdateWrapper<Smsrecord>().lambda() |
| | | .set(Smsrecord::getStatus,Constants.ONE) |
| | | .eq(Smsrecord::getId,smsrecord.getId()) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public void updateUserPhone(UpdMobileRequest request){ |
| | | if(Objects.isNull(request) |
| | | || Objects.isNull(request.getMemberId()) |
| | | || StringUtils.isBlank(request.getPhone()) |
| | | || StringUtils.isBlank(request.getCode()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(request.getMemberId()); |
| | | if(StringUtils.isNotBlank(member.getPhone())&&member.getPhone().equals(request.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æ æ³æ´æ¢ç¸åææºå·"); |
| | | } |
| | | this.verifyPhoneCode(request.getCode(),request.getMemberId()); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getPhone,request.getPhone()) |
| | | .eq(Member::getId,request.getMemberId()) |
| | | ); |
| | | } |
| | | |
| | | |
| | | |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | @Override |
| | | public Integer importMemberRechargeBatch(MultipartFile file) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.ShopGoodsRelationMapper; |
| | | import com.doumee.dao.business.model.ShopGoodsRelation; |
| | | import com.doumee.service.business.ShopGoodsRelationService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç»éåä¾è´§ä»·ä¿¡æ¯Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2025/12/15 09:39 |
| | | */ |
| | | @Service |
| | | public class ShopGoodsRelationServiceImpl implements ShopGoodsRelationService { |
| | | |
| | | @Autowired |
| | | private ShopGoodsRelationMapper shopGoodsRelationMapper; |
| | | |
| | | @Override |
| | | public Integer create(ShopGoodsRelation shopGoodsRelation) { |
| | | shopGoodsRelationMapper.insert(shopGoodsRelation); |
| | | return shopGoodsRelation.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | shopGoodsRelationMapper.deleteById(id); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(ShopGoodsRelation shopGoodsRelation) { |
| | | UpdateWrapper<ShopGoodsRelation> deleteWrapper = new UpdateWrapper<>(shopGoodsRelation); |
| | | shopGoodsRelationMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | shopGoodsRelationMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(ShopGoodsRelation shopGoodsRelation) { |
| | | shopGoodsRelationMapper.updateById(shopGoodsRelation); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<ShopGoodsRelation> shopGoodsRelations) { |
| | | if (CollectionUtils.isEmpty(shopGoodsRelations)) { |
| | | return; |
| | | } |
| | | for (ShopGoodsRelation shopGoodsRelation: shopGoodsRelations) { |
| | | this.updateById(shopGoodsRelation); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public ShopGoodsRelation findById(Integer id) { |
| | | return shopGoodsRelationMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public ShopGoodsRelation findOne(ShopGoodsRelation shopGoodsRelation) { |
| | | QueryWrapper<ShopGoodsRelation> wrapper = new QueryWrapper<>(shopGoodsRelation); |
| | | return shopGoodsRelationMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<ShopGoodsRelation> findList(ShopGoodsRelation shopGoodsRelation) { |
| | | QueryWrapper<ShopGoodsRelation> wrapper = new QueryWrapper<>(shopGoodsRelation); |
| | | return shopGoodsRelationMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<ShopGoodsRelation> findPage(PageWrap<ShopGoodsRelation> pageWrap) { |
| | | IPage<ShopGoodsRelation> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<ShopGoodsRelation> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(ShopGoodsRelation::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(ShopGoodsRelation::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(ShopGoodsRelation::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(ShopGoodsRelation::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getShopId() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getShopId, pageWrap.getModel().getShopId()); |
| | | } |
| | | if (pageWrap.getModel().getGoodsSkuId() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getGoodsSkuId, pageWrap.getModel().getGoodsSkuId()); |
| | | } |
| | | if (pageWrap.getModel().getPrice() != null) { |
| | | queryWrapper.lambda().eq(ShopGoodsRelation::getPrice, pageWrap.getModel().getPrice()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(shopGoodsRelationMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | @Override |
| | | public long count(ShopGoodsRelation shopGoodsRelation) { |
| | | QueryWrapper<ShopGoodsRelation> wrapper = new QueryWrapper<>(shopGoodsRelation); |
| | | return shopGoodsRelationMapper.selectCount(wrapper); |
| | | } |
| | | } |
| | |
| | | return page; |
| | | } |
| | | |
| | | /** |
| | | * è´ç©è½¦ååæ°é |
| | | * @param memberId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer cartGoodsTypeNum(Integer memberId) { |
| | | return shopcartMapper.selectList(new QueryWrapper<Shopcart>().lambda() |
| | | .eq(Shopcart::getMemberId,memberId) |
| | | .eq(Shopcart::getIsdeleted,Constants.ZERO) |
| | | ).size(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ´æ°è´ç©è½¦æ°é |
| | |
| | | wx: |
| | | pay: |
| | | appId: wxcd2b89fd2ff065f8 |
| | | appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24 |
| | | appSecret: 3462fa186da7cb06c544df8d8664b63a |
| | | mchId: 1229817002 |
| | | mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | notifyUrl: https://dmtest.ahapp.net/dmmall_interface/web/api/wxPayNotify |
| | |
| | | public GoodsorderService goodsorderService; |
| | | |
| | | @Autowired |
| | | public ShopService shopService; |
| | | |
| | | |
| | | @Autowired |
| | | public GoodsorderDetailService goodsorderDetailService; |
| | | |
| | | @Autowired |
| | |
| | | @Autowired |
| | | public ArticleService articleService; |
| | | |
| | | @Autowired |
| | | public ShopService shopService; |
| | | |
| | | @Autowired |
| | | public ShopNewsService shopNewsService; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.web.mall; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.doumee.api.web.ApiController; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.web.request.PageRequest; |
| | | import com.doumee.dao.web.request.UpdMobileRequest; |
| | | import com.doumee.dao.web.response.HomeInfoResponse; |
| | | import com.doumee.dao.web.response.OrderDetailResponse; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2025/12/15 13:59 |
| | | */ |
| | | |
| | | @Api(tags = "个人ä¸å¿") |
| | | @Trace(exclude = true) |
| | | @RestController |
| | | @RequestMapping("/web/home") |
| | | @Slf4j |
| | | public class HomeApi extends ApiController { |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("æçä¿¡æ¯") |
| | | @GetMapping("/myInfo") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<HomeInfoResponse> myInfo() { |
| | | return ApiResponse.success("æ¥è¯¢æå",goodsorderService.getHomeInfo(getMemberId())); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("éªè¯ææºå·") |
| | | @PostMapping("/verifyUserPhone") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse verifyUserPhone(@RequestBody UpdMobileRequest request) { |
| | | memberService.verifyUserPhone(request); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("æ´æ¢ç»å®ææºå·") |
| | | @PostMapping("/updateUserPhone") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse updateUserPhone(@RequestBody UpdMobileRequest request) { |
| | | memberService.updateUserPhone(request); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.wx.SendWxMessage; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.request.OrderPayRequest; |
| | | import com.doumee.dao.web.request.PageRequest; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.request.ShopOrderPayRequest; |
| | | import com.doumee.dao.web.request.goods.DealOrderRequest; |
| | | import com.doumee.dao.web.request.goods.MemberOrderRequest; |
| | | import com.doumee.dao.web.request.goods.OrderCommentRequest; |
| | | import com.doumee.dao.web.response.MemberCouponResponse; |
| | | import com.doumee.dao.web.response.MyPageResponse; |
| | | import com.doumee.dao.web.response.OrderCommentResponse; |
| | | import com.doumee.dao.web.response.OrderDetailResponse; |
| | | import com.doumee.dao.web.response.goods.MemberOrderResponse; |
| | | import com.doumee.dao.web.response.goods.PayResponse; |
| | | import com.doumee.service.business.HotCityService; |
| | | import com.doumee.service.business.impl.MemberCouponServiceImpl; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @ApiImplicitParam(paramType = "query", dataType = "Long", name = "current", value = "页ç ", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Long", name = "size", value = "æ¯é¡µè®°å½æ°", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "伿 å¸ç±»å«ï¼0å家伿 å¸ 1å¹³å°ä¼æ å¸", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满é¢", required = false) |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满é¢", required = false), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "status", value = "ç¶æï¼0=æªä½¿ç¨;1=已使ç¨ï¼2=å·²è¿æ", required = false) |
| | | }) |
| | | public ApiResponse<IPage<CouponDTO>> memberCouponPage(PageRequest pageable, Integer couponType, BigDecimal limitPrice) { |
| | | IPage<CouponDTO> page = memberCouponService.memberCouponPage(pageable.toPage(),limitPrice,getMemberId(),couponType); |
| | | public ApiResponse<IPage<MemberCouponResponse>> memberCouponPage(PageRequest pageable, Integer couponType, BigDecimal limitPrice, Integer status) { |
| | | IPage<MemberCouponResponse> page = memberCouponService.memberCouponPage(pageable.toPage(),limitPrice,getMemberId(),couponType,status); |
| | | return ApiResponse.success("æ¥è¯¢æå",page); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("å¯ç¨ä¼æ 叿°é") |
| | | @GetMapping("/memberCouponNum") |
| | | @ApiOperation("ä¼å伿 å¸è¯¦æ
") |
| | | @GetMapping("/memberCouponDetail") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "伿 å¸ç±»å«", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满é¢", required = true) |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "主é®", required = true) |
| | | }) |
| | | public ApiResponse<Long> memberCouponNum(Integer couponType, BigDecimal limitPrice) { |
| | | return ApiResponse.success("æ¥è¯¢æå", memberCouponService.memberCouponNum(limitPrice,getMemberId(),couponType)); |
| | | public ApiResponse<MemberCouponResponse> memberCouponDetail(Integer id) { |
| | | return ApiResponse.success("æ¥è¯¢æå",memberCouponService.getMemberCouponDetail(id)); |
| | | } |
| | | |
| | | |
| | | // @LoginRequired |
| | | // @ApiOperation("å¯ç¨ä¼æ 叿°é") |
| | | // @GetMapping("/memberCouponNum") |
| | | // @ApiImplicitParams({ |
| | | // @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | // @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "伿 å¸ç±»å«", required = true), |
| | | // @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "满é¢", required = true) |
| | | // }) |
| | | // public ApiResponse<Integer> memberCouponNum(Integer couponType, BigDecimal limitPrice) { |
| | | // return ApiResponse.success("æ¥è¯¢æå", memberCouponService.memberCouponNum(limitPrice,getMemberId(),couponType)); |
| | | // } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("å¯ç¨ä¼æ å¸ä¿¡æ¯") |
| | | @PostMapping("/getApplyCoupon") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<List<MemberCoupon>> getApplyCoupon(@RequestBody List<PayDetailRequest> requestList) { |
| | | return ApiResponse.success("æ¥è¯¢æå", memberCouponService.getApplyCoupon(requestList,getMemberId())); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("ç»éåå表") |
| | | @PostMapping("/shopPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<IPage<Shop>> shopPage(@RequestBody PageWrap<Shop> pageWrap) { |
| | | IPage<Shop> page = goodsorderService.getShopPage(pageWrap); |
| | | return ApiResponse.success("æ¥è¯¢æå",page); |
| | | } |
| | | |
| | | @Autowired |
| | | public MemberCouponServiceImpl memberCouponServiceImpl; |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è®¢åæ¯ä»") |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<PayResponse> orderPay(@Valid @RequestBody OrderPayRequest orderPayRequest) { |
| | | orderPayRequest.setMemberId(getMemberId()); |
| | | return ApiResponse.success("æä½æå", goodsorderService.orderPay(orderPayRequest)); |
| | | public ApiResponse<PayResponse> orderPay(@Valid @RequestBody ShopOrderPayRequest request) { |
| | | request.setMemberId(getMemberId()); |
| | | return ApiResponse.success("æä½æå", goodsorderService.orderPay(request, memberCouponServiceImpl)); |
| | | } |
| | | |
| | | @LoginRequired |
| | |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("æç订åå表") |
| | | @ApiOperation("订åå表") |
| | | @PostMapping("/orderPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse cancelOrder(@RequestBody DealOrderRequest dealOrderRequest) { |
| | | goodsorderService.cancelOrder(dealOrderRequest.getOrderId(),getMemberId(),dealOrderRequest.getCancelInfo()); |
| | | goodsorderService.cancelOrderNew(dealOrderRequest.getOrderId(),getMemberId(),dealOrderRequest.getCancelInfo()); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è®¢åæ ¸é") |
| | | @PostMapping("/writeOffOrder") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse writeOffOrder(@RequestBody DealOrderRequest dealOrderRequest) { |
| | | goodsorderService.orderWriteOff(dealOrderRequest.getExchangeCode(),getMemberId()); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("订åå é¤") |
| | | @PostMapping("/delOrder") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse delOrder(@RequestBody DealOrderRequest dealOrderRequest) { |
| | | goodsorderService.delOrder(dealOrderRequest.getOrderId(),getMemberId()); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("订åè¯è®º") |
| | | @PostMapping("/orderComment") |
| | | @ApiImplicitParams({ |
| | |
| | | fundService.create(fund); |
| | | break; |
| | | } |
| | | case "shopGoods": { |
| | | Goodsorder DBGoodsOrder = new Goodsorder(); |
| | | DBGoodsOrder.setCode(Long.valueOf(outTradeNo)); |
| | | Goodsorder goodsOrder = goodsorderService.findOne(DBGoodsOrder); |
| | | if(Objects.isNull(goodsOrder)){ |
| | | return WxPayNotifyResponse.fail( "æ¯ä»åè°ä¿¡æ¯("+ wxId + ") = > æªæ¥è¯¢å°æ¯ä»å¯¹è±¡ä¿¡æ¯!"); |
| | | } |
| | | if(goodsOrder.getStatus().equals(Constants.ONE)){ |
| | | return WxPayNotifyResponse.success("å¤çæå!"); |
| | | } |
| | | goodsOrder.setPayStatus(Constants.ONE); |
| | | goodsOrder.setPayDate(new Date()); |
| | | goodsOrder.setPayOrderId(paymentNo); |
| | | goodsOrder.setStatus(Constants.OrderStatus.PAY_DONE.getKey()); |
| | | //çææ ¸éç |
| | | goodsOrder.setExchangeCode(Constants.equalsInteger(goodsOrder.getReceiveType(),Constants.ZERO)?null:Constants.getRandomNumber()); |
| | | goodsOrder.setPayMethod(Constants.ZERO); |
| | | goodsorderService.updateById(goodsOrder); |
| | | Fund fund = new Fund(); |
| | | fund.setOrderCode(goodsOrder.getPayOrderId()); |
| | | fund.setCreator(goodsOrder.getMemberId()); |
| | | fund.setCreateDate(new Date()); |
| | | fund.setIsdeleted(Constants.ZERO); |
| | | fund.setRemark(goodsOrder.getCode().toString()); |
| | | fund.setMemberId(goodsOrder.getMemberId()); |
| | | fund.setTitle("è®¢åæ¯ä»"); |
| | | fund.setContent("è®¢åæ¯ä»"); |
| | | fund.setObjId(goodsOrder.getId()); |
| | | fund.setObjType(Constants.ONE); |
| | | fund.setType(Constants.ZERO); |
| | | fund.setNum(goodsOrder.getPrice()); |
| | | fundService.create(fund); |
| | | break; |
| | | } |
| | | |
| | | } |
| | | return WxPayNotifyResponse.success("å¤çæå!"); |
| | | } |
| | |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è´ç©è½¦å表") |
| | | @GetMapping("/cartGoodsTypeNum") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<Integer> cartGoodsTypeNum() { |
| | | return ApiResponse.success("æ¥è¯¢æå",shopcartService.cartGoodsTypeNum(getMemberId())); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/deleteBatch") |
| | | @ApiImplicitParams({ |