Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dingyuannongji
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | // ä½¿ç¨ IntelliSense äºè§£ç¸å
³å±æ§ã |
| | | // æ¬å以æ¥çç°æå±æ§çæè¿°ã |
| | | // 欲äºè§£æ´å¤ä¿¡æ¯ï¼è¯·è®¿é®: https://go.microsoft.com/fwlink/?linkid=830387 |
| | | "version": "0.2.0", |
| | | "configurations": [ |
| | | { |
| | | "type": "java", |
| | | "name": "Current File", |
| | | "request": "launch", |
| | | "mainClass": "${file}" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "AdminApplication", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.AdminApplication", |
| | | "projectName": "dmmall_admin" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "CodeGenerator", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.CodeGenerator", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "CodeVerifyUtils", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.CodeVerifyUtils", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "Constants", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.Constants", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "DateUtil", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.DateUtil", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "GeneratePicUtil", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.GeneratePicUtil", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "HttpsUtil", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.HttpsUtil", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "PinYinUtil", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.PinYinUtil", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "ALiYunUtil", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.core.utils.aliyun.ALiYunUtil", |
| | | "projectName": "dmmall_service" |
| | | }, |
| | | { |
| | | "type": "java", |
| | | "name": "InterfaceApplication", |
| | | "request": "launch", |
| | | "mainClass": "com.doumee.InterfaceApplication", |
| | | "projectName": "dmmall_web" |
| | | } |
| | | ] |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "java.compile.nullAnalysis.mode": "disabled" |
| | | } |
| | |
| | | mini-program/unpackage/ |
| | | mini-program/node_modules/ |
| | | mini-program/mp-weixin/ |
| | | /CLAUDE.md |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "java.compile.nullAnalysis.mode": "automatic" |
| | | } |
| | |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:activity:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | |
| | | |
| | | 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 org.springframework.web.bind.annotation.*; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | |
| | | @Autowired |
| | | private CommentService commentService; |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:comment:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | commentService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | // @ApiOperation("æ ¹æ®IDå é¤") |
| | | // @GetMapping("/delete/{id}") |
| | | // @RequiresPermissions("business:comment:delete") |
| | | // public ApiResponse deleteById(@PathVariable Integer id) { |
| | | // commentService.deleteById(id); |
| | | // return ApiResponse.success(null); |
| | | // } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | |
| | | } |
| | | |
| | | /** |
| | | * 宿¶èªå¨å®æ 7 天æªç¡®è®¤æ¶è´§çç©æµå货订å |
| | | * æ¯ 10 åéæ§è¡ä¸æ¬¡ |
| | | */ |
| | | @Scheduled(fixedDelay = 1000L * 60 * 10L ) |
| | | public void autoCompleteOrder(){ |
| | | if (timing) { |
| | | System.out.println("å¼å§æ§è¡è®¢åèªå¨å®æä»»å¡--------Begin------"); |
| | | try { |
| | | goodsorderService.autoCompleteOrder(); |
| | | System.out.println("订åèªå¨å®æä»»å¡æ§è¡æå--------End------"); |
| | | } catch (Exception e) { |
| | | System.out.println("订åèªå¨å®æä»»å¡æ§è¡å¤±è´¥ï¼" + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 宿¶å®æå®ååç¶æ |
| | | */ |
| | | // @Scheduled(fixedDelay = 1000L * 10L ) |
| | |
| | | # application: |
| | | # name: doumeemes |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | |
| | | # JSONè¿åé
ç½® |
| | | jackson: |
| | |
| | | package com.doumee.config.Jwt; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.LoginShopRequired; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import io.jsonwebtoken.JwtException; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.lang.reflect.Method; |
| | | import java.util.Objects; |
| | | |
| | | @Configuration |
| | | public class WebMvcConfig implements WebMvcConfigurer { |
| | |
| | | if(StringUtils.isBlank(tokenRedis)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | Member member = JSONObject.parseObject(tokenRedis, Member.class); |
| | | if(Objects.isNull(member)||StringUtils.isBlank(member.getOpenId())){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | String openid = member.getOpenId(); |
| | | Integer memberId = getTokenId(token); |
| | | Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,0) from Member where id = ?", Integer.class, memberId); |
| | | Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,0) from member where id = ?", Integer.class, memberId); |
| | | if(isDeleted== Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²å é¤,请è系管çå"); |
| | | } |
| | | Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,0) from Member where id = ?", Integer.class, memberId); |
| | | Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,0) from member where id = ?", Integer.class, memberId); |
| | | if(isForbidden == Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²ç¦ç¨,请è系管çå"); |
| | | } |
| | | if(isForbidden == Constants.TWO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²æ³¨é,请è系管çå"); |
| | | } |
| | | Integer count = dao.queryForObject("select count(1) from Member where id = ?", Integer.class, memberId); |
| | | String dbOpenid = dao.queryForObject(" select ifnull(open_id,'') from member where id = ?", String.class, memberId); |
| | | if(StringUtils.isBlank(dbOpenid)||!openid.equals(dbOpenid)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"å·²è¿æï¼è¯·éæ°ç»å½"); |
| | | } |
| | | Integer count = dao.queryForObject("select count(1) from member where id = ?", Integer.class, memberId); |
| | | if (count != null && count > 0) { |
| | | request.setAttribute(JwtTokenUtil.UserId_Name, memberId); |
| | | return true; |
| | |
| | | if(StringUtils.isBlank(tokenRedis)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | Shop shop = JSONObject.parseObject(tokenRedis, Shop.class); |
| | | if(Objects.isNull(shop)||StringUtils.isBlank(shop.getOpenId())){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | String openid = shop.getOpenId(); |
| | | Integer shopId = getTokenId(token); |
| | | Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,0) from shop where id = ?", Integer.class, shopId); |
| | | if(isDeleted== Constants.ONE){ |
| | |
| | | if(isForbidden== Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²ç¦ç¨,请è系管çå"); |
| | | } |
| | | String dbOpenid = dao.queryForObject(" select ifnull(open_id,'') from shop where id = ?", String.class, shopId); |
| | | if(StringUtils.isBlank(dbOpenid)||!openid.equals(dbOpenid)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"å·²è¿æï¼è¯·éæ°ç»å½"); |
| | | } |
| | | Integer count = dao.queryForObject("select count(1) from shop where id = ?", Integer.class, shopId); |
| | | if (count != null && count > 0) { |
| | | request.setAttribute(JwtTokenUtil.ShopId_Name, shopId); |
| | |
| | | // åºæ¯ç ï¼ä¸å端约å®ï¼æç»æ¯éè¦å端解æ |
| | | body.put("scene", scene); |
| | | // æ£å¼ç为 "release"ï¼ä½éªç为 "trial"ï¼å¼åç为 "develop"ãé»è®¤æ¯æ£å¼çã |
| | | String env_version = "develop"; |
| | | String env_version = "trial"; |
| | | body.put("env_version", env_version); |
| | | if(isUsePage){ |
| | | body.put("page", page); |
| | |
| | | @Slf4j |
| | | public class GeneratePicUtil { |
| | | |
| | | static String bg="https://shoeslxkj.oss-cn-beijing.aliyuncs.com/file/20230404/SysBaseBackGround/D56231512C0B4A4C9D06B02F9566B0B0.png"; |
| | | static String bg="https://dynometacn.oss-cn-shanghai.aliyuncs.com/goods/20260319/feccd954-32f7-47e2-96fb-be102b643f1f.png"; |
| | | |
| | | static String headUrl = "https://shoeslxkj.oss-cn-beijing.aliyuncs.com/file/20230404/SysBaseBackGround/B802B64FE31447DCB030F13ECC7CA9F9.png"; |
| | | |
| | |
| | | g2.fillRect(0, 0, width, height); |
| | | |
| | | //èæ¯å¾ç |
| | | // BufferedImage titles = ImageIO.read(new URL(bg)); |
| | | // g2.drawImage(titles, 1, 1, 894, 1305, null); |
| | | // g2.drawRect(0, 0, width - 1, height - 1); |
| | | BufferedImage titles = ImageIO.read(new URL(bg)); |
| | | g2.drawImage(titles, 1, 1, 894, 1305, null); |
| | | g2.drawRect(0, 0, width - 1, height - 1); |
| | | //头é¨å¾ç |
| | | BufferedImage headBg = ImageIO.read(new URL(headImg)); |
| | | // BufferedImage headBg = getImgIO(imgurl); |
| | | g2.drawImage(headBg, 1, 1, 894, 1080, null); |
| | | g2.drawRect(0, 0, width - 1, height - 1); |
| | | |
| | | g2.setColor(Color.black); |
| | | g2.setFont(new Font("é»ä½", Font.PLAIN, 40)); |
| | | g2.drawString("é¿æè¯å«å°ç¨åº", 46, 1180); |
| | | |
| | | g2.setColor(Color.gray); |
| | | g2.setFont(new Font("é»ä½", Font.PLAIN, 32)); |
| | | g2.drawString("æ¥çæ´å¤ç²¾å½©å
容", 48, 1230); |
| | | // g2.setColor(Color.black); |
| | | // g2.setFont(new Font("é»ä½", Font.PLAIN, 40)); |
| | | // g2.drawString("é¿æè¯å«å°ç¨åº", 46, 1180); |
| | | // |
| | | // g2.setColor(Color.gray); |
| | | // g2.setFont(new Font("é»ä½", Font.PLAIN, 32)); |
| | | // g2.drawString("æ¥çæ´å¤ç²¾å½©å
容", 48, 1230); |
| | | |
| | | //设置äºç»´ç å¾ç |
| | | // BufferedImage barcodeCode = ImageIO.read(new URL(wxQrCodeImg)); |
| | |
| | | * accessSecret èªå·±çç¨æ·accessSecret |
| | | */ |
| | | DefaultProfile profile = DefaultProfile.getProfile( |
| | | "cn-hangzhou", "LTAI5tP56bE38bWvqqfSRkCQ", "lXcIyDrc9K01x3FjSgZqcKlrHwsE8b"); |
| | | "cn-hangzhou", "LTAI5tDuA9DXBJvVfJfMb19L", "IUsWIhUXd9pEgTNEkz1b3POI3javKN"); |
| | | IAcsClient client = new DefaultAcsClient(profile); |
| | | // æå»ºè¯·æ±ï¼ |
| | | CommonRequest request = new CommonRequest(); |
| | |
| | | // ææºå· |
| | | request.putQueryParameter("PhoneNumbers", phone); |
| | | // çä¿¡ç¾å |
| | | request.putQueryParameter("SignName", "è±ç±³ç§æ"); |
| | | request.putQueryParameter("SignName", "åè¥é¼å
æåç§æ"); |
| | | // ç信模çCODE |
| | | request.putQueryParameter("TemplateCode", "SMS_243960729"); |
| | | request.putQueryParameter("TemplateCode", "SMS_332555204"); |
| | | // æå»ºçä¿¡éªè¯ç |
| | | request.putQueryParameter("TemplateParam", JSONObject.toJSONString(codeMap)); |
| | | try { |
| | |
| | | * @param goodsId |
| | | * @return |
| | | */ |
| | | @Select(" select s.* , g.IMGURL as goodsImgUrl from goods_sku s left join goods g on s.GOODS_ID = g.id where s.isdeleted = 0 and s.goods_Id = #{goodsId} ") |
| | | @Select(" select s.* , s.stock as stockStr , g.IMGURL as goodsImgUrl from goods_sku s left join goods g on s.GOODS_ID = g.id where s.isdeleted = 0 and s.goods_Id = #{goodsId} ") |
| | | List<GoodsSkuResponse> getSkuResponseList(@Param("goodsId") Integer goodsId); |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.github.yulichang.base.mapper.MPJJoinMapper; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:48 |
| | | */ |
| | | public interface IntegralMapper extends BaseMapper<Integral> { |
| | | public interface IntegralMapper extends MPJJoinMapper<Integral> { |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯æä½è®°å½è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/03/21 15:17 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·ä¿¡æ¯æä½è®°å½è¡¨") |
| | | @TableName("`member_history`") |
| | | public static class MemberHistory { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | |
| | | 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 = "ç¨æ·ç¼ç ï¼å
³èmember表ï¼", example = "1") |
| | | @ExcelColumn(name="ç¨æ·ç¼ç ï¼å
³èmember表ï¼") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0ç¦ç¨ 1å¯ç¨", example = "1") |
| | | @ExcelColumn(name="ç±»å 0ç¦ç¨ 1å¯ç¨") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "æä½å¤æ³¨") |
| | | @ExcelColumn(name="æä½å¤æ³¨") |
| | | private String info; |
| | | |
| | | } |
| | | } |
| | |
| | | @TableField(exist = false) |
| | | private String content; |
| | | |
| | | @ApiModelProperty(value = "æä½ä»·" ) |
| | | @TableField(exist = false) |
| | | private BigDecimal minPrice; |
| | | |
| | | |
| | | @ApiModelProperty(value = "社åºå°é¢å¾") |
| | | @TableField(exist = false) |
| | | private String activityImgurl; |
| | | |
| | | @ApiModelProperty(value = "åç±»é¢è²") |
| | | @TableField(exist = false) |
| | | private String param; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "鿬¾å¤æ³¨", example = "1") |
| | | private Integer refundInfo; |
| | | |
| | | @ApiModelProperty(value = "鿬¾é
置信æ¯", example = "1") |
| | | private String refundConfigInfo; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°å") |
| | | @TableField(exist = false) |
| | | private String resourcePath; |
| | |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å®æé¦åï¼0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="宿æç«¯" ,index =4,width = 10,valueMapping = "0=已注å;1=宿é¦å;") |
| | | @ExcelColumn(name="宿鶿®µ" ,index =4,width = 10,valueMapping = "0=已注å;1=宿é¦å;") |
| | | private Integer firstOrderStatus; |
| | | |
| | | @ApiModelProperty(value = "宿é¦åæ¶é´") |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("æ°æ®æéé
ç½®") |
| | | @TableName("SYSTEM_DATA_PERMISSION") |
| | | @TableName("system_data_permission") |
| | | public class SystemDataPermission implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("é¨é¨") |
| | | @TableName("system_department") |
| | | public class SystemDepartment implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("é¨é¨ç¨æ·") |
| | | @TableName("system_department_user") |
| | | public class SystemDepartmentUser implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("åå
¸") |
| | | @TableName("system_dict") |
| | | public class SystemDict implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("åå
¸æ°æ®") |
| | | @TableName("system_dict_data") |
| | | public class SystemDictData implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç»å½æ¥å¿") |
| | | @TableName("system_login_log") |
| | | public class SystemLoginLog { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldStrategy; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç³»ç»èå") |
| | | @TableName("system_menu") |
| | | public class SystemMenu implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç³»ç»æé") |
| | | @TableName("system_permission") |
| | | public class SystemPermission implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldStrategy; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("å²ä½") |
| | | @TableName("system_position") |
| | | public class SystemPosition implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("å²ä½ç¨æ·") |
| | | @TableName("system_position_user") |
| | | public class SystemPositionUser implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.constants.OperaType; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç³»ç»è§è²") |
| | | @TableName("`system_role`") |
| | | public class SystemRole implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("è§è²èåå
³è") |
| | | @TableName("system_role_menu") |
| | | public class SystemRoleMenu implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("è§è²æéå
³è") |
| | | @TableName("system_role_permission") |
| | | public class SystemRolePermission implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("è·è¸ªæ¥å¿") |
| | | @TableName("system_trace_log") |
| | | public class SystemTraceLog implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç³»ç»ç¨æ·") |
| | | @TableName("`SYSTEM_USER`") |
| | | @TableName("`system_user`") |
| | | public class SystemUser implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | |
| | | package com.doumee.dao.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·è§è²å
³è") |
| | | @TableName("`system_user_role`") |
| | | public class SystemUserRole implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | |
| | | @ApiModelProperty(value = "对象ç¼ç ", example = "1") |
| | | private Integer objId; |
| | | |
| | | @ApiModelProperty(value = "对象类å 0åå订å 1ç§¯åæµæ°´ 2äºå¨è¯ä»· 3伿 å¸ 4ç°éæµæ°´", example = "1") |
| | | @ApiModelProperty(value = "对象类å 0åå订å 1ç§¯åæµæ°´ 2伿 å¸åæ¾ 3è¿ææé 4ç¤¾åºæ¶æ¯", example = "1") |
| | | private Integer objType; |
| | | |
| | | @ApiModelProperty(value = "æ¶æ¯ç±»å 0订åéç¥ 1ç³»ç»æ¶æ¯ 2äºå¨æ¶æ¯ 3伿 叿é 4宿¹å®¢æ 5æ´»å¨æ¨è 6æçå
³æ³¨", example = "1") |
| | |
| | | |
| | | @ApiModelProperty(value = "积åè§å") |
| | | private String integralRule; |
| | | |
| | | @ApiModelProperty(value = "é请è§å说æ") |
| | | private String invitelRule; |
| | | |
| | |
| | | package com.doumee.dao.web.dto.activity; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.model.Multifile; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ç¼ç ï¼å
³èmember表ï¼", example = "1") |
| | | private Integer memberId; |
| | | |
| | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ç¼ç ï¼å
³èmember表ï¼", example = "1") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°" ) |
| | | @ApiModelProperty(value = "åå¸ç¨æ·æµç§°" ) |
| | | private String nikeName; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°" ) |
| | | @ApiModelProperty(value = "ç¨æ·å¤´å" ) |
| | | private String memberImgUrl; |
| | | |
| | | @ApiModelProperty(value = "对象ç¼ç ï¼å
³èactivity表ï¼", example = "1") |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.dto.shop; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("ç»éåä¿®æ¹å¯ç 请æ±") |
| | | public class ShopUpdatePwdDTO { |
| | | |
| | | @ApiModelProperty("æ§å¯ç ") |
| | | private String oldPassword; |
| | | |
| | | @ApiModelProperty("æ°å¯ç ") |
| | | private String newPassword; |
| | | } |
| | |
| | | @ApiModelProperty(value = "æ¯å¦æ£é¤è¿è¿ç»éå积åï¼0=å¦ï¼1=æ¯") |
| | | private Integer returnShopIntegralStatus; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦æ£é¤è¿è¿ç¨æ·ç§¯åï¼0=å¦ï¼1=æ¯") |
| | | @ApiModelProperty(value = "æ¯å¦æ£é¤å·²è¿è¿ç¨æ·ç§¯åï¼0=å¦ï¼1=æ¯") |
| | | private Integer returnIntegralStatus; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦æ£é¤è¿è¿ç»éåç»ç®éé¢ï¼0=å¦ï¼1=æ¯") |
| | |
| | | @ApiModelProperty(value = "䏿 æ°æ®", example = "1") |
| | | private String indexData; |
| | | |
| | | @ApiModelProperty(value = "åºåéStr", example = "1") |
| | | private String stockStr; |
| | | } |
| | |
| | | * @return Integer |
| | | */ |
| | | Integer create(Activity activity); |
| | | |
| | | /** |
| | | * 主é®å é¤ |
| | | * |
| | |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | void deleteById(Integer id,Integer memberId); |
| | | |
| | | /** |
| | | * å é¤ |
| | |
| | | |
| | | void autoCancelOrder(); |
| | | |
| | | void autoCompleteOrder(); |
| | | |
| | | } |
| | |
| | | String createShareImg(Integer userType,Integer memberId,String posterImg) throws Exception; |
| | | |
| | | String createShopMiniProgramCode(Integer shopId) throws Exception; |
| | | |
| | | /** |
| | | * çæä¼å端å°ç¨åºå享ç ï¼çº¯å°ç¨åºç ï¼æ æµ·æ¥åæï¼ |
| | | * @param memberId ä¼åID |
| | | * @return OSSæä»¶è·¯å¾ |
| | | * @throws Exception |
| | | */ |
| | | String createMemberMiniProgramCode(Integer memberId) throws Exception; |
| | | /** |
| | | * å建 |
| | | * |
| | |
| | | import com.doumee.dao.web.request.UpdateMemberRequest; |
| | | import com.doumee.dao.web.request.WxPhoneRequest; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | * @param code |
| | | * @return |
| | | */ |
| | | AccountResponse wxLogin(String code); |
| | | AccountResponse wxLogin(String code) throws WxErrorException; |
| | | |
| | | |
| | | AccountResponse wxLoginTest( Integer memberId); |
| | |
| | | |
| | | |
| | | void logOut(String token,Integer shopId); |
| | | |
| | | /** |
| | | * ç»éåä¿®æ¹å¯ç |
| | | * @param shopId åæ·ID |
| | | * @param oldPassword æ§å¯ç |
| | | * @param newPassword æ°å¯ç |
| | | */ |
| | | void updatePwd(Integer shopId, String oldPassword, String newPassword); |
| | | } |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | |
| | | aftersale.setReturnShopSettlement(BigDecimal.ZERO); |
| | | aftersale.setCode(getNextInCode()); |
| | | |
| | | //订åéå æ£é¤å·²ç»ç® 订åèµ é积å - ç»éå |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopIntegralStatus(),Constants.ONE)){ |
| | | //订åéåè¿åç»ç»éåç积å |
| | | if(Objects.nonNull(goodsorder.getDistributionShopId())){ |
| | | Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId()); |
| | | //ç»éååå¨å©ä½ç§¯å |
| | | if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //å¼å¯äºæ£é¤è¿è¿ç»éå积å |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopIntegralStatus(),Constants.ONE)){ |
| | | //è®°å½æ£é¤ç»éå积åå¼ |
| | | aftersale.setReturnShopIntegral(shop.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO |
| | | ?goodsorder.getReturnCustomerIntegral():shop.getIntegral()); |
| | |
| | | } |
| | | } |
| | | |
| | | //订åéå ç»éåç»ç®ä½é¢ |
| | | //订åéå æ£é¤å·²ç»ç® ç»ç®ä½é¢ - ç»éå |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopSettlementStatus(),Constants.ONE)){ |
| | | if(Objects.nonNull(goodsorder.getDistributionShopId())){ |
| | | Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId()); |
| | | //ç»éååå¨å©ä½ç§¯å |
| | | if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //å¼å¯äºæ£é¤è¿è¿ç»éå积å |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopSettlementStatus(),Constants.ONE)){ |
| | | //æ¥è¯¢è®¢åæç»ç»éåç»ç®éé¢ |
| | | List<GoodsorderDetail> list = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda() |
| | | .eq(GoodsorderDetail::getIsdeleted,Constants.ZERO) |
| | | .eq(GoodsorderDetail::getOrderId,goodsorder.getId()) |
| | | .isNotNull(GoodsorderDetail::getShopSettlement) |
| | | ); |
| | | //ç»éååå¨å©ä½ä½é¢ |
| | | if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO&&list.size()>Constants.ZERO){ |
| | | BigDecimal total = list.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | //è®°å½æ£é¤ç»éå积åå¼ |
| | | aftersale.setReturnShopSettlement(shop.getAmount().compareTo(goodsorder.getShopSettlement())>Constants.ZERO |
| | | ?goodsorder.getShopSettlement():shop.getAmount()); |
| | | aftersale.setReturnShopSettlement(shop.getAmount().compareTo(total)>Constants.ZERO |
| | | ?total:shop.getAmount()); |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral()); |
| | | dealIntegralRequest.setIntegralNum(aftersale.getReturnShopSettlement()); |
| | | dealIntegralRequest.setDealType(Constants.ONE); |
| | | dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | | dealIntegralRequest.setOrderCode(goodsorder.getCode().toString()); |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_CASH); |
| | | dealIntegralRequest.setParam1(goodsorder.getCode().toString()); |
| | | integralService.dealShopAmount(dealIntegralRequest); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //订åéå è¿è¿ç»å®¢æ·ç积å |
| | | if(Objects.nonNull(goodsorder.getDistributionShopId())){ |
| | | //æ£é¤å·²è¿è¿ç¨æ·ç§¯å - ç¨æ· |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)){ |
| | | Member member = memberMapper.selectById(goodsorder.getMemberId()); |
| | | //客æ·åå¨å©ä½ç§¯å |
| | | if(Objects.nonNull(member)&&member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | //å¼å¯äºæ£é¤è¿è¿å®¢æ·ç§¯å |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)){ |
| | | //è®°å½æ£é¤ç»éå积åå¼ |
| | | aftersale.setReturnIntegral(member.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO |
| | | ?goodsorder.getReturnCustomerIntegral():member.getIntegral()); |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral()); |
| | | dealIntegralRequest.setIntegralNum(aftersale.getReturnIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ONE); |
| | | dealIntegralRequest.setMemberId(member.getId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | |
| | | integralService.dealIntegral(dealIntegralRequest,null); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //订å鿬¾ è¿è¿å®¢æ·ä½¿ç¨ç积å |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE) |
| | | if(Constants.equalsInteger(afterSaleApplyRequest.getReturnUseIntegralStatus(),Constants.ONE) |
| | | && goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral()); |
| | | dealIntegralRequest.setIntegralNum(goodsorder.getUseIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | | dealIntegralRequest.setMemberId(goodsorder.getMemberId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | |
| | | .set(Goodsorder::getRefundMoney, afterSaleApplyRequest.getMoney()) |
| | | .set(Goodsorder::getRefundUserId, loginUserInfo.getId()) |
| | | .set(Goodsorder::getRefundInfo, afterSaleApplyRequest.getRemark()) |
| | | .set(Goodsorder::getRefundConfigInfo, JSONObject.toJSONString(afterSaleApplyRequest)) |
| | | .eq(Goodsorder::getId, goodsorder.getId()) |
| | | ); |
| | | |
| | |
| | | .selectAs(Goods::getName,Collect::getName) |
| | | .selectAs(Goods::getPrice,Collect::getPrice) |
| | | .selectAs(Goods::getImgurl,Collect::getActivityImgurl) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t1.id ),0) ", Collect::getLinePrice) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t1.id and gs.ISDELETED = 0 ),0) ",Collect::getMinPrice) |
| | | .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t1.id and gs.ISDELETED = 0 ),0) ",Collect::getLinePrice) |
| | | .leftJoin(Goods.class,Goods::getId,Collect::getObjId) |
| | | .eq(Collect::getIsdeleted,Constants.ZERO) |
| | | .eq(Collect::getMemberId,memberId) |
| | |
| | | .selectAs(Activity::getCreateDate,Collect::getReleaseDate) |
| | | .selectAs(Activity::getLooknum,Collect::getReadNum) |
| | | .selectAs(Activity::getImgurl,Collect::getActivityImgurl) |
| | | .selectAs(Labels::getParam,Collect::getParam) |
| | | .selectAs(Labels::getName,Collect::getLabelName) |
| | | .selectAs(Activity::getContent,Collect::getContent) |
| | | .leftJoin(Activity.class,Activity::getId,Collect::getObjId) |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest; |
| | | import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse; |
| | | 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.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.CommentJoinMapper; |
| | | import com.doumee.dao.business.CommentMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.MultifileMapper; |
| | | import com.doumee.dao.business.model.Activity; |
| | | import com.doumee.dao.business.model.Comment; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Multifile; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.dto.CommentDTO; |
| | | import com.doumee.dao.web.dto.ZanDTO; |
| | | import com.doumee.dao.web.dto.activity.ActivityCommentDTO; |
| | |
| | | import com.doumee.service.business.CommentService; |
| | | import com.doumee.service.business.ZanService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import org.apache.commons.collections4.MapUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private NoticeMapper noticeMapper; |
| | | |
| | | @Autowired |
| | | private ZanService zanService; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Override |
| | | public Comment apply(CommentApplyRequest comment, Integer memberId) { |
| | | if (StringUtils.isNotBlank(comment.getContent())) { |
| | | try { |
| | | WxMaMsgSecCheckCheckRequest checkRequest = WxMaMsgSecCheckCheckRequest.builder() |
| | | .version("2") |
| | | .scene(3) |
| | | .openid(getMemberOpenId(memberId)) |
| | | .content(comment.getContent()) |
| | | .build(); |
| | | WxMaMsgSecCheckCheckResponse checkResponse = WxMiniConfig.wxMaService.getSecurityService().checkMessage(checkRequest); |
| | | if (checkResponse.getResult() != null && checkResponse.getResult().getSuggest() != null) { |
| | | String suggest = checkResponse.getResult().getSuggest(); |
| | | if ("risky".equalsIgnoreCase(suggest)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "è¯è®ºå
容å
å«è¿è§ä¿¡æ¯ï¼è¯·ä¿®æ¹åéæ°åå¸"); |
| | | } |
| | | } |
| | | } catch (WxErrorException e) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "å
容å®å
¨æ£æµå¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | } |
| | | |
| | | Comment target = new Comment(); |
| | | target.setCreateDate(new Date()); |
| | | target.setEditDate(new Date()); |
| | |
| | | ); |
| | | reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "åå¤ç®æ ä¸åå¨")); |
| | | target.setReplyId(reply.getId()); |
| | | target.setReplyMemberId(reply.getMemberId()); |
| | | target.setReplyMemberNikeName(reply.getReplyMemberNikeName()); |
| | | target.setCommentId(reply.getId()); |
| | | target.setCommentMemberId(reply.getMemberId()); |
| | | target.setCommentId(Objects.isNull(reply.getCommentId())?reply.getId():reply.getCommentId()); |
| | | target.setType(Constants.ONE); |
| | | target.setCommentId(reply.getCommentId()); |
| | | target.setCommentMemberId(reply.getCommentMemberId()); |
| | | target.setCommentMemberId(reply.getMemberId()); |
| | | |
| | | if(!Constants.equalsInteger(memberId,reply.getMemberId())){ |
| | | Member member = memberMapper.selectById(memberId); |
| | | //è¯è®ºåéç¨æ·æ¶æ¯ |
| | | //åéæ ¸ééç¥ |
| | | Notice notice = Notice.getNotice( |
| | | Constants.NoticeType.COMMENT, |
| | | reply.getMemberId(), |
| | | reply.getActivityId() |
| | | ); |
| | | notice.setContent(notice.getContent().replace("{param}",member.getNickname())); |
| | | noticeMapper.insert(notice); |
| | | } |
| | | }else if (comment.getCommentId() != null ){ |
| | | Comment reply = commentMapper.selectById(comment.getCommentId()); |
| | | reply = Optional.ofNullable(reply).orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "ä¸çº§è¯è®ºç®æ ä¸åå¨")); |
| | |
| | | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | commentMapper.deleteById(id); |
| | | public void deleteById(Integer id,Integer memberId) { |
| | | Comment comment = commentMapper.selectById(id); |
| | | if(Objects.isNull(comment)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "è¯è®ºä¸åå¨"); |
| | | } |
| | | if(!Constants.equalsInteger(memberId,comment.getMemberId())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鿍çè¯è®ºæ æéå é¤"); |
| | | } |
| | | commentMapper.update(new UpdateWrapper<Comment>().lambda() |
| | | .set(Comment::getIsdeleted,Constants.ONE) |
| | | .eq(Comment::getId,id) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | queryWrapper.eq(Comment::getType, Constants.ZERO); |
| | | queryWrapper.eq(Comment::getStatus, Constants.ZERO); |
| | | queryWrapper.eq(Comment::getActivityId,pageWrap.getModel().getActivityId()); |
| | | queryWrapper.orderByDesc(Comment::getId); |
| | | queryWrapper.orderByAsc(Comment::getId); |
| | | IPage<ActivityCommentDTO> result = commentJoinMapper.selectJoinPage(page, ActivityCommentDTO.class, queryWrapper); |
| | | |
| | | if (CollectionUtils.isEmpty(result.getRecords())){ |
| | |
| | | MPJLambdaWrapper<Comment> replyWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | replyWrapper.selectAs(Comment::getId,ActivityReplyCommentDTO::getId); |
| | | replyWrapper.selectAs(Comment::getReplyId,ActivityReplyCommentDTO::getReplyId); |
| | | replyWrapper.selectAs(Comment::getIsdeleted,ActivityReplyCommentDTO::getIsdeleted); |
| | | if(Objects.isNull(pageWrap.getModel().getMemberId())){ |
| | | replyWrapper.select(" 0 ",ActivityReplyCommentDTO::getZanStatus); |
| | | }else{ |
| | |
| | | replyWrapper.selectAs(Member::getImgurl,ActivityReplyCommentDTO::getMemberImgUrl); |
| | | replyWrapper.selectCount(Comment::getId,ActivityReplyCommentDTO::getReplyCount); |
| | | replyWrapper.selectMin(Comment::getCreateDate,ActivityReplyCommentDTO::getCreateDate); |
| | | replyWrapper.select("reply.NICKNAME",ActivityReplyCommentDTO::getReplyMemberNikeName); |
| | | replyWrapper.leftJoin(Member.class,Member::getId,Comment::getMemberId); |
| | | replyWrapper.leftJoin("member reply on reply.id = t.REPLY_MEMBER_ID"); |
| | | replyWrapper.eq(Comment::getType, Constants.ONE); |
| | | replyWrapper.eq(Comment::getStatus, Constants.ZERO); |
| | | replyWrapper.in(Comment::getCommentId,commentIds); |
| | | replyWrapper.orderByDesc(Comment::getId); |
| | | replyWrapper.groupBy(Comment::getCommentId); |
| | | |
| | | List<ActivityReplyCommentDTO> activityCommentDTOS = commentJoinMapper.selectJoinList(ActivityReplyCommentDTO.class, replyWrapper); |
| | |
| | | } |
| | | } |
| | | result.getRecords().forEach(s->{ |
| | | s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null); |
| | | if(Constants.equalsInteger(s.getIsdeleted(),Constants.ONE)){ |
| | | s.setContent("该è¯è®ºå·²è¢«åä½è
å é¤"); |
| | | }else{ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | s.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(s.getId())).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null); |
| | | ZanDTO object = MapUtils.getObject(count, s.getId()); |
| | | ActivityReplyCommentDTO replyCommentDTO = collect.get(s.getId()); |
| | | if(Objects.nonNull(replyCommentDTO)){ |
| | | ZanDTO replyZan = MapUtils.getObject(count, replyCommentDTO.getId()); |
| | | replyCommentDTO.setZanCount(replyZan != null ? replyZan.getCount() : 0); |
| | | if(Constants.equalsInteger(replyCommentDTO.getIsdeleted(),Constants.ONE)){ |
| | | replyCommentDTO.setContent("该è¯è®ºå·²è¢«åä½è
å é¤"); |
| | | }else{ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | replyCommentDTO.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(s.getId())).collect(Collectors.toList())); |
| | | replyCommentDTO.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(replyCommentDTO.getId())).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | replyCommentDTO.setMemberImgUrl(StringUtils.isNotBlank(replyCommentDTO.getMemberImgUrl())?memberFile+replyCommentDTO.getMemberImgUrl():null); |
| | | s.setActivityReplyCommentDTO(replyCommentDTO); |
| | |
| | | queryWrapper.select(" (select count(1) from zan z where z.OBJ_ID = t.id and z.ISDELETED = 0 and z.OBJ_TYPE = 0) ",ActivityReplyCommentDTO::getZanCount); |
| | | queryWrapper.select("reply.NICKNAME as replyMemberNikeName"); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Comment::getMemberId); |
| | | queryWrapper.leftJoin("member reply on reply.id = t.REPLY_MEMBER_ID"); |
| | | queryWrapper.leftJoin("member reply on reply.id = t.COMMENT_MEMBER_ID"); |
| | | queryWrapper.eq(Comment::getType, Constants.ONE); |
| | | queryWrapper.eq(Comment::getStatus, Constants.ZERO); |
| | | queryWrapper.eq(Comment::getCommentId,pageWrap.getModel().getCommentId()); |
| | | queryWrapper.orderByDesc(Comment::getId); |
| | | queryWrapper.orderByAsc(Comment::getId); |
| | | IPage<ActivityReplyCommentDTO> result = commentJoinMapper.selectJoinPage(page, ActivityReplyCommentDTO.class, queryWrapper); |
| | | if (CollectionUtils.isEmpty(result.getRecords())){ |
| | | return PageData.from(result); |
| | |
| | | } |
| | | } |
| | | List<Integer> integerStream = result.getRecords().stream().map(s -> s.getId()).collect(Collectors.toList()); |
| | | |
| | | Map<Integer, ZanDTO> count = zanService.count(integerStream); |
| | | result.getRecords().forEach(s->{ |
| | | s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null); |
| | | if(Constants.equalsInteger(s.getIsdeleted(),Constants.ONE)){ |
| | | s.setContent("该è¯è®ºå·²è¢«åä½è
å é¤"); |
| | | }else{ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | s.setMultifileList(multifileList.stream().filter(t -> t.getObjId().equals(s.getId())).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | s.setMemberImgUrl(StringUtils.isNotBlank(s.getMemberImgUrl())?memberFile+s.getMemberImgUrl():null); |
| | | ZanDTO replyZan = MapUtils.getObject(count, s.getId()); |
| | | s.setZanCount(replyZan != null ? replyZan.getCount() : 0); |
| | | if (pageWrap.getModel().getCommentId().equals(s.getReplyId())){ |
| | |
| | | }); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | private String getMemberOpenId(Integer memberId) { |
| | | Member member = memberMapper.selectById(memberId); |
| | | return member != null ? member.getOpenId() : null; |
| | | } |
| | | } |
| | |
| | | .eq(GoodsSku::getIsdeleted,Constants.ZERO) |
| | | .in(GoodsSku::getGoodsId,idList)); |
| | | } |
| | | long shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .eq(Shop::getStatus,Constants.ZERO)); |
| | | MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Goods.class); |
| | | queryWrapper.select("(select count(s.id) from shop_goods_relation s " + |
| | | "left join shop g on s.SHOP_ID =g.id " + |
| | | "where g.status=0 and s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum "); |
| | | queryWrapper.eq(GoodsSku::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.in(Goods::getId,idList); |
| | | List<Goods> goodsList= goodsAdminJoinMapper.selectJoinList(Goods.class,queryWrapper); |
| | | List<Goods> goodsList= goodsMapper.selectList(new QueryWrapper<Goods>().lambda() |
| | | .eq(Goods::getIsdeleted,Constants.ZERO) |
| | | .in(Goods::getId,idList)); |
| | | if(goodsList==null || goodsList.size() == 0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ååä¿¡æ¯æ¥è¯¢æ æ "); |
| | | } |
| | |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":ååååå°æªè®¾ç½®é¶å®ä»·ï¼æ æ³ä¸æ¶"); |
| | | } |
| | | } |
| | | if(Constants.formatLongNum(goods.getPricedShopNum()) < shopNum){ |
| | | //é»è®¤skuä¿¡æ¯ |
| | | s =false; |
| | | if(idList.size()==1){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":ææªè®¾ç½®ä¾è´§ä»·çç»éåï¼æ æ³ä¸æ¶"); |
| | | } |
| | | |
| | | } |
| | | if(s){ |
| | | idList2.add(param.getId()); |
| | | } |
| | |
| | | |
| | | if(successNum != idList.size()){ |
| | | if( idList.size()>1){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æå䏿¶ååæ°ï¼ã"+successNum+"ãï¼ä¸æ¶å¤±è´¥ï¼ã"+(idList.size()-successNum)+"ã个åå,请确ä¿å¾
䏿¶ååçåéå®ä»·åä¾è´§ä»·å·²è®¾ç½®"); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æå䏿¶ååæ°ï¼ã"+successNum+"ãï¼ä¸æ¶å¤±è´¥ï¼ã"+(idList.size()-successNum)+"ã个åå,请确ä¿å¾
䏿¶ååçéå®ä»·å·²è®¾ç½®"); |
| | | }else { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode()," 䏿¶å¤±è´¥"); |
| | | } |
| | |
| | | queryWrapper.eq(pageWrap.getModel().getBrandId() != null, Goods::getBrandId, pageWrap.getModel().getBrandId()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus() != null, Goods::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.in(pageWrap.getModel().getIdList() != null && pageWrap.getModel().getIdList().size()>0, Goods::getId, pageWrap.getModel().getIdList()); |
| | | if(pageWrap.getModel().getShopId() !=null){ |
| | | queryWrapper.orderByAsc("shopPrice"); |
| | | } |
| | | // if(pageWrap.getModel().getShopId() !=null){ |
| | | // queryWrapper.orderByAsc("shopPrice"); |
| | | // } |
| | | queryWrapper.orderByDesc(Goods::getId); |
| | | IPage<Goods> result = goodsAdminJoinMapper.selectJoinPage(page, Goods.class, queryWrapper); |
| | | initResult(result.getRecords(),pageWrap.getModel().getShopId()==null); |
| | |
| | | GoodsRequest model = pageWrap.getModel(); |
| | | MPJLambdaWrapper<Goods> wrapper = new MPJLambdaWrapper<Goods>() |
| | | .selectAll(Goods.class) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getMinPrice) |
| | | .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getLinePrice) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0 ),0) ",Goods::getMinPrice) |
| | | .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0 ),0) ",Goods::getLinePrice) |
| | | .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator) |
| | | .eq(Goods::getIsdeleted,Constants.ZERO) |
| | | .eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()), |
| | |
| | | .like(StringUtils.isNotBlank(model.getGoodsName()),Goods::getName,model.getGoodsName()); |
| | | if(Objects.nonNull(model.getShopId())){ |
| | | wrapper.select(" ifnull( ( select sgr.PRICE from shop_goods_relation sgr where sgr.GOODS_ID = t.ID and sgr.ISDELETED = 0 and sgr.`STATUS` = 0 and sgr.SHOP_ID = "+model.getShopId()+" ) ,0) ",Goods::getExFactoryPrice); |
| | | wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where gd.GOODS_ID = t.`id` and go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum); |
| | | wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` and go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum); |
| | | |
| | | }else{ |
| | | wrapper.select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd where gd.GOODS_ID = t.id )) ",Goods::getRealSaleNum); |
| | | wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` ),0) ",Goods::getRealSaleNum); |
| | | } |
| | | |
| | | if(Objects.nonNull(model.getSortInfo())){ |
| | |
| | | if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){ |
| | | wrapper.orderByDesc("t.CREATE_DATE"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){ |
| | | wrapper.orderByAsc("(realSaleNum + t.SALENUM)"); |
| | | wrapper.orderByAsc("(realSaleNum + ifnull(t.SALENUM,0))"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){ |
| | | wrapper.orderByAsc("minPrice"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){ |
| | | wrapper.orderByDesc("(realSaleNum + t.SALENUM)"); |
| | | wrapper.orderByDesc("(realSaleNum + ifnull(t.SALENUM,0))"); |
| | | }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){ |
| | | wrapper.orderByDesc("minPrice"); |
| | | } |
| | |
| | | |
| | | List<GoodsSkuResponse> goodsSkuResponseList = goodsSkuMapper.getSkuResponseList(goodsResponse.getId()); |
| | | Integer sumStock = Constants.ZERO; |
| | | Boolean noRestrictions = true; |
| | | for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) { |
| | | goodsSkuResponse.setStock(Objects.isNull(goodsSkuResponse.getStock())?Constants.ZERO:goodsSkuResponse.getStock()); |
| | | sumStock = sumStock + goodsSkuResponse.getStock(); |
| | | if(StringUtils.isNotBlank(goodsSkuResponse.getStockStr())){ |
| | | noRestrictions = false; |
| | | } |
| | | } |
| | | //çå®éé = realSaleNum - saleNum; |
| | | //çå®åºå= sumStock - (realSaleNum - saleNum) |
| | | if(noRestrictions){ |
| | | goodsResponse.setStock(-Constants.ONE); |
| | | }else{ |
| | | goodsResponse.setStock(sumStock); |
| | | } |
| | | goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList); |
| | | //Skuåºç¡ä¿¡æ¯ |
| | | List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId()); |
| | |
| | | Goods goodsResponse = goodsMapper.selectOne( |
| | | new MPJLambdaWrapper<Goods>() |
| | | .selectAll(Goods.class) |
| | | .select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd where gd.GOODS_ID = t.id )) ",Goods::getRealSaleNum) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getMinPrice) |
| | | .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getLinePrice) |
| | | .select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` ),0) ",Goods::getRealSaleNum) |
| | | .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0) ",Goods::getMinPrice) |
| | | .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0) ",Goods::getLinePrice) |
| | | .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator) |
| | | // .eq(Goods::getIsdeleted,Constants.ZERO) |
| | | // .eq(Goods::getStatus, Constants.ZERO) |
| | |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.GoodsorderDetailMapper; |
| | | import com.doumee.dao.business.PlanorderDetailMapper; |
| | |
| | | Constants.UserActionType.CHANGE_ORDER_KD, |
| | | userActionMapper, |
| | | update.getEditDate(), |
| | | new String[]{goodsorder.getKdInfo()}, |
| | | StringUtils.isNotBlank(goodsorder.getKdInfo())?new String[]{query.getKdInfo()}:null, |
| | | JSONObject.toJSONString(update) , |
| | | query.getKdName()+"(åå·ï¼"+query.getKdCode()+")", |
| | | goodsorder.getKdName()+"(åå·ï¼"+goodsorder.getKdCode()+")"); |
| | |
| | | //åéåè´§ç«å
ä¿¡ |
| | | Notice notice = Notice.getNotice( |
| | | Constants.NoticeType.NOTICE_ORDER_SEND, |
| | | goodsorder.getMemberId(), |
| | | query.getMemberId(), |
| | | goodsorder.getId() |
| | | ); |
| | | notice.setContent(notice.getContent().replace("{param}",goodsorder.getCode().toString())); |
| | |
| | | if(Objects.isNull(member.getBindShopId())){ |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getBindShopId,shop.getId()) |
| | | .set(Member::getBindShopDate,new Date()) |
| | | .eq(Member::getId,member.getId()) |
| | | ); |
| | | } |
| | | goodsorder.setPickUpShopId(shop.getId()); |
| | | goodsorder.setDistributionShopId(shop.getId()); |
| | | goodsorder.setLinkname(member.getName()); |
| | | goodsorder.setLinkname(StringUtils.isNotBlank(member.getName())?member.getName():member.getNickname()); |
| | | goodsorder.setLinkphone(member.getPhone()); |
| | | if(Objects.isNull(member.getBindShopId())){ |
| | | member.setBindShopId(shop.getId()); |
| | |
| | | .eq(MemberCoupon::getId,orderPayConfirmResponse.getMemberCoupon().getId()) |
| | | ); |
| | | } |
| | | goodsorder.setReturnCustomerIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ONE)); |
| | | goodsorder.setReturnMemberIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ZERO)); |
| | | goodsorder.setReturnCustomerIntegral(getBackIntegral(goodsorder.getPrice().subtract(goodsorder.getMailPrice()),Constants.ONE)); |
| | | goodsorder.setReturnMemberIntegral(getBackIntegral(goodsorder.getPrice().subtract(goodsorder.getMailPrice()),Constants.ZERO)); |
| | | goodsorderMapper.insert(goodsorder); |
| | | List<OrderGoodsCalculateResponse> goodsCalculateList = orderPayConfirmResponse.getGoodsCalculateList(); |
| | | if(CollectionUtils.isEmpty(goodsCalculateList)){ |
| | |
| | | } |
| | | List<GoodsorderDetail> goodsOrderDetailList = new ArrayList<>(); |
| | | BigDecimal shopSettlement = BigDecimal.ZERO; |
| | | for (OrderGoodsCalculateResponse payDetailRequest:goodsCalculateList) { |
| | | for (int i = 0; i < goodsCalculateList.size(); i++) { |
| | | OrderGoodsCalculateResponse payDetailRequest = goodsCalculateList.get(i); |
| | | //æ¥è¯¢åå |
| | | GoodsSku goodsSku = goodsSkuMapper.selectById(payDetailRequest.getSkuId()); |
| | | if(Objects.isNull(goodsSku)||!Constants.equalsInteger(goodsSku.getIsdeleted(),Constants.ZERO)){ |
| | |
| | | //ç»éå伿 æ¿æ
å æ¯ |
| | | BigDecimal shopRate = new BigDecimal("100").subtract(platformConfigDTO.getTotalRate()); |
| | | //计ç®ç»éå伿 æ¿æ
éé¢ ï¼ä¼æ 叿µæ£éé¢ + ç§¯åæµæ£éé¢ï¼ * å æ¯æ¯ä¾ |
| | | BigDecimal shopDeductAmount = payDetailRequest.getCouponDeductCash().add(payDetailRequest.getIntegralDeductCash()) |
| | | BigDecimal shopDeductAmount = payDetailRequest.getCouponDeductCash().add(Constants.equalsInteger(orderPayRequest.getUseIntegral(),Constants.ONE)?payDetailRequest.getIntegralDeductCash():BigDecimal.ZERO) |
| | | .multiply(shopRate).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP); |
| | | //æ ¹æ®ç»éåé宿¨¡å¼ 计ç®åºç»ç®éé¢ |
| | | if(shop.getSaleType().equals(Constants.ONE)){ |
| | | if(Constants.equalsInteger(shop.getSaleType(),Constants.ONE)&&Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){ |
| | | goodsOrderDetail.setShopSettlement(goodsOrderDetail.getPrice().subtract(shopDeductAmount)); |
| | | }else { |
| | | //å¹³å°éºè´§ |
| | |
| | | |
| | | //åå¨ç°éæ¯ä» |
| | | if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){ |
| | | goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda() |
| | | .set(Goodsorder::getShopSettlement,shopSettlement) |
| | | .eq(Goodsorder::getId,goodsorder.getId()) |
| | | ); |
| | | PayResponse payResponse = this.wxPay(goodsorder,member); |
| | | payResponse.setLockKey(lockKey); |
| | | return payResponse; |
| | |
| | | .set(Goodsorder::getShopSettlement,shopSettlement) |
| | | .set(Goodsorder::getPayStatus,Constants.OrderStatus.PAY_DONE.getKey()) |
| | | .set(Goodsorder::getPayDate,DateUtil.getCurrDateTime()) |
| | | .set(Goodsorder::getId,goodsorder.getId()) |
| | | .eq(Goodsorder::getId,goodsorder.getId()) |
| | | ); |
| | | PayResponse payResponse = new PayResponse(); |
| | | payResponse.setOrderId(goodsorder.getId()); |
| | |
| | | Goods goods = goodsMapper.selectById(goodsSku.getGoodsId()); |
| | | goodsName = goods.getName(); |
| | | } |
| | | if(!Objects.isNull(goodsSku)){ |
| | | if(!Objects.isNull(goodsSku)&&Objects.nonNull(goodsSku.getStock())){ |
| | | goodsSku.setStock(goodsSku.getStock().add(new BigDecimal(Constants.formatIntegerNum(goodsorderDetail.getGoodsNum())))); |
| | | goodsSkuMapper.updateById(goodsSku); |
| | | } |
| | |
| | | amount = amount.add(response.getSkuAmount()); |
| | | } |
| | | } |
| | | MemberCoupon memberCoupon = new MemberCoupon(); |
| | | MemberCoupon memberCoupon = null; |
| | | orderPayConfirmResponse.setCouponAmount(couponAmount); |
| | | //è·åå¯ä»¥ä½¿ç¨ç伿 å¸ |
| | | List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(request.getPayDetailRequestList(),request.getMemberId()); |
| | |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æ å¯ç¨ä¼æ å¸ï¼è¯·å·æ°æ¥ç"); |
| | | } |
| | | } |
| | | if(Objects.nonNull(memberCoupon)){ |
| | | //计ç®ä¼æ å¸å æ¯ |
| | | memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount); |
| | | } |
| | | |
| | | //æ¥è¯¢ç¨æ·æ»ç§¯å |
| | | Member member = memberMapper.selectById(request.getMemberId()); |
| | | //æä½å¯ç¨å¯ç¨ç§¯å |
| | |
| | | orderPayConfirmResponse.setDeductIntegral(deductIntegral); |
| | | orderPayConfirmResponse.setIntegralAmount(integralAmount); |
| | | if(Constants.equalsInteger(orderPayConfirmResponse.getIntegralStatus(),Constants.ZERO)){ |
| | | //计ç®ç§¯åå æ¯ |
| | | integralAmount = this.calculateIntegralRata(orderPayConfirmResponse,goodsCalculateList,member.getIntegral()); |
| | | }else{ |
| | | orderPayConfirmResponse.setSurplusIntegral(member.getIntegral()); |
| | |
| | | if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | if( Constants.equalsInteger(platformConfigDTO.getReturnMemberIntegralStatus(),Constants.ZERO) |
| | | && Objects.nonNull(platformConfigDTO.getReturnMemberIntegral())){ |
| | | integralBack = payAmount.multiply(platformConfigDTO.getReturnMemberIntegral()).divide(BigDecimal.ONE,0,BigDecimal.ROUND_DOWN); |
| | | integralBack = payAmount.divide(platformConfigDTO.getReturnMemberIntegral(),2,BigDecimal.ROUND_DOWN); |
| | | } |
| | | }else{ |
| | | if( Constants.equalsInteger(platformConfigDTO.getReturnShopIntegralStatus(),Constants.ZERO) |
| | | && Objects.nonNull(platformConfigDTO.getReturnShopIntegral())){ |
| | | integralBack = payAmount.multiply(platformConfigDTO.getReturnShopIntegral()).divide(BigDecimal.ONE,0,BigDecimal.ROUND_DOWN); |
| | | integralBack = payAmount.divide(platformConfigDTO.getReturnShopIntegral(),2,BigDecimal.ROUND_DOWN); |
| | | } |
| | | } |
| | | return integralBack; |
| | | //积åè·ååä¸åæ´ |
| | | return integralBack.setScale(0, BigDecimal.ROUND_DOWN); |
| | | } |
| | | |
| | | |
| | |
| | | .multiply(i.getDeductRata()).divide(new BigDecimal("100"),2,RoundingMode.DOWN)).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | //积å-ç°éå
æ¢æ¯ä¾ï¼XXXç§¯åæµæ£1å
ï¼ |
| | | BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET,Constants.INTERALSET_DEDUCTINTEGRALLIMIT).getCode()); |
| | | //积åæå¤§å¯æµæ£éé¢ |
| | | BigDecimal deductionCash = totalIntegral.divide(cashToIntegralRata,2,RoundingMode.DOWN); |
| | | BigDecimal surDeductionCash = deductionCash; |
| | | BigDecimal goodUseIntegral = BigDecimal.ZERO; |
| | | BigDecimal surUseIntegral = totalIntegral; |
| | | |
| | | //å½åéæ©ååæµæ£éè¦ä½¿ç¨ç积å |
| | | BigDecimal maxDeductionIntegral = maxDeductionCash.multiply(cashToIntegralRata); |
| | | //è·åå½åéè¦æ¯ä»çç°éæ»é¢ |
| | |
| | | BigDecimal realDeductionCash = BigDecimal.ZERO; |
| | | for (int j = 0; j < goodsCalculateList.size(); j++) { |
| | | //è·åæå¤§å¯æµæ£éé¢ |
| | | BigDecimal deductionCash = goodsCalculateList.get(j).getSkuAmount().subtract(goodsCalculateList.get(j).getCouponDeductCash()) |
| | | BigDecimal goodDeductionCash = goodsCalculateList.get(j).getSkuAmount().subtract(goodsCalculateList.get(j).getCouponDeductCash()) |
| | | .multiply(goodsCalculateList.get(j).getDeductRata()).divide(new BigDecimal("100"),2,RoundingMode.DOWN); |
| | | goodsCalculateList.get(j).setIntegralMaxDeductCash(deductionCash); |
| | | goodsCalculateList.get(j).setIntegralMaxDeductCash(goodDeductionCash); |
| | | BigDecimal rata = goodDeductionCash.divide(maxDeductionCash,2,BigDecimal.ROUND_HALF_UP); |
| | | //妿å©ä½ç§¯å大äºå¯ä»¥ä½¿ç¨ç§¯å åç´æ¥æ»¡é¢è®¡ç® åä¹ å©ä½ç§¯åä¸è½æ»¡è¶³å
¨é¨æµæ£ åç¬è®¡ç®æ¯ä¸ªååå æ¯ |
| | | if(totalIntegral.compareTo(maxDeductionIntegral)<Constants.ZERO){ |
| | | deductionCash = deductionCash.divide(payCash).multiply(totalIntegral); |
| | | if(Constants.equalsInteger(j+1,goodsCalculateList.size())){ |
| | | goodDeductionCash = surDeductionCash; |
| | | goodUseIntegral = surUseIntegral; |
| | | }else{ |
| | | goodDeductionCash = (goodDeductionCash.multiply(deductionCash)).divide(maxDeductionCash,2,BigDecimal.ROUND_HALF_UP); |
| | | surDeductionCash = surDeductionCash.subtract(goodDeductionCash); |
| | | goodUseIntegral = (goodDeductionCash.multiply(totalIntegral)).divide(maxDeductionCash,2,BigDecimal.ROUND_HALF_UP); |
| | | surUseIntegral = totalIntegral.subtract(goodUseIntegral); |
| | | } |
| | | goodsCalculateList.get(j).setIntegralDeductCash(deductionCash); |
| | | realDeductionCash = realDeductionCash.add(deductionCash); |
| | | } |
| | | goodsCalculateList.get(j).setIntegralDeductCash(goodDeductionCash); |
| | | goodsCalculateList.get(j).setIntegralDeduct(goodUseIntegral); |
| | | realDeductionCash = realDeductionCash.add(goodDeductionCash); |
| | | |
| | | } |
| | | //å©ä½ç§¯åå¼ |
| | | orderPayConfirmResponse.setSurplusIntegral(totalIntegral); |
| | | //å®é
æµæ£ä½¿ç¨ç§¯å |
| | | orderPayConfirmResponse.setDeductIntegral(totalIntegral.compareTo(maxDeductionIntegral)<=Constants.ZERO?totalIntegral:maxDeductionIntegral); |
| | | //å®é
æµæ£ä½¿ç¨ç§¯åï¼åä¸åæ´ï¼ |
| | | BigDecimal deductIntegralValue = totalIntegral.compareTo(maxDeductionIntegral)<=Constants.ZERO?totalIntegral:maxDeductionIntegral; |
| | | orderPayConfirmResponse.setDeductIntegral(deductIntegralValue.setScale(0, BigDecimal.ROUND_UP)); |
| | | return realDeductionCash; |
| | | |
| | | } |
| | |
| | | if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){ |
| | | continue; |
| | | } |
| | | if(coupon.getNum()>Constants.ZERO){ |
| | | //æ¥è¯¢å·²é¢åæ°é |
| | | Integer getNum = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getIsdeleted,Constants.ZERO) |
| | | .eq(MemberCoupon::getCouponId,couponId) |
| | | .ne(MemberCoupon::getGetMethod,Constants.TWO) |
| | | ).intValue(); |
| | | if(getNum >= coupon.getNum()){ |
| | | continue; |
| | | } |
| | | if(num>(coupon.getNum() - getNum)){ |
| | | num = coupon.getNum().intValue() - getNum; |
| | | } |
| | | } |
| | | MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null); |
| | | |
| | | for (int i = 0; i < num; i++) { |
| | | //满åå·ä¸ä¼çæmaxPrice éè¦æ ¹æ®ä¼æ å¸åå°éé¢è®¾ç½® |
| | | if(Constants.equalsInteger(coupon.getCouponType(),Constants.ZERO)){ |
| | |
| | | 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()+"]鿍ç»å®çç»éåï¼æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | // } |
| | | if(!Constants.equalsInteger(shop.getId(),memberId)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å½åè®¢åæ ¸éé¨åºä¸º["+shop.getName()+"]ï¼æ¨æ æ³è¿è¡è¯¥æä½ï¼"); |
| | | } |
| | | goodsorder.setStatus(Constants.OrderStatus.DONE.getKey()); |
| | | goodsorder.setDoneDate(new Date()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | |
| | | if(Objects.isNull(goodsorder.getDistributionShopId()) || Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ONE)){ |
| | | return; |
| | | } |
| | | BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ONE); |
| | | if (backIntegral.compareTo(BigDecimal.ZERO) > 0) { |
| | | if (goodsorder.getReturnCustomerIntegral().compareTo(BigDecimal.ZERO) > 0) { |
| | | //æ´æ°ä½é¢ä¿¡æ¯ æ·»å 积ååå¨è®°å½ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(backIntegral); |
| | | dealIntegralRequest.setIntegralNum(goodsorder.getReturnCustomerIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | | dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | |
| | | if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ONE)){ |
| | | return; |
| | | } |
| | | BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ZERO); |
| | | if (backIntegral.compareTo(BigDecimal.ZERO) > 0) { |
| | | if (goodsorder.getReturnMemberIntegral().compareTo(BigDecimal.ZERO) > 0) { |
| | | //æ´æ°ä½é¢ä¿¡æ¯ æ·»å 积ååå¨è®°å½ |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(backIntegral); |
| | | dealIntegralRequest.setIntegralNum(goodsorder.getReturnMemberIntegral()); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | | dealIntegralRequest.setMemberId(goodsorder.getMemberId()); |
| | | dealIntegralRequest.setObjId(goodsorder.getId()); |
| | |
| | | } |
| | | //å å
¥redisç¼åï¼å·æ°ä»å¤©å®åç¼å·0å¼å§ |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,countWithdraw); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | .eq(Notice::getIsdeleted,Constants.ZERO) |
| | | .eq(Notice::getMemberId,member.getId()) |
| | | .eq(Notice::getStatus,Constants.ZERO) |
| | | )>=Constants.ZERO?Constants.ZERO:Constants.ONE |
| | | )>Constants.ZERO?Constants.ZERO:Constants.ONE |
| | | ); |
| | | |
| | | return homeInfoResponse; |
| | |
| | | List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda() |
| | | .eq(Goodsorder::getIsdeleted, Constants.ZERO) |
| | | .eq(Goodsorder::getStatus, Constants.OrderStatus.WAIT_PAY.getKey()) |
| | | .apply(" CREATE_DATE > DATE_SUB(NOW(), INTERVAL 15 MINUTE) ") |
| | | .apply(" CREATE_DATE < DATE_SUB(NOW(), INTERVAL 15 MINUTE) ") |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(goodsorderList)){ |
| | | for (Goodsorder goodsorder:goodsorderList) { |
| | | this.cancel(goodsorder,null,"è®¢åæªæ¯ä»è¶
æ¶èªå¨åæ¶"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * èªå¨å®æ 7 天æªç¡®è®¤æ¶è´§çç©æµå货订å |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void autoCompleteOrder(){ |
| | | //æ¥è¯¢åè´§å 7 天æªç¡®è®¤æ¶è´§çè®¢åæ°æ®ï¼ä»
å¤çå¿«éé
é订åï¼ |
| | | List<Goodsorder> goodsOrderList = goodsorderMapper.selectList( |
| | | new QueryWrapper<Goodsorder>() |
| | | .eq("STATUS", Constants.OrderStatus.WAIT_RECEIVE.getKey()) |
| | | .eq("RECEIVE_TYPE", Constants.ZERO) // ä»
å¤çå¿«éé
é订å |
| | | .isNotNull("KD_CODE") // æç©æµåå· |
| | | .ne("KD_CODE", "") // ç©æµåå·ä¸ä¸ºç©º |
| | | .apply(" KD_DATE IS NOT NULL ") // æåè´§æ¶é´ |
| | | .apply(" NOW() >= DATE_SUB(KD_DATE, INTERVAL -7 DAY) ") // åè´§å 7 天 |
| | | ); |
| | | |
| | | if (!goodsOrderList.isEmpty()) { |
| | | for (Goodsorder order : goodsOrderList) { |
| | | try { |
| | | Goodsorder updateOrder = new Goodsorder(); |
| | | updateOrder.setId(order.getId()); |
| | | updateOrder.setStatus(Constants.OrderStatus.DONE.getKey()); |
| | | updateOrder.setDoneDate(new Date()); |
| | | updateOrder.setDoneInfo("åè´§ 7 天åç³»ç»èªå¨ç¡®è®¤æ¶è´§"); |
| | | goodsorderMapper.updateById(updateOrder); |
| | | |
| | | //åå¨ç°éæ¯ä» èµ é 积å |
| | | if(Constants.equalsInteger(updateOrder.getPayMethod(),Constants.ZERO)){ |
| | | //èµ éæ¶è´¹è
积å |
| | | this.orderAddMemberIntegral(order); |
| | | //ä¸å宿 æ ¹æ®ä¿¡æ¯ç¡®è®¤æ¯å¦éè¦èµ éé请è
伿 å¸ |
| | | this.orderDoneRewardInviteCoupon(order); |
| | | //ç»éå æ·»å èµ é积å |
| | | this.orderAddShopIntegral(order); |
| | | //ç»éå ç»ç®éé¢ |
| | | this.orderAddShopCash(order); |
| | | } |
| | | |
| | | |
| | | System.out.println("订åèªå¨å®æï¼è®¢å ID=" + order.getId() + ", 订åç¼å·=" + order.getCode()); |
| | | } catch (Exception e) { |
| | | System.out.println("订åèªå¨å®æå¤±è´¥ï¼è®¢å ID=" + order.getId() + ", é误ï¼" + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | private GoodsorderMapper goodsorderMapper; |
| | | |
| | | @Autowired |
| | | private GoodsorderDetailMapper goodsorderDetailMapper; |
| | | |
| | | @Autowired |
| | | private NoticeService noticeService; |
| | | |
| | | @Autowired |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class, BusinessException.class}) |
| | | public Integer dealIntegral(DealIntegralRequest dealIntegralRequest,Member member) { |
| | | // 积ååæ´ï¼è·ååä¸åæ´ï¼æ¶èåä¸åæ´ |
| | | if(dealIntegralRequest.getIntegralNum() != null){ |
| | | if(Constants.equalsInteger(dealIntegralRequest.getDealType(),Constants.ZERO)){ |
| | | dealIntegralRequest.setIntegralNum(dealIntegralRequest.getIntegralNum().setScale(0, BigDecimal.ROUND_DOWN)); |
| | | }else{ |
| | | dealIntegralRequest.setIntegralNum(dealIntegralRequest.getIntegralNum().setScale(0, BigDecimal.ROUND_UP)); |
| | | } |
| | | } |
| | | if(member == null){ |
| | | member = memberMapper.selectById(dealIntegralRequest.getMemberId()); |
| | | } |
| | |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setTitle(dealIntegralRequest.getIntegralObjType().getName()); |
| | | String info = dealIntegralRequest.getIntegralObjType().getNoteinfo(); |
| | | info = info.replace("${param}",dealIntegralRequest.getIntegralNum().intValue()+""); |
| | | info = info.replace("${param}",dealIntegralRequest.getIntegralNum().toBigInteger().toString()); |
| | | if(StringUtils.isNotBlank(dealIntegralRequest.getParam1())){ |
| | | info = info .replace("${param1}",dealIntegralRequest.getParam1()); |
| | | } |
| | |
| | | |
| | | //ç«å
ä¿¡ |
| | | noticeService.saveMemberIntegralNotice( |
| | | dealIntegralRequest.getIntegralObjType(),Constants.ONE,member.getId(),dealIntegralRequest.getIntegralNum(), |
| | | dealIntegralRequest.getIntegralObjType(),Constants.ZERO,member.getId(),dealIntegralRequest.getIntegralNum(), |
| | | integral.getId(), info |
| | | ); |
| | | return integral.getId(); |
| | |
| | | |
| | | @Override |
| | | public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest,Shop shop) { |
| | | // 积ååæ´ï¼è·ååä¸åæ´ï¼æ¶èåä¸åæ´ |
| | | if(dealIntegralRequest.getIntegralNum() != null){ |
| | | if(Constants.equalsInteger(dealIntegralRequest.getDealType(),Constants.ZERO)){ |
| | | dealIntegralRequest.setIntegralNum(dealIntegralRequest.getIntegralNum().setScale(0, BigDecimal.ROUND_DOWN)); |
| | | }else{ |
| | | dealIntegralRequest.setIntegralNum(dealIntegralRequest.getIntegralNum().setScale(0, BigDecimal.ROUND_UP)); |
| | | } |
| | | } |
| | | if(shop ==null){ |
| | | shop = shopMapper.selectById(dealIntegralRequest.getMemberId()); |
| | | } |
| | |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setTitle( dealIntegralRequest.getIntegralObjType()!=null?dealIntegralRequest.getIntegralObjType().getName():""); |
| | | String info = dealIntegralRequest.getIntegralObjType().getNoteinfo(); |
| | | info = info.replace("${param}",dealIntegralRequest.getIntegralNum().toString()); |
| | | info = info.replace("${param}",dealIntegralRequest.getIntegralNum().toBigInteger().toString()); |
| | | if(StringUtils.isNotBlank(dealIntegralRequest.getParam1())){ |
| | | info = info .replace("${param1}",dealIntegralRequest.getParam1()); |
| | | } |
| | |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .eq(Shop::getId,shop.getId()) |
| | | .set(Shop::getEditDate,new Date()) |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计å¢å |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" + dealIntegralRequest.getIntegralNum()) |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum())); |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"TOTAL_AMOUNT = ifnull(TOTAL_AMOUNT,0)+" + dealIntegralRequest.getIntegralNum())//累计å¢å |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"AMOUNT = ifnull(AMOUNT,0)+" + dealIntegralRequest.getIntegralNum()) |
| | | .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"AMOUNT = ifnull(AMOUNT,0)-" + dealIntegralRequest.getIntegralNum())); |
| | | return integral.getId(); |
| | | } |
| | | |
| | |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | ); |
| | | integralDataResponse.setWaitPayAmount( |
| | | goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda() |
| | | goodsorderDetailMapper.selectJoinList(GoodsorderDetail.class,new MPJLambdaWrapper<GoodsorderDetail>() |
| | | .selectAll(GoodsorderDetail.class) |
| | | .leftJoin(Goodsorder.class,Goodsorder::getId,GoodsorderDetail::getOrderId) |
| | | .eq(Goodsorder::getDistributionShopId,model.getMemberId()) |
| | | .in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey(), |
| | | Constants.OrderStatus.PAY_DONE.getKey(), |
| | | Constants.OrderStatus.WAIT_RECEIVE.getKey()) |
| | | ).stream().map(Goodsorder::getShopSettlement) |
| | | ).stream().map(GoodsorderDetail::getShopSettlement) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | ); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public String createMemberMiniProgramCode(Integer memberId) throws Exception { |
| | | InputStream inputStream = Constants.generateWxMiniImgStream( |
| | | "uid_"+memberId, |
| | | "/pages/index/index", |
| | | true); |
| | | if (inputStream == null) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "å°ç¨åºå享ç çæå¤±è´¥"); |
| | | } |
| | | ALiYunUtil obs = new ALiYunUtil( |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode() |
| | | ,systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(), |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode()); |
| | | |
| | | String shareFolder = systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHARES_FILE).getCode(); |
| | | String key = DateUtil.getNowShortDate() + "/" + UUID.randomUUID().toString() + ".jpg"; |
| | | String fileName = shareFolder + key; |
| | | if (obs.uploadOnlineObject(inputStream,systemDictDataBiz.queryByCode(Constants.OSS, Constants.BUCKETNAME).getCode(), fileName,null)) { |
| | | return key; |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "å°ç¨åºå享ç ä¸ä¼ 失败"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | private List<Member> getMemberListByParam(MemberCouponAddDTO memberCoupon) { |
| | | List<Member> list = memberMapper.selectList(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getStatus,Constants.ZERO) |
| | | .eq(memberCoupon.getAddType() == Constants.ZERO,Member::getId,memberCoupon.getAddMemberIds()) |
| | | .in(memberCoupon.getAddType() == Constants.ONE,Member::getPhone,memberCoupon.getPhones())); |
| | | if(list == null || list.size()==0){ |
| | |
| | | .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 ") |
| | | .orderByDesc(" m.PRICE ") |
| | | .orderByDesc( " m.CREATE_DATE ") |
| | | ); |
| | | return page; |
| | | } |
| | |
| | | .apply(" now() between START_DATE and END_DATE ") |
| | | .orderByDesc(MemberCoupon::getMaxPrice) |
| | | .orderByAsc(MemberCoupon::getEndDate) |
| | | ) |
| | | ; |
| | | ); |
| | | |
| | | if(CollectionUtils.isNotEmpty(allCoupon)){ |
| | | for (MemberCoupon memberCoupon:allCoupon) { |
| | |
| | | @Autowired |
| | | private CouponMapper couponMapper; |
| | | @Autowired |
| | | private MemberCouponMapper memberCouponMapper; |
| | | @Autowired |
| | | private MemberCouponJoinMapper memberCouponJoinMapper; |
| | | @Autowired |
| | | private IntegralMapper integralMapper; |
| | |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse wxLogin(String code){ |
| | | try { |
| | | //è·åå¾®ä¿¡æææ°æ® |
| | | public AccountResponse wxLogin(String code) throws WxErrorException { |
| | | WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); |
| | | String openId = session.getOpenid(); |
| | | if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è·åopenid失败ï¼è¯·è系管çå"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, openId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getStatus,Constants.ZERO) |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getOpenId, openId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getStatus,Constants.ZERO) |
| | | .last(" limit 1")); |
| | | |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | if(Objects.nonNull(member)){ |
| | | memberMapper.updateById(member); |
| | | member.setImgFullUrl(StringUtils.isNotBlank(member.getImgurl())?systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl():null); |
| | | String ossPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); |
| | | String memberPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode(); |
| | | if(StringUtils.isNotBlank(member.getImgurl())){ |
| | | member.setImgFullUrl(ossPath + memberPath + member.getImgurl()); |
| | | } |
| | | String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setOpenid(openId); |
| | |
| | | accountResponse.setOpenid(openId); |
| | | } |
| | | return accountResponse; |
| | | } catch (WxErrorException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信ç»å½å¼å¸¸ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | |
| | |
| | | if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){ |
| | | continue; |
| | | } |
| | | if(coupon.getNum()>Constants.ZERO) { |
| | | //æ¥è¯¢å·²é¢åæ°é |
| | | Integer getNum = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getIsdeleted, Constants.ZERO) |
| | | .eq(MemberCoupon::getCouponId, couponId) |
| | | .ne(MemberCoupon::getGetMethod, Constants.TWO) |
| | | ).intValue(); |
| | | if (getNum >= coupon.getNum()) { |
| | | continue; |
| | | } |
| | | if (num > (coupon.getNum() - getNum)) { |
| | | num = coupon.getNum().intValue() - getNum; |
| | | } |
| | | } |
| | | MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,member,new Date(),Constants.ZERO,null); |
| | | for (int i = 0; i < num; i++) { |
| | | //满åå·ä¸ä¼çæmaxPrice éè¦æ ¹æ®ä¼æ å¸åå°éé¢è®¾ç½® |
| | |
| | | //èµ éé请积å |
| | | //å¼å¯é请注åé积å |
| | | if(Constants.equalsInteger(platformConfigDTO.getShareIntegralRewardStatus(),Constants.ZERO)){ |
| | | member = memberMapper.selectById(member.getRecId()); |
| | | if(Objects.isNull(member)){ |
| | | return; |
| | | } |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralNum(platformConfigDTO.getShareIntegralReward()); |
| | | dealIntegralRequest.setDealType(Constants.ZERO); |
| | |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.INVITENEWUSER); |
| | | dealIntegralRequest.setParam1(member.getNickname()); |
| | | integralService.dealIntegral(dealIntegralRequest,member); |
| | | //æ·»å æ¶æ¯è®°å½ |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | this.verifyPhoneCode(request.getCode(),request.getPhone()); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getPhone,request.getPhone()) |
| | | .set(Member::getPhone,request.getPhone()) |
| | | .eq(Member::getId,request.getMemberId()) |
| | | ); |
| | | } |
| | |
| | | |
| | | Notice notice = pageWrap.getModel(); |
| | | |
| | | queryWrapper.ne(Objects.nonNull(notice.getQueryType()), |
| | | queryWrapper.eq(Objects.nonNull(notice.getQueryType()), |
| | | Notice::getType,notice.getQueryType()) |
| | | .eq(Notice::getMemberId,notice.getMemberId()) |
| | | .orderByAsc(Notice::getStatus) |
| | |
| | | .set(Shop::getProgramCode,url) |
| | | .eq(Shop::getId,shop.getId())); |
| | | } |
| | | if(StringUtils.isNotBlank(shop.getPosterImg())) { |
| | | //åäº«æµ·æ¥ |
| | | String posterUrl = inviteRecordService.createShareImg(Constants.ONE,shop.getId(),shop.getPosterImg()); |
| | | if(StringUtils.isNotBlank(posterUrl)){ |
| | | //çæå¤±è´¥ä¼çæå符串 1 |
| | | if (StringUtils.isNotBlank(posterUrl)&&!posterUrl.equals("1")) { |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getPosterImgCode,posterUrl) |
| | | .eq(Shop::getId,shop.getId())); |
| | | } |
| | | } |
| | | return shop.getId(); |
| | | } |
| | |
| | | shop.setEditor(user.getId()); |
| | | shop.setEditDate(new Date()); |
| | | |
| | | if(StringUtils.isBlank(model.getProgramCode())){ |
| | | //å享ç |
| | | String url = inviteRecordService.createShopMiniProgramCode(shop.getId()); |
| | | if(StringUtils.isNotBlank(url)){ |
| | | shop.setProgramCode(url); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(shop.getPosterImg())){ |
| | | //åäº«æµ·æ¥ |
| | | String posterUrl = inviteRecordService.createShareImg(Constants.ONE,shop.getId(),shop.getPosterImg()); |
| | | if(StringUtils.isNotBlank(posterUrl)){ |
| | | //çæå¤±è´¥ä¼çæå符串 1 |
| | | if (StringUtils.isNotBlank(posterUrl)&&!posterUrl.equals("1")) { |
| | | shop.setPosterImgCode(posterUrl); |
| | | } |
| | | } |
| | |
| | | shop.getEditDate(), |
| | | new String[]{user.getUsername(), DateUtil.getPlusTime2(shop.getEditDate())}, |
| | | JSONObject.toJSONString(shop) , |
| | | Constants.equalsInteger(model.getSaleType(),Constants.ONE)?"èªç±éè´":"å¹³å°éºè´§", |
| | | Constants.equalsInteger(shop.getSaleType(),Constants.ONE)?"èªç±éè´":"å¹³å°éºè´§"); |
| | | Constants.equalsInteger(model.getSaleType(),Constants.ONE)?"èªä¸»éè´":"å¹³å°éºè´§", |
| | | Constants.equalsInteger(shop.getSaleType(),Constants.ONE)?"èªä¸»éè´":"å¹³å°éºè´§"); |
| | | } |
| | | } |
| | | |
| | |
| | | if(!pwd.equals(shop.getPassword())){ |
| | | throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | shop.setOpenId(dto.getOpenid()); |
| | | //å建token |
| | | // JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId()); |
| | | // String token = JwtTokenUtil.generateToken(payLoad); |
| | |
| | | //èªå®ä¹æ¥æ |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " t.CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " t.CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | .ne(Goodsorder::getStatus,Constants.OrderStatus.CLOSE.getKey()) |
| | | .in(Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey(),Constants.OrderStatus.WAIT_RECEIVE.getKey(),Constants.OrderStatus.DONE.getKey()) |
| | | .orderByDesc(Goodsorder::getId) |
| | | ); |
| | | |
| | | if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(goodsorderList)) { |
| | | saleReportResponse.setSaleTotal(goodsorderList.stream().map(i->i.getPrice().subtract(i.getMailPrice())).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | saleReportResponse.setSaleTotal(goodsorderList.stream().map(i->i.getTotalPrice().subtract(i.getMailPrice())).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | saleReportResponse.setOrderNum(goodsorderList.size()); |
| | | } |
| | | List<Integral> integralList = integralMapper.selectList(new QueryWrapper<Integral>().lambda() |
| | | .eq(Integral::getIsdeleted,Constants.ZERO) |
| | | .eq(Integral::getMemberId,shopId) |
| | | .eq(Integral::getUserType,Constants.TWO) |
| | | .eq(Integral::getType,Constants.ZERO) |
| | | .eq(Integral::getObjType,Constants.IntegralObjType.ORDER_DONE_AMOUNT.getKey()) |
| | | // List<Integral> integralList = integralMapper.selectList(new QueryWrapper<Integral>().lambda() |
| | | // .eq(Integral::getIsdeleted,Constants.ZERO) |
| | | // .eq(Integral::getMemberId,shopId) |
| | | // .eq(Integral::getUserType,Constants.TWO) |
| | | // .eq(Integral::getType,Constants.ZERO) |
| | | // .eq(Integral::getObjType,Constants.IntegralObjType.ORDER_DONE_AMOUNT.getKey()) |
| | | // //仿¥ |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(CREATE_DATE) = DATE(NOW()) ") |
| | | // //彿 |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')") |
| | | // //䏿 |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ") |
| | | // //åºå®æä»½ |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ") |
| | | // //èªå®ä¹æ¥æ |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | // .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | // ); |
| | | goodsorderList = goodsorderJoinMapper.selectJoinList(Goodsorder.class, |
| | | new MPJLambdaWrapper<Goodsorder>() |
| | | .selectAll(Goodsorder.class) |
| | | .eq(Goodsorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Goodsorder::getDistributionShopId,shopId) |
| | | //仿¥ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(CREATE_DATE) = DATE(NOW()) ") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(t.DONE_DATE) = DATE(NOW()) ") |
| | | //彿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')") |
| | | //䏿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //åºå®æä»½ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(t.DONE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //èªå®ä¹æ¥æ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " t.DONE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | .apply(Objects.nonNull(request.getDateType())&&Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " t.DONE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey()) |
| | | .orderByDesc(Goodsorder::getId) |
| | | ); |
| | | if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(integralList)) { |
| | | saleReportResponse.setProfitTotal(integralList.stream().map(i->i.getNum()).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(goodsorderList)) { |
| | | saleReportResponse.setProfitTotal(goodsorderList.stream().filter(i->Objects.nonNull(i.getShopSettlement())).map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | } |
| | | return saleReportResponse; |
| | | } |
| | |
| | | redisTemplate.delete(token); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void updatePwd(Integer shopId, String oldPassword, String newPassword){ |
| | | if(StringUtils.isBlank(oldPassword) || StringUtils.isBlank(newPassword)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æ§å¯ç åæ°å¯ç ä¸è½ä¸ºç©º"); |
| | | } |
| | | if(oldPassword.equals(newPassword)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æ°å¯ç ä¸è½ä¸æ§å¯ç ç¸å"); |
| | | } |
| | | Shop shop = shopMapper.selectById(shopId); |
| | | if(shop == null){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "åæ·ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | String oldPwd = Utils.Secure.encryptPassword(oldPassword, shop.getSalt()); |
| | | if(!oldPwd.equals(shop.getPassword())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æ§å¯ç é误"); |
| | | } |
| | | String newSalt = RandomStringUtils.randomAlphabetic(6); |
| | | String newPwd = Utils.Secure.encryptPassword(newPassword, newSalt); |
| | | shopMapper.update(null, new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getPassword, newPwd) |
| | | .set(Shop::getSalt, newSalt) |
| | | .eq(Shop::getId, shopId)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | * @param addCartGoodsRequest |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void addCart(AddCartGoodsRequest addCartGoodsRequest){ |
| | | //æ¥è¯¢è´ç©è½¦æ¯å¦åå¨å½åéä¸çååä¿¡æ¯ |
| | | Shopcart shopcart = shopcartMapper.selectOne(new QueryWrapper<Shopcart>() |
| | |
| | | .le(pageWrap.getModel().getEndtime() != null,WithdrawRecord::getCreateDate, pageWrap.getModel().getEndtime()) |
| | | .like(pageWrap.getModel().getShopName() != null,Shop::getName, pageWrap.getModel().getShopName()) |
| | | .eq(WithdrawRecord::getIsdeleted,Constants.ZERO) |
| | | .in(WithdrawRecord::getStatus,Constants.ZERO,Constants.ONE) |
| | | .eq(pageWrap.getModel().getStatus()!=null,WithdrawRecord::getStatus,pageWrap.getModel().getStatus()) |
| | | ); |
| | | if(count == null){ |
| | |
| | | loginLog.setOsInfo(Utils.User_Client.getOS(request)); |
| | | loginLog.setServerIp(Utils.Server.getIP()); |
| | | // æ ¡éªéªè¯ç |
| | | /* try { |
| | | try { |
| | | captchaService.check(dto.getUuid(), dto.getCode()); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | |
| | | loginLog.setSuccess(Boolean.FALSE); |
| | | systemLoginLogService.create(loginLog); |
| | | throw e; |
| | | }*/ |
| | | } |
| | | // æ ¡éªç¨æ·ååå¯ç |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | UsernamePasswordToken token = new UsernamePasswordToken(dto.getUsername(), dto.getPassword()); |
| | |
| | | @Override |
| | | public PageData<SystemUserListVO> findPage(PageWrap<QuerySystemUserDTO> pageWrap) { |
| | | // æ ¹é¨é¨æ¡ä»¶å¤çï¼éæ¥è¯¢æ ¹é¨é¨ä¸ææé¨é¨çç¨æ·ï¼ |
| | | if (pageWrap.getModel().getRootDeptId() != null) { |
| | | pageWrap.getModel().setDepartmentIds(getAllowedDeptIds(pageWrap.getModel().getRootDeptId())); |
| | | } else { |
| | | pageWrap.getModel().setDepartmentIds(getAllowedDeptIds(null)); |
| | | } |
| | | // if (pageWrap.getModel().getRootDeptId() != null) { |
| | | // pageWrap.getModel().setDepartmentIds(getAllowedDeptIds(pageWrap.getModel().getRootDeptId())); |
| | | // } else { |
| | | // pageWrap.getModel().setDepartmentIds(getAllowedDeptIds(null)); |
| | | // } |
| | | // æ§è¡æ¥è¯¢ |
| | | PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause()); |
| | |
| | | ########################微信æ¯ä»ç¸å
³é
ç½®######################## |
| | | wx: |
| | | pay: |
| | | appId: wxcd2b89fd2ff065f8 |
| | | appSecret: 3462fa186da7cb06c544df8d8664b63a |
| | | mchId: 1229817002 |
| | | mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | notifyUrl: https://test.doumee.cn/dmmall_web_api/web/api/wxPayNotify |
| | | keyPath: /usr/local/apiclient_cert.p12 |
| | | appId: wx6264b4f3a697cbe8 |
| | | appSecret: 23734577e8978138c946b727f0394027 |
| | | mchId: 1629568742 |
| | | mchKey: NJTLJSTZYXZRGScaiwubuzichanbu666 |
| | | notifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxPayNotify |
| | | keyPath: D:\DouMee\gtxljcWxcert\apiclient_cert.p12 |
| | | # appId: wxcd2b89fd2ff065f8 |
| | | # appSecret: 3462fa186da7cb06c544df8d8664b63a |
| | | # mchId: 1229817002 |
| | | # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | # notifyUrl: https://test.doumee.cn/dmmall_web_api/web/api/wxPayNotify |
| | | # keyPath: /usr/local/apiclient_cert.p12 #D:\DouMee\dmkjWxcert\apiclient_cert.p12 # |
| | | |
| | | #wx: |
| | | # pay: |
| | | # appId: wx0115b948d647e9b2 |
| | | # appSecret: 4b5b97d6770f1fc6b09a7019804739a7 |
| | | # mchId: 1739990831 |
| | | # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | # notifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxPayNotify #https://test.doumee.cn/dmmall_web_api/web/api/wxPayNotify |
| | | # keyPath: D:\DouMee\1739990831_20260306_cert #D:\DouMee\dmkjWxcert\apiclient_cert.p12 # |
| | | |
| | | |
| | | tencent: |
| | | map: |
| | |
| | | |
| | | |
| | | ########################宿¶å¼å¯é
ç½®######################## |
| | | timing: true |
| | | timing: false |
| | |
| | | spring: |
| | | # æ°æ®æºé
ç½® |
| | | datasource: |
| | | url: jdbc:mysql://192.168.0.211:3306/dmmall_full?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: root |
| | | password: Doumee@168 |
| | | url: jdbc:mysql://rm-uf6916tp3306gqv43vo.mysql.rds.aliyuncs.com:3306/dynj?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai |
| | | username: dynj |
| | | password: dynj@2026 |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | |
| | |
| | | ########################微信æ¯ä»ç¸å
³é
ç½®######################## |
| | | wx: |
| | | pay: |
| | | appId: wxcd2b89fd2ff065f8 |
| | | appSecret: 3462fa186da7cb06c544df8d8664b63a |
| | | mchId: 1229817002 |
| | | appId: wx0115b948d647e9b2 |
| | | appSecret: 4b5b97d6770f1fc6b09a7019804739a7 |
| | | mchId: 1739990831 |
| | | mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | notifyUrl: https://dmtest.ahapp.net/dmmall_interface/web/api/wxPayNotify |
| | | keyPath: /usr/local/apiclient_cert.p12 |
| | | notifyUrl: https://dynometaie.com/dmmall_web_api/web/api/wxPayNotify |
| | | keyPath: /usr/local/jars/apiclient_cert.p12 |
| | | # appId: wxcd2b89fd2ff065f8 |
| | | # appSecret: 3462fa186da7cb06c544df8d8664b63a |
| | | # mchId: 1229817002 |
| | | # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM |
| | | # notifyUrl: https://mall.dynometacn.com/dmmall_web_api/web/api/wxPayNotify |
| | | # keyPath: /usr/local/jars/dm_apiclient_cert.p12 |
| | | |
| | | tencent: |
| | | map: |
| | |
| | | |
| | | |
| | | ########################宿¶å¼å¯é
ç½®######################## |
| | | timing: true |
| | | timing: false |
| | |
| | | role.`ID` AS ROLE_ID, role.`CODE` AS ROLE_CODE, role.`NAME` AS ROLE_NAME, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_DATA_PERMISSION sdp |
| | | INNER JOIN `SYSTEM_ROLE` role ON role.ID = sdp.ROLE_ID |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = sdp.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = sdp.UPDATE_USER |
| | | FROM system_data_permission sdp |
| | | INNER JOIN `system_role` role ON role.ID = sdp.ROLE_ID |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = sdp.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = sdp.UPDATE_USER |
| | | <where> |
| | | sdp.DELETED = 0 |
| | | <if test="dto.businessCode != null and dto.businessCode != ''"> |
| | |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME, |
| | | COUNT(usr.ID) USER_COUNT |
| | | FROM SYSTEM_DEPARTMENT dept |
| | | LEFT JOIN `SYSTEM_DEPARTMENT_USER` sdu ON sdu.DEPARTMENT_ID = dept.ID AND sdu.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_USER` usr ON usr.ID = sdu.USER_ID AND usr.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = dept.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = dept.UPDATE_USER |
| | | FROM system_department dept |
| | | LEFT JOIN `system_department_user` sdu ON sdu.DEPARTMENT_ID = dept.ID AND sdu.DELETED = 0 |
| | | LEFT JOIN `system_user` usr ON usr.ID = sdu.USER_ID AND usr.DELETED = 0 |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = dept.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = dept.UPDATE_USER |
| | | <where> |
| | | dept.DELETED = 0 |
| | | <if test="id != null"> |
| | |
| | | dict_data.`ID`, dict_data.`remark`, dict_data.`DICT_ID`, dict_data.`CODE`, dict_data.`LABEL`, dict_data.`SORT`, dict_data.`DISABLED`, dict_data.`CREATE_TIME`, dict_data.`UPDATE_TIME`, dict_data.`CREATE_USER`, dict_data.`UPDATE_USER`, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_DICT_DATA dict_data |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = dict_data.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = dict_data.UPDATE_USER |
| | | FROM system_dict_data dict_data |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = dict_data.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = dict_data.UPDATE_USER |
| | | <where> |
| | | dict_data.DELETED = 0 |
| | | <if test="dictId != null"> |
| | |
| | | dict.`ID`, dict.`CODE`, dict.`NAME`, dict.`REMARK`, dict.`CREATE_TIME`, dict.`UPDATE_TIME`, dict.`CREATE_USER`, dict.`UPDATE_USER`, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_DICT dict |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = dict.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = dict.UPDATE_USER |
| | | FROM system_dict dict |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = dict.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = dict.UPDATE_USER |
| | | <where> |
| | | dict.DELETED = 0 |
| | | <if test="dto.code != null and dto.code != ''"> |
| | |
| | | menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`FIXED`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_MENU menu |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = menu.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = menu.UPDATE_USER |
| | | FROM system_menu menu |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = menu.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = menu.UPDATE_USER |
| | | <where> |
| | | menu.DELETED = 0 |
| | | </where> |
| | |
| | | <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemMenu"> |
| | | SELECT |
| | | DISTINCT menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED` |
| | | FROM `SYSTEM_MENU` menu |
| | | INNER JOIN SYSTEM_ROLE_MENU role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0 |
| | | INNER JOIN SYSTEM_USER_ROLE user_role ON user_role.ROLE_ID = role_menu.ROLE_ID AND user_role.DELETED = 0 |
| | | FROM `system_menu` menu |
| | | INNER JOIN system_role_menu role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0 |
| | | INNER JOIN system_user_role user_role ON user_role.ROLE_ID = role_menu.ROLE_ID AND user_role.DELETED = 0 |
| | | <where> |
| | | AND menu.DELETED = 0 |
| | | AND menu.DISABLED = 0 |
| | |
| | | <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemMenu"> |
| | | SELECT |
| | | menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED` |
| | | FROM `SYSTEM_MENU` menu |
| | | INNER JOIN `SYSTEM_ROLE_MENU` role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0 |
| | | FROM `system_menu` menu |
| | | INNER JOIN `system_role_menu` role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0 |
| | | <where> |
| | | menu.DELETED = 0 |
| | | AND role_menu.ROLE_ID = #{roleId} |
| | |
| | | perm.`ID`, perm.`CODE`, perm.`NAME`, perm.`REMARK`, perm.`FIXED`, perm.`CREATE_TIME`, perm.`UPDATE_TIME`, perm.`CREATE_USER`, perm.`UPDATE_USER`, perm.`DELETED`, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_PERMISSION perm |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = perm.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = perm.UPDATE_USER |
| | | FROM system_permission perm |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = perm.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = perm.UPDATE_USER |
| | | <where> |
| | | perm.DELETED = 0 |
| | | <if test="dto.code != null"> |
| | |
| | | <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemPermission"> |
| | | SELECT |
| | | perm.`ID`, perm.`CODE`, perm.`NAME`, perm.`REMARK`, perm.`CREATE_TIME`, perm.`UPDATE_TIME`, perm.`CREATE_USER`, perm.`UPDATE_USER`, perm.`DELETED` |
| | | FROM SYSTEM_PERMISSION perm |
| | | INNER JOIN SYSTEM_ROLE_PERMISSION role_perm ON role_perm.PERMISSION_ID = perm.ID AND role_perm.DELETED = 0 |
| | | INNER JOIN SYSTEM_ROLE role ON role.ID = role_perm.ROLE_ID AND role.DELETED = 0 |
| | | INNER JOIN SYSTEM_USER_ROLE user_role ON user_role.ROLE_ID = role.ID AND user_role.DELETED = 0 |
| | | FROM system_permission perm |
| | | INNER JOIN system_role_permission role_perm ON role_perm.PERMISSION_ID = perm.ID AND role_perm.DELETED = 0 |
| | | INNER JOIN system_role role ON role.ID = role_perm.ROLE_ID AND role.DELETED = 0 |
| | | INNER JOIN system_user_role user_role ON user_role.ROLE_ID = role.ID AND user_role.DELETED = 0 |
| | | <where> |
| | | perm.DELETED = 0 |
| | | AND user_role.USER_ID = #{userId} |
| | |
| | | <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemPermission"> |
| | | SELECT |
| | | perm.`ID`, perm.`CODE`, perm.`NAME`, perm.`REMARK`, perm.`CREATE_TIME`, perm.`UPDATE_TIME`, perm.`CREATE_USER`, perm.`UPDATE_USER`, perm.`DELETED` |
| | | FROM SYSTEM_PERMISSION perm |
| | | INNER JOIN SYSTEM_ROLE_PERMISSION role_perm ON role_perm.PERMISSION_ID = perm.ID AND role_perm.DELETED = 0 |
| | | FROM system_permission perm |
| | | INNER JOIN system_role_permission role_perm ON role_perm.PERMISSION_ID = perm.ID AND role_perm.DELETED = 0 |
| | | <where> |
| | | perm.DELETED = 0 |
| | | AND role_perm.ROLE_ID = #{roleId} |
| | |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME, |
| | | COUNT(usr.ID) USER_COUNT |
| | | FROM SYSTEM_POSITION posi |
| | | LEFT JOIN `SYSTEM_POSITION_USER` spu ON spu.POSITION_ID = posi.ID AND spu.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_USER` usr ON usr.ID = spu.USER_ID AND usr.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = posi.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = posi.UPDATE_USER |
| | | FROM system_position posi |
| | | LEFT JOIN `system_position_user` spu ON spu.POSITION_ID = posi.ID AND spu.DELETED = 0 |
| | | LEFT JOIN `system_user` usr ON usr.ID = spu.USER_ID AND usr.DELETED = 0 |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = posi.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = posi.UPDATE_USER |
| | | <where> |
| | | posi.DELETED = 0 |
| | | <if test="name != null and name != ''"> |
| | |
| | | <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemPosition"> |
| | | SELECT |
| | | sp.`ID`, sp.`PARENT_ID`, sp.`CODE`, sp.`NAME` |
| | | FROM `SYSTEM_POSITION` sp |
| | | INNER JOIN `SYSTEM_POSITION_USER` spu ON spu.`POSITION_ID` = sp.`ID` AND spu.`DELETED` = 0 |
| | | INNER JOIN `SYSTEM_USER` su ON su.`ID` = spu.`USER_ID` |
| | | FROM `system_position` sp |
| | | INNER JOIN `system_position_user` spu ON spu.`POSITION_ID` = sp.`ID` AND spu.`DELETED` = 0 |
| | | INNER JOIN `system_user` su ON su.`ID` = spu.`USER_ID` |
| | | <where> |
| | | sp.DELETED = 0 |
| | | AND spu.USER_ID = #{userId} |
| | |
| | | role.ID, role.`CODE`, role.`NAME`, role.`REMARK`, role.`FIXED`, role.`CREATE_TIME`, role.`UPDATE_TIME`, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM SYSTEM_ROLE role |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = role.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = role.UPDATE_USER |
| | | FROM system_role role |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = role.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = role.UPDATE_USER |
| | | <where> |
| | | role.DELETED = 0 |
| | | <if test="dto.code != null and dto.code != ''"> |
| | |
| | | <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemRole"> |
| | | SELECT |
| | | role.ID, role.`CODE`, role.`NAME`, role.`REMARK`, role.`CREATE_TIME`, role.`UPDATE_TIME` |
| | | FROM SYSTEM_ROLE role |
| | | INNER JOIN SYSTEM_USER_ROLE user_role ON user_role.ROLE_ID = role.ID AND user_role.DELETED = 0 |
| | | FROM system_role role |
| | | INNER JOIN system_user_role user_role ON user_role.ROLE_ID = role.ID AND user_role.DELETED = 0 |
| | | <where> |
| | | role.DELETED = 0 |
| | | AND user_role.USER_ID = #{userId} |
| | |
| | | sd.ID AS DEPARTMENT_ID, sd.`NAME` AS DEPARTMENT_NAME, |
| | | create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, |
| | | update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME |
| | | FROM `SYSTEM_USER` usr |
| | | LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = usr.CREATE_USER |
| | | LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = usr.UPDATE_USER |
| | | LEFT JOIN `SYSTEM_POSITION_USER` spu ON spu.USER_ID = usr.ID AND spu.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_POSITION` sp ON sp.ID = spu.POSITION_ID AND sp.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_DEPARTMENT_USER` sdu ON sdu.USER_ID = usr.ID AND sdu.DELETED = 0 |
| | | LEFT JOIN `SYSTEM_DEPARTMENT` sd ON sd.ID = sdu.DEPARTMENT_ID AND sd.DELETED = 0 |
| | | FROM `system_user` usr |
| | | LEFT JOIN `system_user` create_user ON create_user.ID = usr.CREATE_USER |
| | | LEFT JOIN `system_user` update_user ON update_user.ID = usr.UPDATE_USER |
| | | LEFT JOIN `system_position_user` spu ON spu.USER_ID = usr.ID AND spu.DELETED = 0 |
| | | LEFT JOIN `system_position` sp ON sp.ID = spu.POSITION_ID AND sp.DELETED = 0 |
| | | LEFT JOIN `system_department_user` sdu ON sdu.USER_ID = usr.ID AND sdu.DELETED = 0 |
| | | LEFT JOIN `system_department` sd ON sd.ID = sdu.DEPARTMENT_ID AND sd.DELETED = 0 |
| | | <where> |
| | | usr.DELETED = 0 |
| | | <if test="dto.positionId != null"> |
| | |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.aliyun.ALiYunUtil; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | 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 me.chanjar.weixin.common.error.WxErrorException; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.util.HashMap; |
| | |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Iterator<String> it = multipartRequest.getFileNames(); |
| | | while (it.hasNext()) { |
| | | MultipartFile file = multipartRequest.getFile((String) it.next());// file |
| | | // multipartRequest.getFile((String) |
| | | // it.next()); |
| | | MultipartFile file = multipartRequest.getFile((String) it.next()); |
| | | if (file != null) { |
| | | // 1ãä¸ä¼ å°æå¡å¨ä¸´æ¶æä»¶å¤¹ |
| | | String uploadFileName = file.getOriginalFilename(); |
| | | String originname = uploadFileName; |
| | | if (originname.lastIndexOf("/") >= 0) { |
| | | originname = originname.substring(originname.lastIndexOf("/") + 1); |
| | | } |
| | | String nfix = "";// åç¼å |
| | | String nfix = ""; |
| | | if (StringUtils.isNotBlank(uploadFileName)) { |
| | | nfix = uploadFileName.substring(uploadFileName.lastIndexOf(".")); |
| | | } |
| | |
| | | context.put("message", "对ä¸èµ·ï¼æä»¶æ ¼å¼\".dll\"ä¸ä¼ æè¯¯ï¼"); |
| | | return; |
| | | } |
| | | String nowDate = DateUtil.getNowShortDate();// å½åæ¶é´ï¼å¹´ææ¥ï¼ |
| | | |
| | | if (isImageFile(nfix)) { |
| | | File tempFile = null; |
| | | try { |
| | | tempFile = File.createTempFile("wx_check_", nfix); |
| | | java.io.FileOutputStream fos = new java.io.FileOutputStream(tempFile); |
| | | fos.write(file.getBytes()); |
| | | fos.close(); |
| | | boolean isSafe = WxMiniConfig.wxMaService.getSecurityService().checkImage(tempFile); |
| | | if (!isSafe) { |
| | | context.put("code", 4001); |
| | | context.put("message", "å¾çå
容ä¸åè§ï¼è¯·æ´æ¢å¾çåéè¯"); |
| | | writerJson(response, context); |
| | | return; |
| | | } |
| | | } catch (WxErrorException e) { |
| | | log.warn("微信å¾çå®å
¨æ£æµå¤±è´¥: {}", e.getMessage()); |
| | | } finally { |
| | | if (tempFile != null && tempFile.exists()) { |
| | | tempFile.delete(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | String nowDate = DateUtil.getNowShortDate(); |
| | | String fileName = UUID.randomUUID().toString() + nfix; |
| | | String tempFileName = nowDate + "/" + fileName; |
| | | String key = folder + tempFileName;// æä»¶å |
| | | String key = folder + tempFileName; |
| | | ALiYunUtil obs = new ALiYunUtil(endpoint,access_id, access_key); |
| | | if (obs.uploadOnlineObject(file.getInputStream(),bucketName, key,null)) { |
| | | // ç§»å¨æå,è¿åæä»¶å |
| | | // sendSuccessMessage(response, resourcePath+key); |
| | | context.put("success", true); |
| | | context.put("code", 200); |
| | | context.put("errno",0); |
| | |
| | | writerJson(response, context); |
| | | return; |
| | | } else { |
| | | // ç§»å¨å¤±è´¥ |
| | | context.put("code", 0); |
| | | context.put("message", "ä¸ä¼ 失败"); |
| | | writerJson(response, context); |
| | |
| | | return; |
| | | } |
| | | |
| | | private boolean isImageFile(String suffix) { |
| | | if (StringUtils.isBlank(suffix)) { |
| | | return false; |
| | | } |
| | | String lowerSuffix = suffix.toLowerCase(); |
| | | return lowerSuffix.equals(".jpg") || lowerSuffix.equals(".jpeg") |
| | | || lowerSuffix.equals(".png") || lowerSuffix.equals(".gif") |
| | | || lowerSuffix.equals(".bmp") || lowerSuffix.equals(".webp"); |
| | | } |
| | | |
| | | public static void writerJson(HttpServletResponse response, Object object) { |
| | | response.setContentType("application/json"); |
| | | writer(response, JSONObject.toJSONString(object)); |
| | |
| | | import io.swagger.models.auth.In; |
| | | import lombok.extern.java.Log; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "微信code", required = true) |
| | | }) |
| | | public ApiResponse<AccountResponse> wxLogin(@RequestParam String code) { |
| | | public ApiResponse<AccountResponse> wxLogin(@RequestParam String code) throws WxErrorException { |
| | | return ApiResponse.success(memberService.wxLogin(code)); |
| | | } |
| | | |
| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("å é¤è¯è®º") |
| | | @GetMapping("/delete/{id}") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | commentService.deleteById(id,getMemberId()); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * åé¡µæ´»å¨æ¢åºè¯è®ºæ¥è¯¢ |
| | | * |
| | |
| | | return ApiResponse.success(inviteRecordService.createShareImg(Constants.ZERO,getMemberId(),null)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "çæä¼åå享ç ", notes = "å°ç¨åºç«¯") |
| | | @GetMapping("/getMemberShareCode") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<String> getMemberShareCode() throws Exception { |
| | | return ApiResponse.success(inviteRecordService.createMemberMiniProgramCode(getMemberId())); |
| | | } |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation(value = "åæ·çæé请海æ¥", notes = "å°ç¨åºç«¯") |
| | |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation("ç»éå - ä¿®æ¹å¯ç ") |
| | | @PostMapping("/updatePwd") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse updatePwd(@RequestBody ShopUpdatePwdDTO dto) { |
| | | shopService.updatePwd(getShopId(), dto.getOldPassword(), dto.getNewPassword()); |
| | | return ApiResponse.success("ä¿®æ¹æå"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | public ApiResponse<List<Areas>> treeList (@RequestBody AreasDto pageWrap) { |
| | | Areas a = new Areas(); |
| | | BeanUtils.copyProperties(pageWrap,a); |
| | | areasService.cacheData(); |
| | | return ApiResponse.success(areasService.findList(a)); |
| | | } |
| | | |
| | |
| | | # 项ç®ä¿¡æ¯é
ç½® |
| | | project: |
| | | name: ç¦å©åå |
| | | name: é¼å
åæº |
| | | version: 1.0.0 |
| | | env: development |
| | | # env: production |