فهرست منبع

上朵双旦活动,增加R系列买一减90,买2打6.5折,
买一个送漱口水,买两个送保温杯

wangxiaoming 5 سال پیش
والد
کامیت
54bf9e9d07

+ 1 - 1
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/SalesActivities.java

@@ -24,7 +24,7 @@ public class SalesActivities  implements  Serializable{
     private Integer salesActivitiesReduction;
     //状态1:使用 2停用
     private Integer salesActivitiesStatus;
-    //是否为全场 1:全场
+    //是否为全场 1:全场 2.部分
     private Integer salesActivitiesScenes;
     //活动开始时间
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

+ 7 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/member/MemberService.java

@@ -194,4 +194,11 @@ public interface MemberService{
 	 * @return
 	 */
 	PagedResult<Member> listMemberPage(PageRequest<Member> pageRequest);
+
+	/**
+	 * 修改
+	 * @param member
+	 * @return
+	 */
+	Integer nowUpdateUserByOpenId(Member member);
 }

+ 6 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MemberMapper.java

@@ -174,4 +174,10 @@ public interface MemberMapper {
 
 
 	List<Member> listMemberPage(Member member);
+
+	/**
+	 * 修改
+	 * @return
+	 */
+	public Integer nowUpdateUserByOpenId(Member member);
 }

+ 93 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml

@@ -489,4 +489,97 @@
 		WHERE (user_integral+user_stay_integral) > 0 AND user_is_ac = 2
 		ORDER BY user_create_date
 	</select>
+
+	<update id="nowUpdateUserByOpenId" parameterType="Member" >
+		update
+		tb_iamberry_user_userinfo
+		<set >
+			<if test="userHead != null and userHead != ''">
+				user_head = #{userHead},
+			</if >
+			<if test="userNickname != null and userNickname != ''">
+				user_nickname = #{userNickname},
+			</if >
+			<if test="userAddr != null and userAddr != ''">
+				user_addr = #{userAddr},
+			</if >
+			<if test="userSex != null ">
+				user_sex = #{userSex},
+			</if >
+			<if test="userIntegral != null ">
+				user_integral = #{userIntegral},
+			</if >
+			<if test="userAccountNum != null and userAccountNum != ''">
+				user_account_num = #{userAccountNum},
+			</if >
+			<if test="userPwd != null and userPwd != ''">
+				user_pwd = #{userPwd},
+			</if >
+			<if test="userTel != null and userTel != ''">
+				user_tel = #{userTel},
+			</if >
+			<if test="userName != null and userName != ''">
+				user_name = #{userName},
+			</if >
+			<if test="userBirthDate != null and userBirthDate != ''">
+				user_birth_date = #{userBirthDate},
+			</if >
+			<if test="userSurplusIntegral != null ">
+				user_surplus_integral = #{userSurplusIntegral},
+			</if >
+			<if test="userUseIntegral != null ">
+				user_use_integral = #{userUseIntegral},
+			</if >
+			<if test="userResType != null ">
+				user_res_type = #{userResType},
+			</if >
+			<if test="userStatus != null ">
+				user_status = #{userStatus},
+			</if >
+			<if test="userSubDate != null and userSubDate != ''">
+				user_sub_date = #{userSubDate},
+			</if >
+			<if test="userIdentity != null ">
+				user_identity = #{userIdentity},
+			</if >
+			<if test="userQrcode != null and userQrcode != ''">
+				user_qrcode = #{userQrcode},
+			</if >
+			<if test="userIsFlag != null ">
+				user_is_flag = #{userIsFlag},
+			</if >
+			<if test="userIncome != null ">
+				user_income = #{userIncome},
+			</if >
+			<if test="userCoupon != null ">
+				user_coupon = #{userCoupon},
+			</if >
+			<if test="userTemplateId != null ">
+				user_template_id = #{userTemplateId},
+			</if >
+			<if test="userDealers != null ">
+				user_dealers = #{userDealers},
+			</if >
+			<if test="userIsBought != null ">
+				user_is_bought = #{userIsBought},
+			</if >
+			<if test="userEmail != null and userEmail != ''">
+				user_email = #{userEmail},
+			</if >
+			<if test="userQrcodeType != null ">
+				user_qrcode_type = #{userQrcodeType},
+			</if >
+			<if test="userAgeStage != null ">
+				user_age_stage = #{userAgeStage},
+			</if >
+			<if test="userStayIntegral != null ">
+				user_stay_integral = #{userStayIntegral},
+			</if >
+			<if test="userIsAc != null ">
+				user_is_ac = #{userIsAc}
+			</if >
+		</set >
+		where user_openid = #{userOpenid}
+	</update>
+
 </mapper>

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java

@@ -450,4 +450,9 @@ public class MemberServiceImpl implements MemberService {
 		return PageUtil.getPage(detedctList);
 	}
 
+
+	@Override
+	public Integer nowUpdateUserByOpenId(Member member) {
+		return memberDao.nowUpdateUserByOpenId(member);
+	}
 }

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/MemberDao.java

@@ -159,5 +159,12 @@ public interface MemberDao {
 
 	List<Member> listMemberPage(Member member);
 
+	/**
+	 * 修改
+	 * @param member
+	 * @return
+	 */
+	Integer nowUpdateUserByOpenId(Member member);
+
 
 }

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java

@@ -176,4 +176,9 @@ public class MemberDaoImpl  implements MemberDao {
 	public List<Member> listMemberPage(Member member) {
 		return memberMapper.listMemberPage(member);
 	}
+
+	@Override
+	public Integer nowUpdateUserByOpenId(Member member){
+		return memberMapper.nowUpdateUserByOpenId(member);
+	}
 }

+ 14 - 6
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java

@@ -237,16 +237,24 @@ public class HomeHandler {
 		m = memberService.getMemberByUserOpenId(m.getUserOpenid());
 		try{
 			JSONObject jsonObject = WeixinUtil.getUserInfo(m.getUserOpenid());
+			assert jsonObject != null;
+			assert jsonObject.has("nickname");
 			String nickname = jsonObject.getString("nickname");
 			String headimgurl = jsonObject.getString("headimgurl");
 
-			m.setUserHead(headimgurl);
-			m.setUserNickname(nickname);
-			if(nickname != null && !"".equals(nickname)){
-				m.setUserStatus(2);
-				homeService.updateWechatMemberInfoByByOpenid(m);
+			Member mem = new Member();
+			mem.setUserHead(headimgurl);
+			mem.setUserNickname(nickname);
+			mem.setUserOpenid(m.getUserOpenid());
+			if(m.getUserStatus() == 2){
+				memberService.nowUpdateUserByOpenId(mem);
+			}else{
+				if(nickname != null && !"".equals(nickname)){
+					mem.setUserStatus(2);
+				}
+				homeService.updateWechatMemberInfoByByOpenid(mem);
 			}
-			logger.info("获取个人信息成功;openid:"+m.getUserOpenid()+";昵称:"+nickname);
+			logger.info("获取个人信息成功;openid:"+m.getUserOpenid());
 		}catch (Exception e){
 			logger.info("获取个人信息失败;openid:"+m.getUserOpenid());
 			e.printStackTrace();

+ 66 - 15
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -61,6 +61,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -235,7 +236,7 @@ public class OrderHandler {
 			}else{
 				if(activityDate.isStatus()){
 					/*满减*/
-					Integer promotionAmout = fullReduc(activityDate,allAmount);;	//促销之后的金额 -- 总金额减去满减,满减的优先级高一些
+					Integer promotionAmout = fullReduc(activityDate,cartDtos);;	//促销之后的金额 -- 总金额减去满减,满减的优先级高一些
 
 					//满赠
 					giftCart(cartDtos);
@@ -515,9 +516,6 @@ public class OrderHandler {
 				activityDate.setStatus(false);
 			}else {
 				if (activityDate.isStatus()) {
-					/*满减*/
-					Integer promotionAmout = fullReduc(activityDate,allAmount);;	//促销之后的金额 -- 总金额减去满减,满减的优先级高一些
-
 					//满赠
 					giftCart(cartDtos);
 				}
@@ -769,12 +767,9 @@ public class OrderHandler {
 
 		//双十二期间,全场满328元减50元,全场满499元减100元,全场满满699元减150元
 		if (activityDate.isStatus()) {
-			for (SalesActivities salesActivities : activityDate.getSalesActivitiesList()){
-				if(mustPay >= salesActivities.getSalesActivitiesFull()){
-					mustPay = mustPay - salesActivities.getSalesActivitiesReduction();
-					break;
-				}
-			}
+			/*满减*/
+			Integer promotionAmout = fullReduc(activityDate,cartDtos);
+			mustPay -= promotionAmout;
 		}
 
 		Integer salesPostage = 0;
@@ -1145,6 +1140,38 @@ public class OrderHandler {
 		SettlementGift settlementGift = new SettlementGift();
 		settlementGift.setSettGiftStatus(1);
 		List<SettlementGift> settlementGiftList = settlementGiftService.getSettlementGiftList(settlementGift);
+
+		//2019年圣诞活动 -开始
+		for (SettlementGift sg:settlementGiftList) {
+			if(sg.getSettGiftId() == 50){
+				Integer nownum = 0;
+				for (CartDto cartDto:cartDtoList) {
+					if(cartDto.getCartColorId() == 60 || cartDto.getCartColorId() == 61	||
+							cartDto.getCartColorId() == 62 || cartDto.getCartColorId() == 63){		//60,61,62,63
+						nownum += cartDto.getCartNum();
+					}
+				}
+				if(nownum == 1){
+					CartDto cartDto = new CartDto();
+					cartDto.setCartColorId(361);
+					cartDto.setCartNum(1);
+					cartDto.setProductDiscount(0);
+					cartDto.setProductPrice(0);
+					cartDto.setTotal(0);
+					giftList.add(cartDto);
+				}else if(nownum >= 1){
+					CartDto cartDto = new CartDto();
+					cartDto.setCartColorId(316);
+					cartDto.setCartNum(1);
+					cartDto.setProductDiscount(0);
+					cartDto.setProductPrice(0);
+					cartDto.setTotal(0);
+					giftList.add(cartDto);
+				}
+			}
+		}
+		//2019年圣诞活动 - 结束
+
 		for (CartDto cd:cartDtoList) {
 			for (SettlementGift sg:settlementGiftList) {
 				if(Objects.equals(cd.getCartColorId(), sg.getSettGiftFillColorId())){//添加赠送产品
@@ -1230,18 +1257,42 @@ public class OrderHandler {
 	 * 满减
 	 * @return
 	 */
-	public Integer fullReduc(ActivityDate activityDate, Integer allAmount){
+	public Integer fullReduc(ActivityDate activityDate,List<CartDto> cartDtos){
 		Integer promotionAmout = 0;
 		SalesActivities sa = new SalesActivities();
 		sa.setSalesActivitiesStatus(1);
 		sa.setSalesActivitiesType(activityDate.getType());
-		sa.setSalesActivitiesScenes(1);
 		List<SalesActivities> salesActivitiesList = salesActivitiesService.getSalesActivitiesList(sa);
 		activityDate.setSalesActivitiesList(salesActivitiesList);
 		for (SalesActivities salesActivities : salesActivitiesList){
-			if(promotionAmout >= salesActivities.getSalesActivitiesFull()){
-				promotionAmout = allAmount - salesActivities.getSalesActivitiesReduction();
-				break;
+			if(salesActivities.getSalesActivitiesScenes() == 2){
+
+				if(salesActivities.getSalesActivitiesId() == 10){	//活动10专用 //圣诞活动,R系列一件减去90,两件打6.5折,因数据库设计过于复杂,只好在这写了
+					Integer num = 0;
+					Integer sunAmount = 0;
+					for (CartDto cartDto:cartDtos) {
+						if(cartDto.getCartColorId() == 60 || cartDto.getCartColorId() == 61	||
+								cartDto.getCartColorId() == 62 || cartDto.getCartColorId() == 63){		//60,61,62,63
+							num += cartDto.getCartNum();
+							sunAmount += cartDto.getCartNum() * cartDto.getProductPrice();
+						}
+					}
+					if(num == 1){
+						promotionAmout = 9000;
+					}else if(num >= 2){
+						Double amount = Double.valueOf(sunAmount);
+						BigDecimal bd1 = new BigDecimal(Double.toString(amount));
+						BigDecimal bd2 = new BigDecimal(Double.toString(0.35));
+						amount = bd1.multiply(bd2).doubleValue();
+						promotionAmout = amount.intValue();
+					}
+				}
+
+			}else{
+				if(promotionAmout >= salesActivities.getSalesActivitiesFull()){
+					promotionAmout = salesActivities.getSalesActivitiesReduction();
+					break;
+				}
 			}
 		}
 		return promotionAmout;